From 426673d8ebc19091af376b62926e78762426e8d5 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 31 Jul 2025 15:39:53 +0000 Subject: [PATCH 001/273] revive/evm: Derive typeinfo, encode and decode for RPC types Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rpc_types_gen.rs | 52 ++++++++++++++----- 1 file changed, 39 insertions(+), 13 deletions(-) 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 549dde9dea954..8fe6b7ff14b4a 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -74,7 +74,9 @@ fn deserialize_input_or_data<'d, D: Deserializer<'d>>(d: D) -> Result; -#[derive(Debug, Clone, Serialize, Deserialize, From, TryInto, Eq, PartialEq)] +#[derive( + Debug, Clone, Serialize, Deserialize, From, TryInto, Eq, PartialEq, TypeInfo, Encode, Decode, +)] #[serde(untagged)] pub enum HashesOrTransactionInfos { /// Transaction hashes @@ -540,7 +546,9 @@ pub struct SyncingProgress { } /// EIP-1559 transaction. -#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive( + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, +)] pub struct Transaction1559Unsigned { /// accessList /// EIP-2930 access list @@ -580,7 +588,9 @@ pub struct Transaction1559Unsigned { } /// EIP-2930 transaction. -#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive( + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, +)] pub struct Transaction2930Unsigned { /// accessList /// EIP-2930 access list @@ -609,7 +619,9 @@ pub struct Transaction2930Unsigned { } /// EIP-4844 transaction. -#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive( + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, +)] pub struct Transaction4844Unsigned { /// accessList /// EIP-2930 access list @@ -651,7 +663,9 @@ pub struct Transaction4844Unsigned { } /// Legacy transaction. -#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive( + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, +)] pub struct TransactionLegacyUnsigned { /// chainId /// Chain ID that this transaction is valid on. @@ -675,7 +689,9 @@ pub struct TransactionLegacyUnsigned { pub value: U256, } -#[derive(Debug, Clone, Serialize, Deserialize, From, TryInto, Eq, PartialEq)] +#[derive( + Debug, Clone, Serialize, Deserialize, From, TryInto, Eq, PartialEq, TypeInfo, Encode, Decode, +)] #[serde(untagged)] pub enum TransactionSigned { Transaction4844Signed(Transaction4844Signed), @@ -690,7 +706,9 @@ impl Default for TransactionSigned { } /// Validator withdrawal -#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive( + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, +)] pub struct Withdrawal { /// recipient address for withdrawal value pub address: Address, @@ -729,7 +747,9 @@ impl Default for FilterTopic { } /// Signed 1559 Transaction -#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive( + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, +)] pub struct Transaction1559Signed { #[serde(flatten)] pub transaction_1559_unsigned: Transaction1559Unsigned, @@ -749,7 +769,9 @@ pub struct Transaction1559Signed { } /// Signed 2930 Transaction -#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive( + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, +)] pub struct Transaction2930Signed { #[serde(flatten)] pub transaction_2930_unsigned: Transaction2930Unsigned, @@ -769,7 +791,9 @@ pub struct Transaction2930Signed { } /// Signed 4844 Transaction -#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive( + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, +)] pub struct Transaction4844Signed { #[serde(flatten)] pub transaction_4844_unsigned: Transaction4844Unsigned, @@ -784,7 +808,9 @@ pub struct Transaction4844Signed { } /// Signed Legacy Transaction -#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive( + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, +)] pub struct TransactionLegacySigned { #[serde(flatten)] pub transaction_legacy_unsigned: TransactionLegacyUnsigned, From 374497674e7175196c314431181ccf6bd29bea5f Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 1 Aug 2025 14:20:27 +0000 Subject: [PATCH 002/273] frame/revive: Extend the EthCall and EthInstantiateWCode with the tx Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/runtime.rs | 2 ++ substrate/frame/revive/src/lib.rs | 10 ++++++++++ substrate/frame/revive/src/test_utils/builder.rs | 2 ++ 3 files changed, 14 insertions(+) diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index 48380f83899bd..c9f002977c444 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -346,6 +346,7 @@ pub trait EthExtra { gas_limit, storage_deposit_limit, data, + payload, } .into() } @@ -367,6 +368,7 @@ pub trait EthExtra { storage_deposit_limit, code: code.to_vec(), data: data.to_vec(), + payload, } .into() }; diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index c7dc0d5ab21ac..17d72f49d1e79 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -869,6 +869,7 @@ pub mod pallet { #[pallet::compact] storage_deposit_limit: BalanceOf, code: Vec, data: Vec, + payload: Vec, ) -> DispatchResultWithPostInfo { let code_len = code.len() as u32; let data_len = data.len() as u32; @@ -910,6 +911,7 @@ pub mod pallet { gas_limit: Weight, #[pallet::compact] storage_deposit_limit: BalanceOf, data: Vec, + payload: Vec, ) -> DispatchResultWithPostInfo { let mut output = Self::bare_call( origin, @@ -1355,6 +1357,10 @@ where gas_limit, storage_deposit_limit, data: input.clone(), + // Since this is a dry run, we don't need to pass the signed transaction + // payload. Instead, use an empty vector. The signed transaction + // will be provided by the user when the tx is submitted. + payload: Vec::new(), } .into(); (result, dispatch_call) @@ -1419,6 +1425,10 @@ where storage_deposit_limit, code: code.to_vec(), data: data.to_vec(), + // Since this is a dry run, we don't need to pass the signed transaction + // payload. Instead, use an empty vector. The signed transaction + // will be provided by the user when the tx is submitted. + payload: Vec::new(), } .into(); (result, dispatch_call) diff --git a/substrate/frame/revive/src/test_utils/builder.rs b/substrate/frame/revive/src/test_utils/builder.rs index 2769484c68558..eb37282c8d456 100644 --- a/substrate/frame/revive/src/test_utils/builder.rs +++ b/substrate/frame/revive/src/test_utils/builder.rs @@ -242,6 +242,7 @@ builder!( gas_limit: Weight, storage_deposit_limit: BalanceOf, data: Vec, + payload: Vec, ) -> DispatchResultWithPostInfo; /// Create a [`EthCallBuilder`] with default values. @@ -253,6 +254,7 @@ builder!( gas_limit: GAS_LIMIT, storage_deposit_limit: deposit_limit::(), data: vec![], + payload: vec![], } } ); From 4c8bf792c37fc250ba65f857d1d98cea8910c070 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 1 Aug 2025 14:35:41 +0000 Subject: [PATCH 003/273] frame/revive: Store inflight events to reconstruct later the logs Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 17d72f49d1e79..f53a300f0fba8 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -525,6 +525,15 @@ pub mod pallet { #[pallet::storage] pub(crate) type OriginalAccount = StorageMap<_, Identity, H160, AccountId32>; + /// The events emitted by this pallet while executing the current inflight transaction. + /// + /// The events are needed to reconstruct the ReceiptInfo, as they represent the + /// logs emitted by the contract. + #[pallet::storage] + #[pallet::unbounded] + pub(crate) type InflightEvents = + CountedStorageMap<_, Identity, u32, Event, OptionQuery>; + #[pallet::genesis_config] #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { @@ -1629,6 +1638,10 @@ impl Pallet { /// Deposit a pallet contracts event. fn deposit_event(event: Event) { + let events_count = InflightEvents::::count(); + // TODO: ensure we don't exceed a maximum number of events per tx. + InflightEvents::::insert(events_count, event.clone()); + >::deposit_event(::RuntimeEvent::from(event)) } From 0f2ee97a74e6024149b60a7e4c07c3c737f96259 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 1 Aug 2025 15:13:29 +0000 Subject: [PATCH 004/273] frame/revive: Store transaction details Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index f53a300f0fba8..69d9b8fadf0a7 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -534,6 +534,17 @@ pub mod pallet { pub(crate) type InflightEvents = CountedStorageMap<_, Identity, u32, Event, OptionQuery>; + /// The EVM submitted transactions that are inflight for the current block. + /// + /// The transactions are needed to construct the ETH block. + /// + /// This maps the transaction index to the transaction payload, the events emitted by the + /// transaction, the status of the transaction (success or not), and the gas consumed. + #[pallet::storage] + #[pallet::unbounded] + pub(crate) type InflightTransactions = + CountedStorageMap<_, Identity, u32, (Vec, Vec>, bool, Weight), OptionQuery>; + #[pallet::genesis_config] #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { @@ -898,6 +909,9 @@ pub mod pallet { output.result = Err(>::ContractReverted.into()); } } + + Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); + dispatch_result( output.result.map(|result| result.result), output.gas_consumed, @@ -936,6 +950,9 @@ pub mod pallet { output.result = Err(>::ContractReverted.into()); } } + + Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); + dispatch_result( output.result, output.gas_consumed, @@ -1645,6 +1662,17 @@ impl Pallet { >::deposit_event(::RuntimeEvent::from(event)) } + fn store_transaction(payload: Vec, success: bool, gas_consumed: Weight) { + // Collect inflight events emitted by this EVM transaction. + let events = InflightEvents::::drain().map(|(_idx, event)| event).collect::>(); + + let transactions_count = InflightTransactions::::count(); + InflightTransactions::::insert( + transactions_count, + (payload, events, success, gas_consumed), + ); + } + /// The address of the validator that produced the current block. pub fn block_author() -> Option { use frame_support::traits::FindAuthor; From 89a4a15edfca42321a5882cba92c5ca02cf7c8c8 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 1 Aug 2025 16:07:57 +0000 Subject: [PATCH 005/273] frame/revive: Reconstruct ReceiptInfo Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 116 ++++++++++++++++++++++++++++-- 1 file changed, 112 insertions(+), 4 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 69d9b8fadf0a7..d86cec4cbab14 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,8 +45,8 @@ pub mod weights; use crate::{ evm::{ - runtime::GAS_PRICE, CallTracer, GasEncoder, GenericTransaction, PrestateTracer, Trace, - Tracer, TracerType, TYPE_EIP1559, + runtime::GAS_PRICE, CallTracer, GasEncoder, GenericTransaction, Log, PrestateTracer, + ReceiptInfo, Trace, Tracer, TracerType, TransactionSigned, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Key, Stack as ExecStack}, gas::GasMeter, @@ -97,7 +97,7 @@ pub use frame_support::{self, dispatch::DispatchInfo, weights::Weight}; pub use frame_system::{self, limits::BlockWeights}; pub use pallet_transaction_payment; pub use primitives::*; -pub use sp_core::{H160, H256, U256}; +pub use sp_core::{keccak_256, H160, H256, U256}; pub use sp_runtime; pub use weights::WeightInfo; @@ -564,13 +564,109 @@ pub mod pallet { } #[pallet::hooks] - impl Hooks> for Pallet { + impl Hooks> for Pallet + where + // We need this to place the substrate block + // hash into the logs of the receipts. + T::Hash: frame_support::traits::IsType, + { fn on_idle(_block: BlockNumberFor, limit: Weight) -> Weight { let mut meter = WeightMeter::with_limit(limit); ContractInfo::::process_deletion_queue_batch(&mut meter); meter.consumed() } + fn on_finalize(block_number: BlockNumberFor) { + let Some(block_author) = Self::block_author() else { + Self::kill_inflight_data(); + return; + }; + + let block_hash = frame_system::Pallet::::block_hash(block_number); + let transactions = InflightTransactions::::drain().collect::>(); + + let base_gas_price = GAS_PRICE.into(); + + let tx_and_receipts: Vec<(TransactionSigned, ReceiptInfo)> = transactions + .into_iter() + .filter_map(|(transaction_index, (payload, events, success, gas))| { + let signed_tx = TransactionSigned::decode(&mut &payload[..]).inspect_err(|err| { + log::error!(target: LOG_TARGET, "Failed to decode transaction at index {transaction_index}: {err:?}"); + }).ok()?; + + let from = signed_tx.recover_eth_address() + .inspect_err(|err| { + log::error!(target: LOG_TARGET, "Failed to recover sender address at index {transaction_index}: {err:?}"); + }) + .ok()?; + + let transaction_hash = H256(keccak_256(&payload)); + + let tx_info = GenericTransaction::from_signed( + signed_tx.clone(), + base_gas_price, + Some(from), + ); + + let _gas_price = tx_info.gas_price; + + let logs = events.into_iter().enumerate().filter_map(|(index, event)| { + if let Event::ContractEmitted { contract, data, topics } = event { + Some(Log { + address: contract, + topics, + data: Some(data.into()), + + transaction_hash, + transaction_index: transaction_index.into(), + + // We use the substrate block number and hash as the eth block number and hash. + block_number: block_number.into(), + block_hash: block_hash.into(), + log_index: index.into(), + + ..Default::default() + }) + } else { + None + } + }).collect(); + + // Could this be extracted from the Call itself? + let contract_address = if tx_info.to.is_none() { + let nonce = tx_info.nonce.unwrap_or_default().try_into(); + match nonce { + Ok(nonce) => Some(create1(&from, nonce)), + Err(err) => { + log::error!(target: LOG_TARGET, "Failed to convert nonce at index {transaction_index}: {err:?}"); + None + } + } + } else { + None + }; + + let receipt = ReceiptInfo::new( + block_hash.into(), + block_number.into(), + contract_address, + from, + logs, + tx_info.to, + base_gas_price.into(), + // TODO: Is this conversion correct / appropriate for prod use-case? + gas.ref_time().into(), + success, + transaction_hash, + transaction_index.into(), + tx_info.r#type.unwrap_or_default(), + ); + + Some((signed_tx, receipt)) + }) + .collect(); + } + fn integrity_test() { use limits::code::STATIC_MEMORY_BYTES; @@ -910,6 +1006,8 @@ pub mod pallet { } } + // TODO: Should we report `gas_consumed.saturating_add(base_weight)` instead? + // If so, we might need to capture this from inside the `dispatch_result`. Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); dispatch_result( @@ -1662,6 +1760,9 @@ impl Pallet { >::deposit_event(::RuntimeEvent::from(event)) } + /// Store a transaction payload with extra details. + /// + /// The data is used during the `on_finalize` hook to reconstruct the ETH block. fn store_transaction(payload: Vec, success: bool, gas_consumed: Weight) { // Collect inflight events emitted by this EVM transaction. let events = InflightEvents::::drain().map(|(_idx, event)| event).collect::>(); @@ -1673,6 +1774,13 @@ impl Pallet { ); } + /// Kill all inflight data collected during the current block. + fn kill_inflight_data() { + // TODO: Do they remove the data from the storage? + InflightEvents::::drain(); + InflightTransactions::::drain(); + } + /// The address of the validator that produced the current block. pub fn block_author() -> Option { use frame_support::traits::FindAuthor; From 557671051d31ed58332245d5db053834ba1875d0 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 1 Aug 2025 17:14:32 +0000 Subject: [PATCH 006/273] frame/revive: Compute the extrinsic's root Signed-off-by: Alexandru Vasile --- Cargo.lock | 1 + substrate/frame/revive/Cargo.toml | 4 +++- .../frame/revive/src/evm/api/rlp_codec.rs | 17 ++++++++++++++ substrate/frame/revive/src/lib.rs | 22 ++++++++++++++++++- substrate/primitives/core/src/lib.rs | 5 +++-- 5 files changed, 45 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 81c88ef5d3326..8c9540706484b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12887,6 +12887,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-tracing 16.0.0", + "sp-trie", "substrate-bn", "subxt-signer 0.41.0", ] diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index 7758137b12107..791d549873313 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -38,6 +38,7 @@ rand_pcg = { workspace = true, optional = true } rlp = { workspace = true } scale-info = { features = ["derive"], workspace = true } serde = { features = ["alloc", "derive"], workspace = true, default-features = false } +sp-trie = { workspace = true } # Polkadot SDK Dependencies bn = { workspace = true } @@ -54,7 +55,8 @@ sp-arithmetic = { workspace = true } sp-consensus-aura = { workspace = true, optional = true } sp-consensus-babe = { workspace = true, optional = true } sp-consensus-slots = { workspace = true, optional = true } -sp-core = { workspace = true } +# TODO: Is this feature safe? Was it tested? Why experimental? Better to just use alloy-trie/core? +sp-core = { workspace = true, features = ["bls-experimental", "bandersnatch-experimental"] } sp-io = { workspace = true } sp-runtime = { workspace = true } subxt-signer = { workspace = true, optional = true, features = ["unstable-eth"] } diff --git a/substrate/frame/revive/src/evm/api/rlp_codec.rs b/substrate/frame/revive/src/evm/api/rlp_codec.rs index 4094c963ac204..8433fa6fd9da1 100644 --- a/substrate/frame/revive/src/evm/api/rlp_codec.rs +++ b/substrate/frame/revive/src/evm/api/rlp_codec.rs @@ -99,6 +99,23 @@ impl TransactionSigned { _ => rlp::decode::(data).map(Into::into), } } + + /// Encode the Ethereum transaction into bytes. + pub fn encode_2718(&self) -> Vec { + use alloc::vec; + use TransactionSigned::*; + + match self { + Transaction2930Signed(ref tx) => + vec![TYPE_EIP2930].into_iter().chain(rlp::encode(tx).into_iter()).collect(), + Transaction1559Signed(ref tx) => + vec![TYPE_EIP1559].into_iter().chain(rlp::encode(tx).into_iter()).collect(), + Transaction4844Signed(ref tx) => + vec![TYPE_EIP4844].into_iter().chain(rlp::encode(tx).into_iter()).collect(), + TransactionLegacySigned(ref tx) => + vec![0].into_iter().chain(rlp::encode(tx).into_iter()).collect(), + } + } } impl TransactionUnsigned { diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index d86cec4cbab14..e36da2092a707 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -577,7 +577,7 @@ pub mod pallet { } fn on_finalize(block_number: BlockNumberFor) { - let Some(block_author) = Self::block_author() else { + let Some(_block_author) = Self::block_author() else { Self::kill_inflight_data(); return; }; @@ -665,6 +665,26 @@ pub mod pallet { Some((signed_tx, receipt)) }) .collect(); + + // Tx and Receipts must be encoded via: encode_2718 + // TODO: We need to extend `TransactionSigned` with a new `encode()` fn similar to + // decode. + + // TODO: + // Calculate tx root: + // https://github.com/alloy-rs/alloy/blob/32ffb79c52caa3d54bb81b8fc5b1815bb45d30d8/crates/consensus/src/proofs.rs#L16-L24 + // We might need: `(rlp(index), encoded(tx))` pairs instead. + let tx_blobs = + tx_and_receipts.iter().map(|(tx, _)| tx.encode_2718()).collect::>(); + + // Do we need V0? What are the diffs here? + use sp_trie::TrieConfiguration; + // The KeccakHasher is guarded against a #[cfg(not(substrate_runtime))]. + let _transaction_root = sp_trie::LayoutV1::::ordered_trie_root(tx_blobs); + + // TODO: + // Calculate receipt root: + // https://github.com/alloy-rs/alloy/blob/32ffb79c52caa3d54bb81b8fc5b1815bb45d30d8/crates/consensus/src/proofs.rs#L49-L54 } fn integrity_test() { diff --git a/substrate/primitives/core/src/lib.rs b/substrate/primitives/core/src/lib.rs index fc5faa6a6f233..d6d0c507f13be 100644 --- a/substrate/primitives/core/src/lib.rs +++ b/substrate/primitives/core/src/lib.rs @@ -61,7 +61,7 @@ pub use paste; mod address_uri; pub mod defer; pub mod hash; -#[cfg(not(substrate_runtime))] +// #[cfg(not(substrate_runtime))] mod hasher; pub mod offchain; pub mod proof_of_possession; @@ -93,7 +93,8 @@ pub use crypto::{ByteArray, DeriveJunction, Pair, Public}; #[cfg(not(substrate_runtime))] pub use self::hasher::blake2::Blake2Hasher; -#[cfg(not(substrate_runtime))] +// TODO: Is this sane? +// #[cfg(not(substrate_runtime))] pub use self::hasher::keccak::KeccakHasher; pub use hash_db::Hasher; From 9eb418d6ce0dd0a67afa8c642cd4852532fe31e3 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 1 Aug 2025 17:27:28 +0000 Subject: [PATCH 007/273] revive: apply fmt Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index e36da2092a707..6e8b0597e9097 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -680,7 +680,8 @@ pub mod pallet { // Do we need V0? What are the diffs here? use sp_trie::TrieConfiguration; // The KeccakHasher is guarded against a #[cfg(not(substrate_runtime))]. - let _transaction_root = sp_trie::LayoutV1::::ordered_trie_root(tx_blobs); + let _transaction_root = + sp_trie::LayoutV1::::ordered_trie_root(tx_blobs); // TODO: // Calculate receipt root: From 384ea42e752b863810a8dee82b9796856769d0d7 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 10:33:39 +0000 Subject: [PATCH 008/273] revive/tests: Add missing fields for revive calls Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/runtime.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index c9f002977c444..7a64d28722c69 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -603,7 +603,8 @@ mod test { value: tx.value.unwrap_or_default().as_u64().into(), data: tx.input.to_vec(), gas_limit, - storage_deposit_limit + storage_deposit_limit, + payload: vec![], } .into() ); @@ -625,7 +626,8 @@ mod test { code, data, gas_limit, - storage_deposit_limit + storage_deposit_limit, + payload: vec![], } .into() ); From aae6764764a295320314eaa4a5ba78d987a98bcf Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 10:52:07 +0000 Subject: [PATCH 009/273] revive: Use substrate block tx index instead Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 6e8b0597e9097..ce0c379d6245f 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -542,8 +542,13 @@ pub mod pallet { /// transaction, the status of the transaction (success or not), and the gas consumed. #[pallet::storage] #[pallet::unbounded] - pub(crate) type InflightTransactions = - CountedStorageMap<_, Identity, u32, (Vec, Vec>, bool, Weight), OptionQuery>; + pub(crate) type InflightTransactions = CountedStorageMap< + _, + Identity, + u32, + (Vec, u32, Vec>, bool, Weight), + OptionQuery, + >; #[pallet::genesis_config] #[derive(frame_support::DefaultNoBound)] @@ -589,7 +594,7 @@ pub mod pallet { let tx_and_receipts: Vec<(TransactionSigned, ReceiptInfo)> = transactions .into_iter() - .filter_map(|(transaction_index, (payload, events, success, gas))| { + .filter_map(|(_, (payload, transaction_index, events, success, gas))| { let signed_tx = TransactionSigned::decode(&mut &payload[..]).inspect_err(|err| { log::error!(target: LOG_TARGET, "Failed to decode transaction at index {transaction_index}: {err:?}"); }).ok()?; @@ -1788,10 +1793,15 @@ impl Pallet { // Collect inflight events emitted by this EVM transaction. let events = InflightEvents::::drain().map(|(_idx, event)| event).collect::>(); + let extrinsic_index = frame_system::Pallet::::extrinsic_index().unwrap_or_else(|| { + log::warn!(target: LOG_TARGET, "Extrinsic index is not set, using default value 0"); + 0 + }); + let transactions_count = InflightTransactions::::count(); InflightTransactions::::insert( transactions_count, - (payload, events, success, gas_consumed), + (payload, extrinsic_index, events, success, gas_consumed), ); } From f8504e087eff3f4d4db84a48bdcd7d1d72b8f135 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 10:55:08 +0000 Subject: [PATCH 010/273] revive/api: Encode legacy signed directly Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/api/rlp_codec.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/evm/api/rlp_codec.rs b/substrate/frame/revive/src/evm/api/rlp_codec.rs index 8433fa6fd9da1..e06823e3d914c 100644 --- a/substrate/frame/revive/src/evm/api/rlp_codec.rs +++ b/substrate/frame/revive/src/evm/api/rlp_codec.rs @@ -112,8 +112,7 @@ impl TransactionSigned { vec![TYPE_EIP1559].into_iter().chain(rlp::encode(tx).into_iter()).collect(), Transaction4844Signed(ref tx) => vec![TYPE_EIP4844].into_iter().chain(rlp::encode(tx).into_iter()).collect(), - TransactionLegacySigned(ref tx) => - vec![0].into_iter().chain(rlp::encode(tx).into_iter()).collect(), + TransactionLegacySigned(ref tx) => rlp::encode(tx).to_vec(), } } } From dd580e8e3a72543bd2e93723c251df24db66d031 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 11:51:46 +0000 Subject: [PATCH 011/273] revive/bench: Adjust benchmarking with dummy data Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/benchmarking.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index aa9ee845afc0b..ff4e8aade2610 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -253,7 +253,7 @@ mod benchmarks { assert!(AccountInfoOf::::get(&deployer).is_none()); #[extrinsic_call] - _(origin, evm_value, Weight::MAX, storage_deposit, code, input); + _(origin, evm_value, Weight::MAX, storage_deposit, code, input, vec![]); let deposit = T::Currency::balance_on_hold(&HoldReason::StorageDepositReserve.into(), &account_id); @@ -381,7 +381,7 @@ mod benchmarks { let before = Pallet::::evm_balance(&instance.address); let storage_deposit = default_deposit_limit::(); #[extrinsic_call] - _(origin, instance.address, evm_value, Weight::MAX, storage_deposit, data); + _(origin, instance.address, evm_value, Weight::MAX, storage_deposit, data, vec![]); let deposit = T::Currency::balance_on_hold( &HoldReason::StorageDepositReserve.into(), &instance.account_id, From ff09db40b80d97371e70951e320b56cc189571b3 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 13:45:12 +0000 Subject: [PATCH 012/273] revive: Use v0 layout instead Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index ce0c379d6245f..ae1c0fee1d95e 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -682,11 +682,10 @@ pub mod pallet { let tx_blobs = tx_and_receipts.iter().map(|(tx, _)| tx.encode_2718()).collect::>(); - // Do we need V0? What are the diffs here? use sp_trie::TrieConfiguration; // The KeccakHasher is guarded against a #[cfg(not(substrate_runtime))]. let _transaction_root = - sp_trie::LayoutV1::::ordered_trie_root(tx_blobs); + sp_trie::LayoutV0::::ordered_trie_root(tx_blobs); // TODO: // Calculate receipt root: From 02f114ddecd21b397b7bc2a3b5b205e54fb2b798 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 15:09:09 +0000 Subject: [PATCH 013/273] revive: Compute receipt roots Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rlp_codec.rs | 42 +++++++++++++++++++ substrate/frame/revive/src/lib.rs | 14 ++++++- 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/api/rlp_codec.rs b/substrate/frame/revive/src/evm/api/rlp_codec.rs index e06823e3d914c..99b0078a4182c 100644 --- a/substrate/frame/revive/src/evm/api/rlp_codec.rs +++ b/substrate/frame/revive/src/evm/api/rlp_codec.rs @@ -466,6 +466,48 @@ impl Decodable for TransactionLegacySigned { } } +impl Encodable for ReceiptInfo { + fn rlp_append(&self, s: &mut rlp::RlpStream) { + s.begin_list(4); + let status_code = self.status.unwrap_or_default(); + s.append(&status_code); + s.append(&self.cumulative_gas_used); + s.append(&self.logs_bloom.0.as_ref()); + s.append_list(&self.logs); + } +} + +impl Encodable for Log { + fn rlp_append(&self, s: &mut rlp::RlpStream) { + s.begin_list(3); + + s.append(&self.address); + s.append_list(&self.topics); + let bytes = self.data.clone().unwrap_or_default(); + s.append(&bytes.0); + } +} + +impl ReceiptInfo { + /// Encode the receipt info into bytes. + /// + /// This is needed to compute the receipt root. + pub fn encode_2718(&self) -> Vec { + use alloc::vec; + + let u8_ty = self.r#type.clone().map(|t| t.0); + match u8_ty { + Some(TYPE_EIP2930) => + vec![TYPE_EIP2930].into_iter().chain(rlp::encode(self).into_iter()).collect(), + Some(TYPE_EIP1559) => + vec![TYPE_EIP1559].into_iter().chain(rlp::encode(self).into_iter()).collect(), + Some(TYPE_EIP4844) => + vec![TYPE_EIP4844].into_iter().chain(rlp::encode(self).into_iter()).collect(), + _ => rlp::encode(self).to_vec(), + } + } +} + #[cfg(test)] mod test { use super::*; diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index ae1c0fee1d95e..144f874de504d 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -618,6 +618,8 @@ pub mod pallet { let logs = events.into_iter().enumerate().filter_map(|(index, event)| { if let Event::ContractEmitted { contract, data, topics } = event { Some(Log { + // The address, topics and data are the only fields that + // get encoded while building the receipt root. address: contract, topics, data: Some(data.into()), @@ -651,7 +653,10 @@ pub mod pallet { None }; - let receipt = ReceiptInfo::new( + // The receipt only encodes the status code, gas used, + // logs bloom and logs. An encoded log only contains the + // contract address, topics and data. + let receipt: ReceiptInfo = ReceiptInfo::new( block_hash.into(), block_number.into(), contract_address, @@ -690,6 +695,13 @@ pub mod pallet { // TODO: // Calculate receipt root: // https://github.com/alloy-rs/alloy/blob/32ffb79c52caa3d54bb81b8fc5b1815bb45d30d8/crates/consensus/src/proofs.rs#L49-L54 + let receipt_blobs = tx_and_receipts + .iter() + .map(|(_, receipt)| receipt.encode_2718()) + .collect::>(); + + let _receipts_root = + sp_trie::LayoutV0::::ordered_trie_root(receipt_blobs); } fn integrity_test() { From 2172fdd98516a2313423a85aad30837b1998f618 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 15:34:17 +0000 Subject: [PATCH 014/273] revive: Compute state root by the provided config type Signed-off-by: Alexandru Vasile --- Cargo.lock | 1 + substrate/frame/revive/Cargo.toml | 1 + substrate/frame/revive/src/lib.rs | 33 +++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index d7de2139433f0..259c337814333 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12889,6 +12889,7 @@ dependencies = [ "sp-runtime", "sp-tracing 16.0.0", "sp-trie", + "sp-version", "substrate-bn", "subxt-signer 0.41.0", ] diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index 791d549873313..d899d35b4cd39 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -59,6 +59,7 @@ sp-consensus-slots = { workspace = true, optional = true } sp-core = { workspace = true, features = ["bls-experimental", "bandersnatch-experimental"] } sp-io = { workspace = true } sp-runtime = { workspace = true } +sp-version = { workspace = true } subxt-signer = { workspace = true, optional = true, features = ["unstable-eth"] } [dev-dependencies] diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index a37beaca5ed3a..5db2d2f8b5d0e 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -146,6 +146,9 @@ pub mod pallet { /// The time implementation used to supply timestamps to contracts through `seal_now`. type Time: Time; + /// How Ethereum state root is calculated. + type StateRoot: Get; + /// The fungible in which fees are paid and contract balances are held. #[pallet::no_default] type Currency: Inspect @@ -336,6 +339,7 @@ pub mod pallet { type DepositPerByte = DepositPerByte; type DepositPerItem = DepositPerItem; type Time = Self; + type StateRoot = DeterministicStateRoot; type UnsafeUnstableInterface = ConstBool; type UploadOrigin = EnsureSigned; type InstantiateOrigin = EnsureSigned; @@ -702,6 +706,8 @@ pub mod pallet { let _receipts_root = sp_trie::LayoutV0::::ordered_trie_root(receipt_blobs); + + let _storage_root = T::StateRoot::get(); } fn integrity_test() { @@ -2196,3 +2202,30 @@ macro_rules! impl_runtime_apis_plus_revive { } }; } + +/// Represents an intermediate state root for the current runtime version. +/// +/// This represents a snapshot of the state root at the time of calling, and +/// the it will most certainly be different than the state root of the final +/// substrate block. +/// +/// When in doubt, please select +pub struct IntermediateStateRoot(PhantomData); +impl> Get for IntermediateStateRoot { + fn get() -> H256 { + let version = T::get().state_version(); + H256::decode(&mut &sp_io::storage::root(version)[..]) + .expect("Node is configured to use the same hash; qed") + } +} + +/// Represents a deterministic state root for the current runtime version. +/// +/// This returns a deterministic state root (ie zeroed out). It has the same +/// level of usefulness as `IntermediateStateRoot`, but consumes less resources. +pub struct DeterministicStateRoot(PhantomData); +impl> Get for DeterministicStateRoot { + fn get() -> H256 { + H256::zero() + } +} From eb6c5627945f96bc2de832900cd3993bdd83877b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 16:00:47 +0000 Subject: [PATCH 015/273] ci: Remove forklift for build-runtimes-polkavm Signed-off-by: Alexandru Vasile --- .github/workflows/build-misc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-misc.yml b/.github/workflows/build-misc.yml index 829ee0afc260c..a101d3a749876 100644 --- a/.github/workflows/build-misc.yml +++ b/.github/workflows/build-misc.yml @@ -41,7 +41,7 @@ jobs: env: SUBSTRATE_RUNTIME_TARGET: riscv id: required - run: forklift cargo check -p minimal-template-runtime -p westend-runtime -p rococo-runtime -p polkadot-test-runtime + run: cargo check -p minimal-template-runtime -p westend-runtime -p rococo-runtime -p polkadot-test-runtime - name: Stop all workflows if failed if: ${{ failure() && steps.required.conclusion == 'failure' && !github.event.pull_request.head.repo.fork }} uses: ./.github/actions/workflow-stopper From 7d351d754110b823428cba2bfd3d17c96fb2d331 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 16:26:23 +0000 Subject: [PATCH 016/273] cargo: Update num-bigint to 0.4.6 Signed-off-by: Alexandru Vasile --- Cargo.lock | 5 ++--- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 259c337814333..3777c71ac2b77 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10728,11 +10728,10 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "autocfg", "num-integer", "num-traits", ] diff --git a/Cargo.toml b/Cargo.toml index 0894625d9452c..1c7eca71f567d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -927,7 +927,7 @@ node-rpc = { path = "substrate/bin/node/rpc" } node-testing = { path = "substrate/bin/node/testing" } nohash-hasher = { version = "0.2.0" } novelpoly = { version = "2.0.0", package = "reed-solomon-novelpoly" } -num-bigint = { version = "0.4.3", default-features = false } +num-bigint = { version = "0.4.6", default-features = false } num-format = { version = "0.4.3" } num-integer = { version = "0.1.46", default-features = false } num-rational = { version = "0.4.1" } From 94ac45c8962a3beaa9a94ea0d3aba50c2c9c77ea Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 16:26:38 +0000 Subject: [PATCH 017/273] Revert "ci: Remove forklift for build-runtimes-polkavm" This reverts commit eb6c5627945f96bc2de832900cd3993bdd83877b. --- .github/workflows/build-misc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-misc.yml b/.github/workflows/build-misc.yml index a101d3a749876..829ee0afc260c 100644 --- a/.github/workflows/build-misc.yml +++ b/.github/workflows/build-misc.yml @@ -41,7 +41,7 @@ jobs: env: SUBSTRATE_RUNTIME_TARGET: riscv id: required - run: cargo check -p minimal-template-runtime -p westend-runtime -p rococo-runtime -p polkadot-test-runtime + run: forklift cargo check -p minimal-template-runtime -p westend-runtime -p rococo-runtime -p polkadot-test-runtime - name: Stop all workflows if failed if: ${{ failure() && steps.required.conclusion == 'failure' && !github.event.pull_request.head.repo.fork }} uses: ./.github/actions/workflow-stopper From 32c318d00b5165ab86896b330c79bc1b1256fb9f Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 16:57:03 +0000 Subject: [PATCH 018/273] cumulus: Add pallet_revive::DeterministicStateRoot to revive Signed-off-by: Alexandru Vasile --- cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs | 1 + cumulus/parachains/runtimes/testing/penpal/src/lib.rs | 1 + 2 files changed, 2 insertions(+) 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 46094e233b1c7..bd94edaca552a 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -1166,6 +1166,7 @@ parameter_types! { impl pallet_revive::Config for Runtime { type Time = Timestamp; + type StateRoot = pallet_revive::DeterministicStateRoot; type Currency = Balances; type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; diff --git a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs index ff2f538bb3619..3b7793e48fc5b 100644 --- a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs @@ -841,6 +841,7 @@ parameter_types! { impl pallet_revive::Config for Runtime { type Time = Timestamp; + type StateRoot = pallet_revive::DeterministicStateRoot; type Currency = Balances; type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; From 30a5f041748c147ba814f098390f8dbb6679eaef Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 16:58:13 +0000 Subject: [PATCH 019/273] substrate/revive: Use StateRoot as pallet_revive::DeterministicStateRoot Signed-off-by: Alexandru Vasile --- substrate/bin/node/runtime/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 4ea04b736c02f..b96417d59825b 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1469,6 +1469,7 @@ impl pallet_contracts::Config for Runtime { impl pallet_revive::Config for Runtime { type Time = Timestamp; + type StateRoot = pallet_revive::DeterministicStateRoot; type Currency = Balances; type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; From 90186677807e5eff8269e760c02815599972c682 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 17:49:42 +0000 Subject: [PATCH 020/273] cargo: Add derive feature flag for rlp Signed-off-by: Alexandru Vasile --- Cargo.lock | 12 ++++++++++++ substrate/frame/revive/Cargo.toml | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 3777c71ac2b77..5022265216767 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18248,9 +18248,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa24e92bb2a83198bb76d661a71df9f7076b8c420b8696e4d3d97d50d94479e3" dependencies = [ "bytes", + "rlp-derive", "rustc-hex", ] +[[package]] +name = "rlp-derive" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "652db34deaaa57929e10ca18e5454a32cb0efc351ae80d320334bbf907b908b3" +dependencies = [ + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", +] + [[package]] name = "rocksdb" version = "0.21.0" diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index d899d35b4cd39..4523d54f1e21d 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -35,7 +35,7 @@ polkavm = { version = "0.26.0", default-features = false } polkavm-common = { version = "0.26.0", default-features = false, optional = true } rand = { workspace = true, optional = true } rand_pcg = { workspace = true, optional = true } -rlp = { workspace = true } +rlp = { workspace = true, features = ["derive"] } scale-info = { features = ["derive"], workspace = true } serde = { features = ["alloc", "derive"], workspace = true, default-features = false } sp-trie = { workspace = true } From 139104621edd047f57a9cfeacb7333a5969acef3 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 17:50:03 +0000 Subject: [PATCH 021/273] revive/byte: Extend the macro impl with elp encode Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/api/byte.rs | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/substrate/frame/revive/src/evm/api/byte.rs b/substrate/frame/revive/src/evm/api/byte.rs index 21a7b6fb42463..1d80b1756040b 100644 --- a/substrate/frame/revive/src/evm/api/byte.rs +++ b/substrate/frame/revive/src/evm/api/byte.rs @@ -82,6 +82,31 @@ impl_hex!(Bytes, Vec, vec![]); impl_hex!(Bytes8, [u8; 8], [0u8; 8]); impl_hex!(Bytes256, [u8; 256], [0u8; 256]); +// Note: rlp::Encodable derive panics within the `impl_hex!` macro. +impl rlp::Encodable for Byte { + fn rlp_append(&self, stream: &mut rlp::RlpStream) { + self.0.rlp_append(stream); + } +} + +impl rlp::Encodable for Bytes { + fn rlp_append(&self, stream: &mut rlp::RlpStream) { + self.0.rlp_append(stream); + } +} + +impl rlp::Encodable for Bytes8 { + fn rlp_append(&self, stream: &mut rlp::RlpStream) { + self.0.as_slice().rlp_append(stream); + } +} + +impl rlp::Encodable for Bytes256 { + fn rlp_append(&self, stream: &mut rlp::RlpStream) { + self.0.as_slice().rlp_append(stream); + } +} + #[test] fn serialize_works() { let a = Byte(42); From b0cf750b3a92ca47cec76057377211fe4da6cfba Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 6 Aug 2025 17:50:19 +0000 Subject: [PATCH 022/273] revive: Add ETH block header for hashing Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rpc_types_gen.rs | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) 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 8fe6b7ff14b4a..cf5786841675b 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -149,6 +149,44 @@ pub struct Block { pub withdrawals_root: Option, } +/// Block header. +#[derive( + Debug, + Default, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + rlp::RlpEncodable, +)] +pub struct BlockHeader { + pub parent_hash: H256, + pub ommers_hash: H256, + pub beneficiary: H160, + pub state_root: H256, + pub transactions_root: H256, + pub receipts_root: H256, + pub logs_bloom: Bytes256, + pub difficulty: U256, + pub number: U256, + pub gas_limit: U256, + pub gas_used: U256, + pub timestamp: u64, + pub extra_data: Bytes, + pub mix_hash: H256, + pub nonce: Bytes8, +} + +impl BlockHeader { + pub fn hash(&self) -> H256 { + H256(sp_core::keccak_256(&rlp::encode(self))) + } +} + /// Block number or tag #[derive(Debug, Clone, Serialize, Deserialize, From, TryInto, Eq, PartialEq)] #[serde(untagged)] From 3c39a21451a19d1d489492db7cefba58ea362ada Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 7 Aug 2025 09:48:57 +0000 Subject: [PATCH 023/273] revive: Compute the blocks logs bloom from cumulating logs Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/api/byte.rs | 12 ++++++++ substrate/frame/revive/src/lib.rs | 33 ++++++++++++++++++---- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/substrate/frame/revive/src/evm/api/byte.rs b/substrate/frame/revive/src/evm/api/byte.rs index 1d80b1756040b..eaeaf3c4d8f9f 100644 --- a/substrate/frame/revive/src/evm/api/byte.rs +++ b/substrate/frame/revive/src/evm/api/byte.rs @@ -82,6 +82,18 @@ impl_hex!(Bytes, Vec, vec![]); impl_hex!(Bytes8, [u8; 8], [0u8; 8]); impl_hex!(Bytes256, [u8; 256], [0u8; 256]); +impl Bytes256 { + /// Combine the logs bloom by bitwise OR operation. + /// + /// This ensures that we can compute the block's logs bloom by + /// combining the logs bloom of all transactions in the block. + pub fn combine(&mut self, other: &Self) { + for (a, b) in self.0.iter_mut().zip(other.0.iter()) { + *a |= b; + } + } +} + // Note: rlp::Encodable derive panics within the `impl_hex!` macro. impl rlp::Encodable for Byte { fn rlp_append(&self, stream: &mut rlp::RlpStream) { diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 5db2d2f8b5d0e..6b18ed419c198 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,8 +45,8 @@ pub mod weights; use crate::{ evm::{ - runtime::GAS_PRICE, CallTracer, GasEncoder, GenericTransaction, Log, PrestateTracer, - ReceiptInfo, Trace, Tracer, TracerType, TransactionSigned, TYPE_EIP1559, + runtime::GAS_PRICE, BlockHeader, Bytes256, CallTracer, GasEncoder, GenericTransaction, Log, + PrestateTracer, ReceiptInfo, Trace, Tracer, TracerType, TransactionSigned, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Key, Stack as ExecStack}, gas::GasMeter, @@ -586,7 +586,7 @@ pub mod pallet { } fn on_finalize(block_number: BlockNumberFor) { - let Some(_block_author) = Self::block_author() else { + let Some(block_author) = Self::block_author() else { Self::kill_inflight_data(); return; }; @@ -596,6 +596,7 @@ pub mod pallet { let base_gas_price = GAS_PRICE.into(); + let mut logs_bloom = Bytes256::default(); let tx_and_receipts: Vec<(TransactionSigned, ReceiptInfo)> = transactions .into_iter() .filter_map(|(_, (payload, transaction_index, events, success, gas))| { @@ -676,6 +677,8 @@ pub mod pallet { tx_info.r#type.unwrap_or_default(), ); + logs_bloom.combine(&receipt.logs_bloom); + Some((signed_tx, receipt)) }) .collect(); @@ -693,7 +696,7 @@ pub mod pallet { use sp_trie::TrieConfiguration; // The KeccakHasher is guarded against a #[cfg(not(substrate_runtime))]. - let _transaction_root = + let transactions_root = sp_trie::LayoutV0::::ordered_trie_root(tx_blobs); // TODO: @@ -704,10 +707,28 @@ pub mod pallet { .map(|(_, receipt)| receipt.encode_2718()) .collect::>(); - let _receipts_root = + let receipts_root = sp_trie::LayoutV0::::ordered_trie_root(receipt_blobs); - let _storage_root = T::StateRoot::get(); + let state_root = T::StateRoot::get(); + + let block_header = BlockHeader { + parent_hash: Default::default(), + ommers_hash: Default::default(), + beneficiary: block_author.into(), + + state_root, + transactions_root, + receipts_root, + + logs_bloom, + ..Default::default() /* // TODO: Compute this correctly. + * logs_bloom: Default::default(), + * difficulty: U256::zero(), + * extra_data: Vec::new(), + * mix_hash: H256::default(), + * nonce: Default::default(), */ + }; } fn integrity_test() { From e3e0d288c736eb0fad25c18bd709c4711352831d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 7 Aug 2025 10:52:09 +0000 Subject: [PATCH 024/273] revive: Populate total gas used Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 6b18ed419c198..c3bf3e1131eb5 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -578,6 +578,14 @@ pub mod pallet { // We need this to place the substrate block // hash into the logs of the receipts. T::Hash: frame_support::traits::IsType, + + // We need these to access the ETH block gas limit via `Self::evm_block_gas_limit()`. + ::RuntimeCall: + Dispatchable, + T: pallet_transaction_payment::Config, + OnChargeTransactionBalanceOf: Into>, + BalanceOf: Into + TryFrom, + MomentOf: Into, { fn on_idle(_block: BlockNumberFor, limit: Weight) -> Weight { let mut meter = WeightMeter::with_limit(limit); @@ -597,6 +605,7 @@ pub mod pallet { let base_gas_price = GAS_PRICE.into(); let mut logs_bloom = Bytes256::default(); + let mut total_gas_used = U256::zero(); let tx_and_receipts: Vec<(TransactionSigned, ReceiptInfo)> = transactions .into_iter() .filter_map(|(_, (payload, transaction_index, events, success, gas))| { @@ -658,6 +667,9 @@ pub mod pallet { None }; + // TODO: Could it be possible that the gas exceeds the u64::MAX? + total_gas_used += gas.ref_time().into(); + // The receipt only encodes the status code, gas used, // logs bloom and logs. An encoded log only contains the // contract address, topics and data. @@ -713,7 +725,9 @@ pub mod pallet { let state_root = T::StateRoot::get(); let block_header = BlockHeader { + // TODO: This is not the correct parent hash. parent_hash: Default::default(), + // Ommers are set to default in pallet frontier. ommers_hash: Default::default(), beneficiary: block_author.into(), @@ -721,6 +735,12 @@ pub mod pallet { transactions_root, receipts_root, + difficulty: U256::zero(), + number: block_number.into(), + + gas_limit: Self::evm_block_gas_limit(), + gas_used: total_gas_used, + logs_bloom, ..Default::default() /* // TODO: Compute this correctly. * logs_bloom: Default::default(), From 28ad2b21b06dba265336994d6fcda2df66c9b1cc Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 7 Aug 2025 10:55:31 +0000 Subject: [PATCH 025/273] revive: Populate the timestamp Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/api/rpc_types_gen.rs | 2 +- substrate/frame/revive/src/lib.rs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) 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 cf5786841675b..ca297a858c87e 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -175,7 +175,7 @@ pub struct BlockHeader { pub number: U256, pub gas_limit: U256, pub gas_used: U256, - pub timestamp: u64, + pub timestamp: U256, pub extra_data: Bytes, pub mix_hash: H256, pub nonce: Bytes8, diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index c3bf3e1131eb5..1bd07ad0b0728 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -734,6 +734,7 @@ pub mod pallet { state_root, transactions_root, receipts_root, + logs_bloom, difficulty: U256::zero(), number: block_number.into(), @@ -741,7 +742,8 @@ pub mod pallet { gas_limit: Self::evm_block_gas_limit(), gas_used: total_gas_used, - logs_bloom, + timestamp: T::Time::now().into(), + ..Default::default() /* // TODO: Compute this correctly. * logs_bloom: Default::default(), * difficulty: U256::zero(), From 62b93c38fd83429f843c548b151780be66b4c23b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 7 Aug 2025 10:59:38 +0000 Subject: [PATCH 026/273] revive: Build the block hash with the deterministic state root Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 1bd07ad0b0728..c47b554cfd6de 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -729,28 +729,34 @@ pub mod pallet { parent_hash: Default::default(), // Ommers are set to default in pallet frontier. ommers_hash: Default::default(), + // The author of the block. beneficiary: block_author.into(), + // Trie roots. state_root, transactions_root, receipts_root, logs_bloom, + // Difficulty is set to zero and not used. difficulty: U256::zero(), + // The block number is the current substrate block number. number: block_number.into(), + // The gas limit is set to the EVM block gas limit. gas_limit: Self::evm_block_gas_limit(), + // The total gas used by the transactions in this block. gas_used: total_gas_used, - + // The timestamp is set to the current time. timestamp: T::Time::now().into(), - ..Default::default() /* // TODO: Compute this correctly. - * logs_bloom: Default::default(), - * difficulty: U256::zero(), - * extra_data: Vec::new(), - * mix_hash: H256::default(), - * nonce: Default::default(), */ + // Default fields (not used). + extra_data: Default::default(), + mix_hash: Default::default(), + nonce: Default::default(), }; + + let _block_hash = block_header.hash(); } fn integrity_test() { From 07206ecad8cabf57d4793ac07e2a9b5c0123fe08 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 7 Aug 2025 14:12:37 +0000 Subject: [PATCH 027/273] revive: Add partial transaction details into storage Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rpc_types_gen.rs | 22 +++++++++++++-- substrate/frame/revive/src/lib.rs | 28 +++++++++++++++---- 2 files changed, 43 insertions(+), 7 deletions(-) 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 ca297a858c87e..9f23f6be3310f 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -354,7 +354,9 @@ pub struct GenericTransaction { } /// Receipt information -#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive( + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, +)] pub struct ReceiptInfo { /// blob gas price /// The actual value per gas deducted from the sender's account for blob gas. Only specified @@ -459,6 +461,20 @@ pub struct TransactionInfo { pub transaction_signed: TransactionSigned, } +#[derive( + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, +)] +pub struct PartialSignedTransactionInfo { + /// from address + pub from: Address, + /// transaction hash + pub hash: H256, + /// transaction index + pub transaction_index: U256, + /// transaction signed + pub transaction_signed: TransactionSigned, +} + #[derive(Debug, Clone, Serialize, Deserialize, From, TryInto, Eq, PartialEq)] #[serde(untagged)] pub enum TransactionUnsigned { @@ -539,7 +555,9 @@ impl Default for HashesOrTransactionInfos { } /// log -#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] +#[derive( + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, +)] pub struct Log { /// address pub address: Address, diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index c47b554cfd6de..9a098176701e5 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -46,7 +46,8 @@ pub mod weights; use crate::{ evm::{ runtime::GAS_PRICE, BlockHeader, Bytes256, CallTracer, GasEncoder, GenericTransaction, Log, - PrestateTracer, ReceiptInfo, Trace, Tracer, TracerType, TransactionSigned, TYPE_EIP1559, + PartialSignedTransactionInfo, PrestateTracer, ReceiptInfo, Trace, Tracer, TracerType, + TransactionSigned, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Key, Stack as ExecStack}, gas::GasMeter, @@ -554,6 +555,12 @@ pub mod pallet { OptionQuery, >; + /// The last block transaction details. + #[pallet::storage] + #[pallet::unbounded] + pub(crate) type LastBlockTransactionsDetails = + StorageValue<_, Vec<(PartialSignedTransactionInfo, ReceiptInfo)>, ValueQuery>; + #[pallet::genesis_config] #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { @@ -606,7 +613,7 @@ pub mod pallet { let mut logs_bloom = Bytes256::default(); let mut total_gas_used = U256::zero(); - let tx_and_receipts: Vec<(TransactionSigned, ReceiptInfo)> = transactions + let tx_and_receipts: Vec<(PartialSignedTransactionInfo, ReceiptInfo)> = transactions .into_iter() .filter_map(|(_, (payload, transaction_index, events, success, gas))| { let signed_tx = TransactionSigned::decode(&mut &payload[..]).inspect_err(|err| { @@ -691,7 +698,14 @@ pub mod pallet { logs_bloom.combine(&receipt.logs_bloom); - Some((signed_tx, receipt)) + let tx = PartialSignedTransactionInfo { + from: from.into(), + hash: transaction_hash, + transaction_index: transaction_index.into(), + transaction_signed: signed_tx, + }; + + Some((tx, receipt)) }) .collect(); @@ -703,8 +717,10 @@ pub mod pallet { // Calculate tx root: // https://github.com/alloy-rs/alloy/blob/32ffb79c52caa3d54bb81b8fc5b1815bb45d30d8/crates/consensus/src/proofs.rs#L16-L24 // We might need: `(rlp(index), encoded(tx))` pairs instead. - let tx_blobs = - tx_and_receipts.iter().map(|(tx, _)| tx.encode_2718()).collect::>(); + let tx_blobs = tx_and_receipts + .iter() + .map(|(tx, _)| tx.transaction_signed.encode_2718()) + .collect::>(); use sp_trie::TrieConfiguration; // The KeccakHasher is guarded against a #[cfg(not(substrate_runtime))]. @@ -757,6 +773,8 @@ pub mod pallet { }; let _block_hash = block_header.hash(); + + LastBlockTransactionsDetails::::put(tx_and_receipts); } fn integrity_test() { From 70b271d4b96f683e946319f184eb63547e003c1e Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 7 Aug 2025 14:18:23 +0000 Subject: [PATCH 028/273] revive: Store the block header Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 9a098176701e5..e6fb8a34e4073 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -558,8 +558,11 @@ pub mod pallet { /// The last block transaction details. #[pallet::storage] #[pallet::unbounded] - pub(crate) type LastBlockTransactionsDetails = - StorageValue<_, Vec<(PartialSignedTransactionInfo, ReceiptInfo)>, ValueQuery>; + pub(crate) type LastBlockDetails = StorageValue< + _, + (BlockHeader, Vec<(PartialSignedTransactionInfo, ReceiptInfo)>), + ValueQuery, + >; #[pallet::genesis_config] #[derive(frame_support::DefaultNoBound)] @@ -772,9 +775,7 @@ pub mod pallet { nonce: Default::default(), }; - let _block_hash = block_header.hash(); - - LastBlockTransactionsDetails::::put(tx_and_receipts); + LastBlockDetails::::put((block_header, tx_and_receipts)); } fn integrity_test() { From 488a8a9c078c3fc46d6ead92243d3d3c17433f2c Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 7 Aug 2025 14:46:08 +0000 Subject: [PATCH 029/273] revive: Compute ETH block in on_initialize Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 67 +++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index e6fb8a34e4073..3b9a40d0ff596 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,9 +45,10 @@ pub mod weights; use crate::{ evm::{ - runtime::GAS_PRICE, BlockHeader, Bytes256, CallTracer, GasEncoder, GenericTransaction, Log, - PartialSignedTransactionInfo, PrestateTracer, ReceiptInfo, Trace, Tracer, TracerType, - TransactionSigned, TYPE_EIP1559, + runtime::GAS_PRICE, Block, BlockHeader, Bytes256, CallTracer, GasEncoder, + GenericTransaction, HashesOrTransactionInfos, Log, PartialSignedTransactionInfo, + PrestateTracer, ReceiptInfo, Trace, Tracer, TracerType, TransactionInfo, TransactionSigned, + TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Key, Stack as ExecStack}, gas::GasMeter, @@ -603,6 +604,66 @@ pub mod pallet { meter.consumed() } + fn on_initialize(_n: BlockNumberFor) -> Weight { + // Previous state root is needed to calculate the ETH block hash. + // TODO: Other on_initialize hooks might alter the state. + let version = T::Version::get().state_version(); + let state_root = H256::decode(&mut &sp_io::storage::root(version)[..]) + .expect("Node is configured to use the same hash; qed"); + + let (mut header, tx_and_receipts) = LastBlockDetails::::get(); + LastBlockDetails::::kill(); + + header.state_root = state_root; + let block_hash = header.hash(); + let block_number = header.number; + + // Adjust stored transactions and receipts to the block hash. + let (transactions, receipts): (Vec<_>, Vec<_>) = tx_and_receipts + .into_iter() + .map(|(tx, mut receipt)| { + let tx_info = TransactionInfo { + block_hash, + block_number, + from: tx.from, + hash: tx.hash, + transaction_index: tx.transaction_index, + transaction_signed: tx.transaction_signed, + }; + + receipt.block_hash = block_hash; + + (tx_info, receipt) + }) + .unzip(); + + let block = Block { + parent_hash: header.parent_hash, + sha_3_uncles: header.ommers_hash, + miner: header.beneficiary, + state_root: header.state_root, + transactions_root: header.transactions_root, + receipts_root: header.receipts_root, + logs_bloom: header.logs_bloom, + total_difficulty: Some(header.difficulty), + number: header.number, + gas_limit: header.gas_limit, + gas_used: header.gas_used, + timestamp: header.timestamp, + extra_data: header.extra_data, + mix_hash: header.mix_hash, + nonce: header.nonce, + + transactions: HashesOrTransactionInfos::TransactionInfos(transactions), + + ..Default::default() + }; + + // Anything that needs to be done at the start of the block. + // We don't do anything here. + Weight::zero() + } + fn on_finalize(block_number: BlockNumberFor) { let Some(block_author) = Self::block_author() else { Self::kill_inflight_data(); From f16bf5e1a455d9b28432633a2fdf822d83885950 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 7 Aug 2025 14:52:01 +0000 Subject: [PATCH 030/273] revive: Place ETH block in storage with receipts and number mappings Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 3b9a40d0ff596..6dbb8eca07814 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,7 +45,7 @@ pub mod weights; use crate::{ evm::{ - runtime::GAS_PRICE, Block, BlockHeader, Bytes256, CallTracer, GasEncoder, + runtime::GAS_PRICE, Block as EthBlock, BlockHeader, Bytes256, CallTracer, GasEncoder, GenericTransaction, HashesOrTransactionInfos, Log, PartialSignedTransactionInfo, PrestateTracer, ReceiptInfo, Trace, Tracer, TracerType, TransactionInfo, TransactionSigned, TYPE_EIP1559, @@ -565,6 +565,15 @@ pub mod pallet { ValueQuery, >; + /// The previous ETH block. + #[pallet::storage] + #[pallet::unbounded] + pub(crate) type PreviousBlock = StorageValue<_, (EthBlock, Vec), ValueQuery>; + + // Mapping for block number and hashes. + #[pallet::storage] + pub type BlockHash = StorageMap<_, Twox64Concat, U256, H256, ValueQuery>; + #[pallet::genesis_config] #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { @@ -637,7 +646,7 @@ pub mod pallet { }) .unzip(); - let block = Block { + let block = EthBlock { parent_hash: header.parent_hash, sha_3_uncles: header.ommers_hash, miner: header.beneficiary, @@ -659,6 +668,10 @@ pub mod pallet { ..Default::default() }; + // TODO: Prune older blocks. + BlockHash::::insert(block_number, block_hash); + PreviousBlock::::put((block.clone(), receipts)); + // Anything that needs to be done at the start of the block. // We don't do anything here. Weight::zero() From f92e926cc215835b9ff6e768bd407acab80ab0a1 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 7 Aug 2025 15:10:17 +0000 Subject: [PATCH 031/273] revive: Expose runtime APIs to query block storage Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 60 +++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 6 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 6dbb8eca07814..31e79feba6968 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,10 +45,9 @@ pub mod weights; use crate::{ evm::{ - runtime::GAS_PRICE, Block as EthBlock, BlockHeader, Bytes256, CallTracer, GasEncoder, - GenericTransaction, HashesOrTransactionInfos, Log, PartialSignedTransactionInfo, - PrestateTracer, ReceiptInfo, Trace, Tracer, TracerType, TransactionInfo, TransactionSigned, - TYPE_EIP1559, + runtime::GAS_PRICE, BlockHeader, Bytes256, CallTracer, GasEncoder, GenericTransaction, + HashesOrTransactionInfos, Log, PartialSignedTransactionInfo, PrestateTracer, Trace, Tracer, + TracerType, TransactionInfo, TransactionSigned, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Key, Stack as ExecStack}, gas::GasMeter, @@ -91,6 +90,7 @@ pub use crate::{ address::{ create1, create2, is_eth_derived, AccountId32Mapper, AddressMapper, TestAccountMapper, }, + evm::{Block as EthBlock, ReceiptInfo}, exec::{MomentOf, Origin}, pallet::*, }; @@ -568,7 +568,12 @@ pub mod pallet { /// The previous ETH block. #[pallet::storage] #[pallet::unbounded] - pub(crate) type PreviousBlock = StorageValue<_, (EthBlock, Vec), ValueQuery>; + pub(crate) type PreviousBlock = StorageValue<_, EthBlock, ValueQuery>; + + /// The previous receipt info. + #[pallet::storage] + #[pallet::unbounded] + pub(crate) type PreviousReceiptInfo = StorageValue<_, Vec, ValueQuery>; // Mapping for block number and hashes. #[pallet::storage] @@ -670,7 +675,8 @@ pub mod pallet { // TODO: Prune older blocks. BlockHash::::insert(block_number, block_hash); - PreviousBlock::::put((block.clone(), receipts)); + PreviousBlock::::put(block); + PreviousReceiptInfo::::put(receipts); // Anything that needs to be done at the start of the block. // We don't do anything here. @@ -1753,6 +1759,23 @@ where Self::convert_native_to_evm(balance) } + pub fn eth_block() -> EthBlock { + PreviousBlock::::get() + } + + pub fn eth_receipt_info() -> Vec { + PreviousReceiptInfo::::get() + } + + pub fn eth_block_number(number: U256) -> Option { + let hash = >::get(number); + if hash == H256::zero() { + None + } else { + Some(hash) + } + } + /// Get the nonce for the given `address`. pub fn evm_nonce(address: &H160) -> u32 where @@ -2003,6 +2026,19 @@ sp_api::decl_runtime_apis! { Nonce: Codec, BlockNumber: Codec, { + /// Returns the current ETH block. + /// + /// This is one block behind the substrate block. + fn eth_block() -> EthBlock; + + /// Returns the ETH block receipt infos. + /// + /// These are one block behind the substrate block. + fn eth_receipt_info() -> Vec; + + /// Returns the ETH block hash for the given block number. + fn eth_block_hash(number: U256) -> Option; + /// Returns the block gas limit. fn block_gas_limit() -> U256; @@ -2132,6 +2168,18 @@ macro_rules! impl_runtime_apis_plus_revive { $($rest)* impl pallet_revive::ReviveApi for $Runtime { + fn eth_block() -> $crate::EthBlock { + $crate::Pallet::::eth_block() + } + + fn eth_receipt_info() -> Vec<$crate::ReceiptInfo> { + $crate::Pallet::::eth_receipt_info() + } + + fn eth_block_hash(number: $crate::U256) -> Option<$crate::H256> { + $crate::Pallet::::eth_block_number(number) + } + fn balance(address: $crate::H160) -> $crate::U256 { $crate::Pallet::::evm_balance(&address) } From 8193881f903c5827954dadfe074e866fd58ff38f Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 8 Aug 2025 09:25:31 +0000 Subject: [PATCH 032/273] xcm/mock: Add tx payment pallet Signed-off-by: Alexandru Vasile --- polkadot/xcm/pallet-xcm/src/mock.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/polkadot/xcm/pallet-xcm/src/mock.rs b/polkadot/xcm/pallet-xcm/src/mock.rs index f2f1d859699a5..bc410a1bbb79a 100644 --- a/polkadot/xcm/pallet-xcm/src/mock.rs +++ b/polkadot/xcm/pallet-xcm/src/mock.rs @@ -21,7 +21,7 @@ use frame_support::{ fungible::HoldConsideration, AsEnsureOriginWithArg, ConstU128, ConstU32, Contains, Equals, Everything, EverythingBut, Footprint, Nothing, }, - weights::Weight, + weights::{FixedFee, IdentityFee, Weight}, }; use frame_system::EnsureRoot; use polkadot_parachain_primitives::primitives::Id as ParaId; @@ -162,6 +162,7 @@ construct_runtime!( TestNotifier: pallet_test_notifier, Revive: pallet_revive, Timestamp: pallet_timestamp, + TransactionPayment: pallet_transaction_payment, } ); @@ -617,6 +618,18 @@ impl pallet_test_notifier::Config for Test { type RuntimeCall = RuntimeCall; } +parameter_types! { + pub FeeMultiplier: pallet_transaction_payment::Multiplier = pallet_transaction_payment::Multiplier::one(); +} + +#[derive_impl(pallet_transaction_payment::config_preludes::TestDefaultConfig)] +impl pallet_transaction_payment::Config for Test { + type OnChargeTransaction = pallet_transaction_payment::FungibleAdapter; + type WeightToFee = IdentityFee<::Balance>; + type LengthToFee = FixedFee<100, ::Balance>; + type FeeMultiplierUpdate = pallet_transaction_payment::ConstFeeMultiplier; +} + #[cfg(feature = "runtime-benchmarks")] pub struct TestDeliveryHelper; #[cfg(feature = "runtime-benchmarks")] From b5293f192c38e1a419ea17283d5a8ac91d859ae8 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 8 Aug 2025 10:53:38 +0000 Subject: [PATCH 033/273] frame/assets: Add tx payment pallet Signed-off-by: Alexandru Vasile --- substrate/frame/assets/src/mock.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/substrate/frame/assets/src/mock.rs b/substrate/frame/assets/src/mock.rs index 78fb2b78e4f47..9da8e65429d25 100644 --- a/substrate/frame/assets/src/mock.rs +++ b/substrate/frame/assets/src/mock.rs @@ -38,6 +38,7 @@ construct_runtime!( Balances: pallet_balances, Assets: pallet_assets, Revive: pallet_revive, + TransactionPayment: pallet_transaction_payment, } ); @@ -116,6 +117,18 @@ impl Config for Test { type CallbackHandle = (AssetsCallbackHandle, AutoIncAssetId); } +parameter_types! { + pub FeeMultiplier: pallet_transaction_payment::Multiplier = pallet_transaction_payment::Multiplier::one(); +} + +#[derive_impl(pallet_transaction_payment::config_preludes::TestDefaultConfig)] +impl pallet_transaction_payment::Config for Test { + type OnChargeTransaction = pallet_transaction_payment::FungibleAdapter; + type WeightToFee = IdentityFee<::Balance>; + type LengthToFee = FixedFee<100, ::Balance>; + type FeeMultiplierUpdate = pallet_transaction_payment::ConstFeeMultiplier; +} + use std::collections::HashMap; #[derive(Copy, Clone, Eq, PartialEq, Debug)] From 7d2bdbf942007f88651aa2d3eb5f0bfa9acb71f9 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 8 Aug 2025 13:58:41 +0000 Subject: [PATCH 034/273] frame/assets: Add tx payment dependency Signed-off-by: Alexandru Vasile --- Cargo.lock | 1 + substrate/frame/assets/Cargo.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 5022265216767..6e429e433d64c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11226,6 +11226,7 @@ dependencies = [ "log", "pallet-balances", "pallet-revive", + "pallet-transaction-payment", "parity-scale-codec", "scale-info", "sp-core 28.0.0", diff --git a/substrate/frame/assets/Cargo.toml b/substrate/frame/assets/Cargo.toml index d893e7ad11fa1..d94321fcd58dc 100644 --- a/substrate/frame/assets/Cargo.toml +++ b/substrate/frame/assets/Cargo.toml @@ -30,6 +30,7 @@ frame-benchmarking = { optional = true, workspace = true } frame-system = { workspace = true } pallet-revive = { workspace = true } sp-core = { workspace = true } +pallet-transaction-payment = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } From ae6b2c6387e490827b04b812994500d2700654f1 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 8 Aug 2025 14:57:48 +0000 Subject: [PATCH 035/273] xcm: Add tx payment pallet Signed-off-by: Alexandru Vasile --- Cargo.lock | 1 + polkadot/xcm/pallet-xcm/Cargo.toml | 1 + 2 files changed, 2 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 6e429e433d64c..3f67e854088d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13814,6 +13814,7 @@ dependencies = [ "pallet-balances", "pallet-revive", "pallet-timestamp", + "pallet-transaction-payment", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-runtime-parachains", diff --git a/polkadot/xcm/pallet-xcm/Cargo.toml b/polkadot/xcm/pallet-xcm/Cargo.toml index 81ff077b2b7e0..b6886a8a8b585 100644 --- a/polkadot/xcm/pallet-xcm/Cargo.toml +++ b/polkadot/xcm/pallet-xcm/Cargo.toml @@ -21,6 +21,7 @@ tracing = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } pallet-revive = { workspace = true } +pallet-transaction-payment = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } From 51cef70fad0ede6f92ca8350393003794c862b32 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 11:21:03 +0000 Subject: [PATCH 036/273] revive: Place ReceiptInfo into events Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/api/byte.rs | 4 +-- .../frame/revive/src/evm/api/rpc_types_gen.rs | 26 ++++++++++++++++--- substrate/frame/revive/src/lib.rs | 6 +++++ 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/src/evm/api/byte.rs b/substrate/frame/revive/src/evm/api/byte.rs index eaeaf3c4d8f9f..2d7d3152a8287 100644 --- a/substrate/frame/revive/src/evm/api/byte.rs +++ b/substrate/frame/revive/src/evm/api/byte.rs @@ -19,7 +19,7 @@ use super::hex_serde::HexCodec; use alloc::{vec, vec::Vec}; use alloy_core::hex; -use codec::{Decode, Encode}; +use codec::{Decode, DecodeWithMemTracking, Encode}; use core::{ fmt::{Debug, Display, Formatter, Result as FmtResult}, str::FromStr, @@ -37,7 +37,7 @@ impl FromStr for Bytes { macro_rules! impl_hex { ($type:ident, $inner:ty, $default:expr) => { - #[derive(Encode, Decode, Eq, PartialEq, Ord, PartialOrd, TypeInfo, Clone, Serialize, Deserialize, Hash)] + #[derive(Encode, Decode, Eq, PartialEq, Ord, PartialOrd, TypeInfo, Clone, Serialize, Deserialize, DecodeWithMemTracking, Hash)] #[doc = concat!("`", stringify!($inner), "`", " wrapper type for encoding and decoding hex strings")] pub struct $type(#[serde(with = "crate::evm::api::hex_serde")] pub $inner); 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 9f23f6be3310f..d6464b1cfc711 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -19,7 +19,7 @@ use super::{byte::*, TypeEip1559, TypeEip2930, TypeEip4844, TypeLegacy}; use alloc::vec::Vec; -use codec::{Decode, Encode}; +use codec::{Decode, DecodeWithMemTracking, Encode}; use derive_more::{From, TryInto}; pub use ethereum_types::*; use scale_info::TypeInfo; @@ -355,7 +355,17 @@ pub struct GenericTransaction { /// Receipt information #[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Default, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] pub struct ReceiptInfo { /// blob gas price @@ -556,7 +566,17 @@ impl Default for HashesOrTransactionInfos { /// log #[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Default, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] pub struct Log { /// address diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 31e79feba6968..52dd62a84b921 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -372,6 +372,9 @@ pub mod pallet { /// Contract deployed by deployer at the specified address. Instantiated { deployer: H160, contract: H160 }, + + /// Receipt information of an Ethereum transaction. + Receipt { receipt: ReceiptInfo }, } #[pallet::error] @@ -764,6 +767,7 @@ pub mod pallet { // logs bloom and logs. An encoded log only contains the // contract address, topics and data. let receipt: ReceiptInfo = ReceiptInfo::new( + // This represents the substrate block hash. block_hash.into(), block_number.into(), contract_address, @@ -781,6 +785,8 @@ pub mod pallet { logs_bloom.combine(&receipt.logs_bloom); + Self::deposit_event(Event::Receipt { receipt: receipt.clone() }); + let tx = PartialSignedTransactionInfo { from: from.into(), hash: transaction_hash, From 1ce02de13ed13bdcbd7fa12c12476309504e19af Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 11:21:35 +0000 Subject: [PATCH 037/273] revive: Propagate the proper ETH block hash into logs Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 52dd62a84b921..ef3f27a3cc72b 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -649,6 +649,9 @@ pub mod pallet { }; receipt.block_hash = block_hash; + for log in &mut receipt.logs { + log.block_hash = block_hash; + } (tx_info, receipt) }) From 86f92a45bcb3641e71fec598d158d90e7ac2ad05 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 11:28:13 +0000 Subject: [PATCH 038/273] revive: Remove ReceiptInfo from storage and rely on events Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index ef3f27a3cc72b..179f1a6a27dab 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -573,11 +573,6 @@ pub mod pallet { #[pallet::unbounded] pub(crate) type PreviousBlock = StorageValue<_, EthBlock, ValueQuery>; - /// The previous receipt info. - #[pallet::storage] - #[pallet::unbounded] - pub(crate) type PreviousReceiptInfo = StorageValue<_, Vec, ValueQuery>; - // Mapping for block number and hashes. #[pallet::storage] pub type BlockHash = StorageMap<_, Twox64Concat, U256, H256, ValueQuery>; @@ -682,7 +677,6 @@ pub mod pallet { // TODO: Prune older blocks. BlockHash::::insert(block_number, block_hash); PreviousBlock::::put(block); - PreviousReceiptInfo::::put(receipts); // Anything that needs to be done at the start of the block. // We don't do anything here. @@ -1772,10 +1766,6 @@ where PreviousBlock::::get() } - pub fn eth_receipt_info() -> Vec { - PreviousReceiptInfo::::get() - } - pub fn eth_block_number(number: U256) -> Option { let hash = >::get(number); if hash == H256::zero() { @@ -2040,11 +2030,6 @@ sp_api::decl_runtime_apis! { /// This is one block behind the substrate block. fn eth_block() -> EthBlock; - /// Returns the ETH block receipt infos. - /// - /// These are one block behind the substrate block. - fn eth_receipt_info() -> Vec; - /// Returns the ETH block hash for the given block number. fn eth_block_hash(number: U256) -> Option; @@ -2181,10 +2166,6 @@ macro_rules! impl_runtime_apis_plus_revive { $crate::Pallet::::eth_block() } - fn eth_receipt_info() -> Vec<$crate::ReceiptInfo> { - $crate::Pallet::::eth_receipt_info() - } - fn eth_block_hash(number: $crate::U256) -> Option<$crate::H256> { $crate::Pallet::::eth_block_number(number) } From e61bbb3d5e4fe5f93d4a43c60ad2b81fb7af5fd7 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 12:04:23 +0000 Subject: [PATCH 039/273] revive: Trim down receiptinfo mandatory information Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 179f1a6a27dab..7a108ca064e80 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -90,7 +90,7 @@ pub use crate::{ address::{ create1, create2, is_eth_derived, AccountId32Mapper, AddressMapper, TestAccountMapper, }, - evm::{Block as EthBlock, ReceiptInfo}, + evm::{Address as EthAddress, Block as EthBlock, ReceiptInfo}, exec::{MomentOf, Origin}, pallet::*, }; @@ -373,8 +373,19 @@ pub mod pallet { /// Contract deployed by deployer at the specified address. Instantiated { deployer: H160, contract: H160 }, - /// Receipt information of an Ethereum transaction. - Receipt { receipt: ReceiptInfo }, + /// Mandatory receipt information of an Ethereum transaction. + /// + /// This contains the minimal information needed to reconstruct the receipt information + /// without losing accuracy. + Receipt { + /// The actual value per gas deducted from the sender's account. Before EIP-1559, this + /// is equal to the transaction's gas price. After, it is equal to baseFeePerGas + + /// min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas). + effective_gas_price: U256, + + /// The amount of gas used for this specific transaction alone. + gas_used: U256, + }, } #[pallet::error] @@ -782,7 +793,10 @@ pub mod pallet { logs_bloom.combine(&receipt.logs_bloom); - Self::deposit_event(Event::Receipt { receipt: receipt.clone() }); + Self::deposit_event(Event::Receipt { + effective_gas_price: base_gas_price.into(), + gas_used: gas.ref_time().into(), + }); let tx = PartialSignedTransactionInfo { from: from.into(), From 57e0b4ce9556b3f4afffeed11edd1cca900c3dc5 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 12:06:40 +0000 Subject: [PATCH 040/273] revive: Compute the cumulative gas correctly Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 7a108ca064e80..1eef4e03acf9b 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -774,7 +774,7 @@ pub mod pallet { // The receipt only encodes the status code, gas used, // logs bloom and logs. An encoded log only contains the // contract address, topics and data. - let receipt: ReceiptInfo = ReceiptInfo::new( + let mut receipt: ReceiptInfo = ReceiptInfo::new( // This represents the substrate block hash. block_hash.into(), block_number.into(), @@ -791,6 +791,8 @@ pub mod pallet { tx_info.r#type.unwrap_or_default(), ); + receipt.cumulative_gas_used = total_gas_used.clone(); + logs_bloom.combine(&receipt.logs_bloom); Self::deposit_event(Event::Receipt { From 200011f684b237cb9b899405fbcc9e8cafce9239 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 15:13:19 +0000 Subject: [PATCH 041/273] revive: Minimize storage usage by storing only essential info Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 71 +++++++++---------------------- 1 file changed, 20 insertions(+), 51 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 1eef4e03acf9b..e8a4a82c53566 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -47,7 +47,7 @@ use crate::{ evm::{ runtime::GAS_PRICE, BlockHeader, Bytes256, CallTracer, GasEncoder, GenericTransaction, HashesOrTransactionInfos, Log, PartialSignedTransactionInfo, PrestateTracer, Trace, Tracer, - TracerType, TransactionInfo, TransactionSigned, TYPE_EIP1559, + TracerType, TransactionSigned, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Key, Stack as ExecStack}, gas::GasMeter, @@ -573,11 +573,7 @@ pub mod pallet { /// The last block transaction details. #[pallet::storage] #[pallet::unbounded] - pub(crate) type LastBlockDetails = StorageValue< - _, - (BlockHeader, Vec<(PartialSignedTransactionInfo, ReceiptInfo)>), - ValueQuery, - >; + pub(crate) type LastBlockDetails = StorageValue<_, (BlockHeader, Vec), ValueQuery>; /// The previous ETH block. #[pallet::storage] @@ -634,35 +630,13 @@ pub mod pallet { let state_root = H256::decode(&mut &sp_io::storage::root(version)[..]) .expect("Node is configured to use the same hash; qed"); - let (mut header, tx_and_receipts) = LastBlockDetails::::get(); + let (mut header, tx_hashes) = LastBlockDetails::::get(); LastBlockDetails::::kill(); header.state_root = state_root; let block_hash = header.hash(); let block_number = header.number; - // Adjust stored transactions and receipts to the block hash. - let (transactions, receipts): (Vec<_>, Vec<_>) = tx_and_receipts - .into_iter() - .map(|(tx, mut receipt)| { - let tx_info = TransactionInfo { - block_hash, - block_number, - from: tx.from, - hash: tx.hash, - transaction_index: tx.transaction_index, - transaction_signed: tx.transaction_signed, - }; - - receipt.block_hash = block_hash; - for log in &mut receipt.logs { - log.block_hash = block_hash; - } - - (tx_info, receipt) - }) - .unzip(); - let block = EthBlock { parent_hash: header.parent_hash, sha_3_uncles: header.ommers_hash, @@ -680,7 +654,7 @@ pub mod pallet { mix_hash: header.mix_hash, nonce: header.nonce, - transactions: HashesOrTransactionInfos::TransactionInfos(transactions), + transactions: HashesOrTransactionInfos::Hashes(tx_hashes), ..Default::default() }; @@ -707,7 +681,10 @@ pub mod pallet { let mut logs_bloom = Bytes256::default(); let mut total_gas_used = U256::zero(); - let tx_and_receipts: Vec<(PartialSignedTransactionInfo, ReceiptInfo)> = transactions + + let mut tx_hashes = Vec::with_capacity(transactions.len()); + + let (signed_tx, receipt): (Vec<_>, Vec<_>) = transactions .into_iter() .filter_map(|(_, (payload, transaction_index, events, success, gas))| { let signed_tx = TransactionSigned::decode(&mut &payload[..]).inspect_err(|err| { @@ -721,6 +698,7 @@ pub mod pallet { .ok()?; let transaction_hash = H256(keccak_256(&payload)); + tx_hashes.push(transaction_hash); let tx_info = GenericTransaction::from_signed( signed_tx.clone(), @@ -800,16 +778,16 @@ pub mod pallet { gas_used: gas.ref_time().into(), }); - let tx = PartialSignedTransactionInfo { - from: from.into(), - hash: transaction_hash, - transaction_index: transaction_index.into(), - transaction_signed: signed_tx, - }; + // let tx = PartialSignedTransactionInfo { + // from: from.into(), + // hash: transaction_hash, + // transaction_index: transaction_index.into(), + // transaction_signed: signed_tx, + // }; - Some((tx, receipt)) + Some((signed_tx.encode_2718(), receipt.encode_2718())) }) - .collect(); + .unzip(); // Tx and Receipts must be encoded via: encode_2718 // TODO: We need to extend `TransactionSigned` with a new `encode()` fn similar to @@ -819,26 +797,17 @@ pub mod pallet { // Calculate tx root: // https://github.com/alloy-rs/alloy/blob/32ffb79c52caa3d54bb81b8fc5b1815bb45d30d8/crates/consensus/src/proofs.rs#L16-L24 // We might need: `(rlp(index), encoded(tx))` pairs instead. - let tx_blobs = tx_and_receipts - .iter() - .map(|(tx, _)| tx.transaction_signed.encode_2718()) - .collect::>(); use sp_trie::TrieConfiguration; // The KeccakHasher is guarded against a #[cfg(not(substrate_runtime))]. let transactions_root = - sp_trie::LayoutV0::::ordered_trie_root(tx_blobs); + sp_trie::LayoutV0::::ordered_trie_root(signed_tx); // TODO: // Calculate receipt root: // https://github.com/alloy-rs/alloy/blob/32ffb79c52caa3d54bb81b8fc5b1815bb45d30d8/crates/consensus/src/proofs.rs#L49-L54 - let receipt_blobs = tx_and_receipts - .iter() - .map(|(_, receipt)| receipt.encode_2718()) - .collect::>(); - let receipts_root = - sp_trie::LayoutV0::::ordered_trie_root(receipt_blobs); + sp_trie::LayoutV0::::ordered_trie_root(receipt); let state_root = T::StateRoot::get(); @@ -874,7 +843,7 @@ pub mod pallet { nonce: Default::default(), }; - LastBlockDetails::::put((block_header, tx_and_receipts)); + LastBlockDetails::::put((block_header, tx_hashes)); } fn integrity_test() { From e585dc66bf91f52e8812f2341759afbb2be61fd9 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 15:39:10 +0000 Subject: [PATCH 042/273] revive: Introduce LengthToFee type param to avoid dependencies on txpayment Signed-off-by: Alexandru Vasile --- .../parachains/runtimes/assets/asset-hub-westend/src/lib.rs | 1 + cumulus/parachains/runtimes/testing/penpal/src/lib.rs | 1 + substrate/bin/node/runtime/src/lib.rs | 1 + substrate/frame/revive/dev-node/runtime/src/lib.rs | 1 + substrate/frame/revive/src/lib.rs | 6 +++++- 5 files changed, 9 insertions(+), 1 deletion(-) 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 bd94edaca552a..b02e4a32bd7b4 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -1173,6 +1173,7 @@ impl pallet_revive::Config for Runtime { type DepositPerItem = DepositPerItem; type DepositPerByte = DepositPerByte; type WeightPrice = pallet_transaction_payment::Pallet; + type LengthToFee = ::LengthToFee; type WeightInfo = pallet_revive::weights::SubstrateWeight; type Precompiles = ( ERC20, TrustBackedAssetsInstance>, diff --git a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs index 3b7793e48fc5b..c7f911e8c92cc 100644 --- a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs @@ -848,6 +848,7 @@ impl pallet_revive::Config for Runtime { type DepositPerItem = DepositPerItem; type DepositPerByte = DepositPerByte; type WeightPrice = pallet_transaction_payment::Pallet; + type LengthToFee = ::LengthToFee; type WeightInfo = pallet_revive::weights::SubstrateWeight; type Precompiles = (); type AddressMapper = pallet_revive::AccountId32Mapper; diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index b96417d59825b..5d9dafc8ef2b5 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1476,6 +1476,7 @@ impl pallet_revive::Config for Runtime { type DepositPerItem = DepositPerItem; type DepositPerByte = DepositPerByte; type WeightPrice = pallet_transaction_payment::Pallet; + type LengthToFee = ::LengthToFee; type WeightInfo = pallet_revive::weights::SubstrateWeight; type Precompiles = (ERC20, Instance1>, ERC20, Instance2>); diff --git a/substrate/frame/revive/dev-node/runtime/src/lib.rs b/substrate/frame/revive/dev-node/runtime/src/lib.rs index fcfc12afc66e7..9cecfd4cee5d1 100644 --- a/substrate/frame/revive/dev-node/runtime/src/lib.rs +++ b/substrate/frame/revive/dev-node/runtime/src/lib.rs @@ -329,6 +329,7 @@ impl pallet_revive::Config for Runtime { type UploadOrigin = EnsureSigned; type InstantiateOrigin = EnsureSigned; type Time = Timestamp; + type LengthToFee = ::LengthToFee; } pallet_revive::impl_runtime_apis_plus_revive!( diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index e8a4a82c53566..3cfeb7fa3966d 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -71,7 +71,7 @@ use frame_support::{ fungible::{Inspect, Mutate, MutateHold}, ConstU32, ConstU64, EnsureOrigin, Get, IsType, OriginTrait, Time, }, - weights::WeightMeter, + weights::{WeightMeter, WeightToFee}, BoundedVec, RuntimeDebugNoBound, }; use frame_system::{ @@ -181,6 +181,10 @@ pub mod pallet { /// construct a default cost schedule. type WeightInfo: WeightInfo; + /// Convert a length value into a deductible fee based on the currency type. + #[pallet::no_default] + type LengthToFee: WeightToFee>; + /// Type that allows the runtime authors to add new host functions for a contract to call. /// /// Pass in a tuple of types that implement [`precompiles::Precompile`]. From 5844ef7471342456002fdbf31d45592aede21c9d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 15:55:22 +0000 Subject: [PATCH 043/273] xcm: Remove deps on tx payment pallet Signed-off-by: Alexandru Vasile --- Cargo.lock | 1 - polkadot/xcm/pallet-xcm/Cargo.toml | 1 - polkadot/xcm/pallet-xcm/src/mock.rs | 14 +------------- 3 files changed, 1 insertion(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3f67e854088d0..6e429e433d64c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13814,7 +13814,6 @@ dependencies = [ "pallet-balances", "pallet-revive", "pallet-timestamp", - "pallet-transaction-payment", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-runtime-parachains", diff --git a/polkadot/xcm/pallet-xcm/Cargo.toml b/polkadot/xcm/pallet-xcm/Cargo.toml index b6886a8a8b585..81ff077b2b7e0 100644 --- a/polkadot/xcm/pallet-xcm/Cargo.toml +++ b/polkadot/xcm/pallet-xcm/Cargo.toml @@ -21,7 +21,6 @@ tracing = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } pallet-revive = { workspace = true } -pallet-transaction-payment = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } diff --git a/polkadot/xcm/pallet-xcm/src/mock.rs b/polkadot/xcm/pallet-xcm/src/mock.rs index bc410a1bbb79a..c7ddc43b2e556 100644 --- a/polkadot/xcm/pallet-xcm/src/mock.rs +++ b/polkadot/xcm/pallet-xcm/src/mock.rs @@ -162,7 +162,6 @@ construct_runtime!( TestNotifier: pallet_test_notifier, Revive: pallet_revive, Timestamp: pallet_timestamp, - TransactionPayment: pallet_transaction_payment, } ); @@ -343,6 +342,7 @@ impl pallet_revive::Config for Test { type Time = Timestamp; type UploadOrigin = frame_system::EnsureSigned; type InstantiateOrigin = frame_system::EnsureSigned; + type LengthToFee = FixedFee<100, ::Balance>; } // This child parachain is a system parachain trusted to teleport native token. @@ -618,18 +618,6 @@ impl pallet_test_notifier::Config for Test { type RuntimeCall = RuntimeCall; } -parameter_types! { - pub FeeMultiplier: pallet_transaction_payment::Multiplier = pallet_transaction_payment::Multiplier::one(); -} - -#[derive_impl(pallet_transaction_payment::config_preludes::TestDefaultConfig)] -impl pallet_transaction_payment::Config for Test { - type OnChargeTransaction = pallet_transaction_payment::FungibleAdapter; - type WeightToFee = IdentityFee<::Balance>; - type LengthToFee = FixedFee<100, ::Balance>; - type FeeMultiplierUpdate = pallet_transaction_payment::ConstFeeMultiplier; -} - #[cfg(feature = "runtime-benchmarks")] pub struct TestDeliveryHelper; #[cfg(feature = "runtime-benchmarks")] From 6a3a615dddd524466a65512c7188cbbc35c6efec Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 15:58:08 +0000 Subject: [PATCH 044/273] frame/assets: Remove deps on tx payment pallet Signed-off-by: Alexandru Vasile --- Cargo.lock | 1 - substrate/frame/assets/Cargo.toml | 1 - substrate/frame/assets/src/mock.rs | 14 +------------- 3 files changed, 1 insertion(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6e429e433d64c..5022265216767 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11226,7 +11226,6 @@ dependencies = [ "log", "pallet-balances", "pallet-revive", - "pallet-transaction-payment", "parity-scale-codec", "scale-info", "sp-core 28.0.0", diff --git a/substrate/frame/assets/Cargo.toml b/substrate/frame/assets/Cargo.toml index d94321fcd58dc..d893e7ad11fa1 100644 --- a/substrate/frame/assets/Cargo.toml +++ b/substrate/frame/assets/Cargo.toml @@ -30,7 +30,6 @@ frame-benchmarking = { optional = true, workspace = true } frame-system = { workspace = true } pallet-revive = { workspace = true } sp-core = { workspace = true } -pallet-transaction-payment = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } diff --git a/substrate/frame/assets/src/mock.rs b/substrate/frame/assets/src/mock.rs index 9da8e65429d25..6c4fd4d60a83f 100644 --- a/substrate/frame/assets/src/mock.rs +++ b/substrate/frame/assets/src/mock.rs @@ -38,7 +38,6 @@ construct_runtime!( Balances: pallet_balances, Assets: pallet_assets, Revive: pallet_revive, - TransactionPayment: pallet_transaction_payment, } ); @@ -62,6 +61,7 @@ impl pallet_revive::Config for Test { type AddressMapper = pallet_revive::TestAccountMapper; type Currency = Balances; type Precompiles = (ERC20>,); + type LengthToFee = FixedFee<100, ::Balance>; } pub struct AssetsCallbackHandle; @@ -117,18 +117,6 @@ impl Config for Test { type CallbackHandle = (AssetsCallbackHandle, AutoIncAssetId); } -parameter_types! { - pub FeeMultiplier: pallet_transaction_payment::Multiplier = pallet_transaction_payment::Multiplier::one(); -} - -#[derive_impl(pallet_transaction_payment::config_preludes::TestDefaultConfig)] -impl pallet_transaction_payment::Config for Test { - type OnChargeTransaction = pallet_transaction_payment::FungibleAdapter; - type WeightToFee = IdentityFee<::Balance>; - type LengthToFee = FixedFee<100, ::Balance>; - type FeeMultiplierUpdate = pallet_transaction_payment::ConstFeeMultiplier; -} - use std::collections::HashMap; #[derive(Copy, Clone, Eq, PartialEq, Debug)] From df423ff81a7f7c8e2cdb853226adc51d2a67073d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 16:11:49 +0000 Subject: [PATCH 045/273] revive: Store the ETH block from the stateroot computation provided in config Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 132 +++++++++++++++++++----------- 1 file changed, 84 insertions(+), 48 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 3cfeb7fa3966d..6e5ba40b41dd9 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -46,8 +46,8 @@ pub mod weights; use crate::{ evm::{ runtime::GAS_PRICE, BlockHeader, Bytes256, CallTracer, GasEncoder, GenericTransaction, - HashesOrTransactionInfos, Log, PartialSignedTransactionInfo, PrestateTracer, Trace, Tracer, - TracerType, TransactionSigned, TYPE_EIP1559, + HashesOrTransactionInfos, Log, PrestateTracer, Trace, Tracer, TracerType, + TransactionSigned, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Key, Stack as ExecStack}, gas::GasMeter, @@ -574,15 +574,15 @@ pub mod pallet { OptionQuery, >; - /// The last block transaction details. - #[pallet::storage] - #[pallet::unbounded] - pub(crate) type LastBlockDetails = StorageValue<_, (BlockHeader, Vec), ValueQuery>; + // /// The last block transaction details. + // #[pallet::storage] + // #[pallet::unbounded] + // pub(crate) type LastBlockDetails = StorageValue<_, (BlockHeader, Vec), ValueQuery>; /// The previous ETH block. #[pallet::storage] #[pallet::unbounded] - pub(crate) type PreviousBlock = StorageValue<_, EthBlock, ValueQuery>; + pub(crate) type LastBlock = StorageValue<_, EthBlock, ValueQuery>; // Mapping for block number and hashes. #[pallet::storage] @@ -628,44 +628,44 @@ pub mod pallet { } fn on_initialize(_n: BlockNumberFor) -> Weight { - // Previous state root is needed to calculate the ETH block hash. - // TODO: Other on_initialize hooks might alter the state. - let version = T::Version::get().state_version(); - let state_root = H256::decode(&mut &sp_io::storage::root(version)[..]) - .expect("Node is configured to use the same hash; qed"); - - let (mut header, tx_hashes) = LastBlockDetails::::get(); - LastBlockDetails::::kill(); - - header.state_root = state_root; - let block_hash = header.hash(); - let block_number = header.number; - - let block = EthBlock { - parent_hash: header.parent_hash, - sha_3_uncles: header.ommers_hash, - miner: header.beneficiary, - state_root: header.state_root, - transactions_root: header.transactions_root, - receipts_root: header.receipts_root, - logs_bloom: header.logs_bloom, - total_difficulty: Some(header.difficulty), - number: header.number, - gas_limit: header.gas_limit, - gas_used: header.gas_used, - timestamp: header.timestamp, - extra_data: header.extra_data, - mix_hash: header.mix_hash, - nonce: header.nonce, - - transactions: HashesOrTransactionInfos::Hashes(tx_hashes), - - ..Default::default() - }; - - // TODO: Prune older blocks. - BlockHash::::insert(block_number, block_hash); - PreviousBlock::::put(block); + // // Previous state root is needed to calculate the ETH block hash. + // // TODO: Other on_initialize hooks might alter the state. + // let version = T::Version::get().state_version(); + // let state_root = H256::decode(&mut &sp_io::storage::root(version)[..]) + // .expect("Node is configured to use the same hash; qed"); + + // let (mut header, tx_hashes) = LastBlockDetails::::get(); + // LastBlockDetails::::kill(); + + // header.state_root = state_root; + // let block_hash = header.hash(); + // let block_number = header.number; + + // let block = EthBlock { + // parent_hash: header.parent_hash, + // sha_3_uncles: header.ommers_hash, + // miner: header.beneficiary, + // state_root: header.state_root, + // transactions_root: header.transactions_root, + // receipts_root: header.receipts_root, + // logs_bloom: header.logs_bloom, + // total_difficulty: Some(header.difficulty), + // number: header.number, + // gas_limit: header.gas_limit, + // gas_used: header.gas_used, + // timestamp: header.timestamp, + // extra_data: header.extra_data, + // mix_hash: header.mix_hash, + // nonce: header.nonce, + + // transactions: HashesOrTransactionInfos::Hashes(tx_hashes), + + // ..Default::default() + // }; + + // // TODO: Prune older blocks. + // BlockHash::::insert(block_number, block_hash); + // LastBlock::::put(block); // Anything that needs to be done at the start of the block. // We don't do anything here. @@ -678,6 +678,14 @@ pub mod pallet { return; }; + // Note: This read should be accounted for. + let eth_block_num: U256 = block_number.into(); + let parent_hash = if eth_block_num > U256::zero() { + BlockHash::::get(eth_block_num - 1) + } else { + H256::default() + }; + let block_hash = frame_system::Pallet::::block_hash(block_number); let transactions = InflightTransactions::::drain().collect::>(); @@ -817,7 +825,7 @@ pub mod pallet { let block_header = BlockHeader { // TODO: This is not the correct parent hash. - parent_hash: Default::default(), + parent_hash: parent_hash.into(), // Ommers are set to default in pallet frontier. ommers_hash: Default::default(), // The author of the block. @@ -847,7 +855,35 @@ pub mod pallet { nonce: Default::default(), }; - LastBlockDetails::::put((block_header, tx_hashes)); + let block_hash = block_header.hash(); + + BlockHash::::insert(eth_block_num, block_hash); + + let block = EthBlock { + parent_hash: block_header.parent_hash, + sha_3_uncles: block_header.ommers_hash, + miner: block_header.beneficiary, + state_root: block_header.state_root, + transactions_root: block_header.transactions_root, + receipts_root: block_header.receipts_root, + logs_bloom: block_header.logs_bloom, + total_difficulty: Some(block_header.difficulty), + number: block_header.number, + gas_limit: block_header.gas_limit, + gas_used: block_header.gas_used, + timestamp: block_header.timestamp, + extra_data: block_header.extra_data, + mix_hash: block_header.mix_hash, + nonce: block_header.nonce, + + transactions: HashesOrTransactionInfos::Hashes(tx_hashes), + + ..Default::default() + }; + + LastBlock::::put(block); + + // LastBlockDetails::::put((block_header, tx_hashes)); } fn integrity_test() { @@ -1752,7 +1788,7 @@ where } pub fn eth_block() -> EthBlock { - PreviousBlock::::get() + LastBlock::::get() } pub fn eth_block_number(number: U256) -> Option { From bd8bd4a45d11695562d50ea4d722958f3b7cad8d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 16:19:15 +0000 Subject: [PATCH 046/273] revive: Introduce configs for maximum num of stored hashes Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 6e5ba40b41dd9..1ddf6c335c161 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -82,7 +82,7 @@ use frame_system::{ use pallet_transaction_payment::OnChargeTransaction; use scale_info::TypeInfo; use sp_runtime::{ - traits::{BadOrigin, Bounded, Convert, Dispatchable, Saturating}, + traits::{BadOrigin, Bounded, Convert, Dispatchable, Saturating, UniqueSaturatedInto}, AccountId32, DispatchError, }; @@ -285,6 +285,11 @@ pub mod pallet { /// Only valid value is `()`. See [`GasEncoder`]. #[pallet::no_default_bounds] type EthGasEncoder: GasEncoder>; + + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + #[pallet::constant] + #[pallet::no_default_bounds] + type BlockHashCount: Get>; } /// Container for different types that implement [`DefaultConfig`]` of this pallet. @@ -357,6 +362,7 @@ pub mod pallet { type NativeToEthRatio = ConstU32<1_000_000>; type EthGasEncoder = (); type FindAuthor = (); + type BlockHashCount = ConstU32<256>; } } @@ -616,6 +622,7 @@ pub mod pallet { // We need these to access the ETH block gas limit via `Self::evm_block_gas_limit()`. ::RuntimeCall: Dispatchable, + T: pallet_transaction_payment::Config, OnChargeTransactionBalanceOf: Into>, BalanceOf: Into + TryFrom, @@ -859,6 +866,16 @@ pub mod pallet { BlockHash::::insert(eth_block_num, block_hash); + let block_hash_count = ::BlockHashCount::get(); + let to_remove = + eth_block_num.saturating_sub(block_hash_count.into()).saturating_sub(One::one()); + // keep genesis hash + if !to_remove.is_zero() { + >::remove(U256::from( + UniqueSaturatedInto::::unique_saturated_into(to_remove), + )); + } + let block = EthBlock { parent_hash: block_header.parent_hash, sha_3_uncles: block_header.ommers_hash, From 84a5be4ac8cc6e07d9400fb40facc67068444a58 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 16:22:37 +0000 Subject: [PATCH 047/273] revive: Use length to fee from config instead of from tx payment pallet Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 1ddf6c335c161..30903d1430491 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1857,20 +1857,16 @@ where where ::RuntimeCall: Dispatchable, - T: pallet_transaction_payment::Config, - OnChargeTransactionBalanceOf: Into>, { let max_block_weight = T::BlockWeights::get() .get(DispatchClass::Normal) .max_total .unwrap_or_else(|| T::BlockWeights::get().max_block); - let length_fee = pallet_transaction_payment::Pallet::::length_to_fee( - 5 * 1024 * 1024, // 5 MB - ); + // 5 MiB. + let length_fee = T::LengthToFee::weight_to_fee(&Weight::from_parts(5 * 1024 * 1024, 0)); - Self::evm_gas_from_weight(max_block_weight) - .saturating_add(Self::evm_fee_to_gas(length_fee.into())) + Self::evm_gas_from_weight(max_block_weight).saturating_add(Self::evm_fee_to_gas(length_fee)) } /// Get the gas price. From 02c052763ce48a2c78ef1ca2925bccaf8f1d7df6 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 12 Aug 2025 16:24:06 +0000 Subject: [PATCH 048/273] revive: Remove deps on tx payment pallet Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 30903d1430491..5bf8fd12af339 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -623,8 +623,8 @@ pub mod pallet { ::RuntimeCall: Dispatchable, - T: pallet_transaction_payment::Config, - OnChargeTransactionBalanceOf: Into>, + // T: pallet_transaction_payment::Config, + // OnChargeTransactionBalanceOf: Into>, BalanceOf: Into + TryFrom, MomentOf: Into, { From 880a674f6b64994678ae49c80518a2441b002dae Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 13 Aug 2025 07:47:25 +0000 Subject: [PATCH 049/273] frame: Fix build Signed-off-by: Alexandru Vasile --- substrate/frame/assets/src/mock.rs | 1 + substrate/frame/revive/src/lib.rs | 3 ++- substrate/frame/revive/src/tests.rs | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/substrate/frame/assets/src/mock.rs b/substrate/frame/assets/src/mock.rs index 6c4fd4d60a83f..9fe6da6ece14e 100644 --- a/substrate/frame/assets/src/mock.rs +++ b/substrate/frame/assets/src/mock.rs @@ -25,6 +25,7 @@ use codec::Encode; use frame_support::{ assert_ok, construct_runtime, derive_impl, parameter_types, traits::{AsEnsureOriginWithArg, ConstU32}, + weights::FixedFee, }; use sp_io::storage; use sp_runtime::BuildStorage; diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 5bf8fd12af339..1310a1a5d214a 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -314,6 +314,7 @@ pub mod pallet { pub const DepositPerItem: Balance = deposit(1, 0); pub const DepositPerByte: Balance = deposit(0, 1); pub const CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(0); + pub const BlockHashCount: u64 = 256; } /// A type providing default configurations for this pallet in testing environment. @@ -362,7 +363,7 @@ pub mod pallet { type NativeToEthRatio = ConstU32<1_000_000>; type EthGasEncoder = (); type FindAuthor = (); - type BlockHashCount = ConstU32<256>; + type BlockHashCount = BlockHashCount; } } diff --git a/substrate/frame/revive/src/tests.rs b/substrate/frame/revive/src/tests.rs index 955c8b9c352ac..efec072a4ddca 100644 --- a/substrate/frame/revive/src/tests.rs +++ b/substrate/frame/revive/src/tests.rs @@ -369,6 +369,7 @@ impl Config for Test { type ChainId = ChainId; type FindAuthor = Test; type Precompiles = (precompiles::WithInfo, precompiles::NoInfo); + type LengthToFee = ::LengthToFee; } impl TryFrom for crate::Call { From ae7d9e929394083a9c611d3eb0cd09b2060ed277 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 13 Aug 2025 08:02:49 +0000 Subject: [PATCH 050/273] xcm: Remove unused import Signed-off-by: Alexandru Vasile --- polkadot/xcm/pallet-xcm/src/mock.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/polkadot/xcm/pallet-xcm/src/mock.rs b/polkadot/xcm/pallet-xcm/src/mock.rs index c7ddc43b2e556..d10fff65a8cfc 100644 --- a/polkadot/xcm/pallet-xcm/src/mock.rs +++ b/polkadot/xcm/pallet-xcm/src/mock.rs @@ -21,7 +21,7 @@ use frame_support::{ fungible::HoldConsideration, AsEnsureOriginWithArg, ConstU128, ConstU32, Contains, Equals, Everything, EverythingBut, Footprint, Nothing, }, - weights::{FixedFee, IdentityFee, Weight}, + weights::{FixedFee, Weight}, }; use frame_system::EnsureRoot; use polkadot_parachain_primitives::primitives::Id as ParaId; From 38810980ae97f1a93fe304a5d6349b03ff0d7215 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 13 Aug 2025 08:28:09 +0000 Subject: [PATCH 051/273] Add revive BlockHash to runtimes Signed-off-by: Alexandru Vasile --- .../parachains/runtimes/assets/asset-hub-westend/src/lib.rs | 2 ++ cumulus/parachains/runtimes/testing/penpal/src/lib.rs | 2 ++ substrate/bin/node/runtime/src/lib.rs | 5 +++++ 3 files changed, 9 insertions(+) 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 b02e4a32bd7b4..45bb1ab429217 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -1162,6 +1162,7 @@ parameter_types! { pub const DepositPerItem: Balance = deposit(1, 0); pub const DepositPerByte: Balance = deposit(0, 1); pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); + pub const BlockHashCount: u64 = 256; } impl pallet_revive::Config for Runtime { @@ -1192,6 +1193,7 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); type FindAuthor = ::FindAuthor; + type BlockHashCount = BlockHashCount; } parameter_types! { diff --git a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs index c7f911e8c92cc..628b41c922247 100644 --- a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs @@ -837,6 +837,7 @@ parameter_types! { pub const DepositPerItem: Balance = 0; pub const DepositPerByte: Balance = 0; pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); + pub const BlockHashCount: u64 = 256; } impl pallet_revive::Config for Runtime { @@ -863,6 +864,7 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); type FindAuthor = ::FindAuthor; + type BlockHashCount = BlockHashCount; } impl pallet_sudo::Config for Runtime { diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 5d9dafc8ef2b5..b1813c3ec1548 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1467,6 +1467,10 @@ impl pallet_contracts::Config for Runtime { type Xcm = (); } +parameter_types! { + pub const BlockHashCount: u64 = 256; +} + impl pallet_revive::Config for Runtime { type Time = Timestamp; type StateRoot = pallet_revive::DeterministicStateRoot; @@ -1492,6 +1496,7 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); type FindAuthor = ::FindAuthor; + type BlockHashCount = BlockHashCount; } impl pallet_sudo::Config for Runtime { From 0ea0bc80cf79447089233ee1a5aa2e2b4f5694a5 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 13 Aug 2025 08:50:25 +0000 Subject: [PATCH 052/273] revive: Fix redefinition of block hash Signed-off-by: Alexandru Vasile --- substrate/bin/node/runtime/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index b1813c3ec1548..e57f35b352268 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1468,7 +1468,7 @@ impl pallet_contracts::Config for Runtime { } parameter_types! { - pub const BlockHashCount: u64 = 256; + pub const BlockHashCountRevive: u64 = 256; } impl pallet_revive::Config for Runtime { @@ -1496,7 +1496,7 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); type FindAuthor = ::FindAuthor; - type BlockHashCount = BlockHashCount; + type BlockHashCount = BlockHashCountRevive; } impl pallet_sudo::Config for Runtime { From 690965d8202587399867d45865014fe8ab281f41 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 13 Aug 2025 09:02:41 +0000 Subject: [PATCH 053/273] revive: Add the const with revive prefix Signed-off-by: Alexandru Vasile --- .../parachains/runtimes/assets/asset-hub-westend/src/lib.rs | 4 ++-- cumulus/parachains/runtimes/testing/penpal/src/lib.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 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 45bb1ab429217..a0f20b1076c14 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -1162,7 +1162,7 @@ parameter_types! { pub const DepositPerItem: Balance = deposit(1, 0); pub const DepositPerByte: Balance = deposit(0, 1); pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); - pub const BlockHashCount: u64 = 256; + pub const BlockHashCountRevive: u64 = 256; } impl pallet_revive::Config for Runtime { @@ -1193,7 +1193,7 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); type FindAuthor = ::FindAuthor; - type BlockHashCount = BlockHashCount; + type BlockHashCount = BlockHashCountRevive; } parameter_types! { diff --git a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs index 628b41c922247..bd0f231806dad 100644 --- a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs @@ -837,7 +837,7 @@ parameter_types! { pub const DepositPerItem: Balance = 0; pub const DepositPerByte: Balance = 0; pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); - pub const BlockHashCount: u64 = 256; + pub const BlockHashCountRevive: u64 = 256; } impl pallet_revive::Config for Runtime { @@ -864,7 +864,7 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); type FindAuthor = ::FindAuthor; - type BlockHashCount = BlockHashCount; + type BlockHashCount = BlockHashCountRevive; } impl pallet_sudo::Config for Runtime { From e30023e34ec4ed86111ee02c9b35292cd6e49f45 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 13 Aug 2025 09:28:33 +0000 Subject: [PATCH 054/273] revive: Fix clippy Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 1310a1a5d214a..3ef36d55f5df4 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -789,7 +789,7 @@ pub mod pallet { tx_info.r#type.unwrap_or_default(), ); - receipt.cumulative_gas_used = total_gas_used.clone(); + receipt.cumulative_gas_used = total_gas_used; logs_bloom.combine(&receipt.logs_bloom); From 573d57f667eca04f304dc1b72c1cc0322b14bafd Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 13 Aug 2025 10:02:27 +0000 Subject: [PATCH 055/273] runtime: Use proper u32 block number type Signed-off-by: Alexandru Vasile --- substrate/bin/node/runtime/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index e57f35b352268..4b81442a4f25a 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1468,7 +1468,7 @@ impl pallet_contracts::Config for Runtime { } parameter_types! { - pub const BlockHashCountRevive: u64 = 256; + pub const BlockHashCountRevive: u32 = 256; } impl pallet_revive::Config for Runtime { From 3aee68814966aa50fec0bc6b5e55fd059ad30211 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 13 Aug 2025 10:25:41 +0000 Subject: [PATCH 056/273] revive: Make other types u32 Signed-off-by: Alexandru Vasile --- cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs | 2 +- cumulus/parachains/runtimes/testing/penpal/src/lib.rs | 2 +- 2 files changed, 2 insertions(+), 2 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 a0f20b1076c14..76cd95c638e1c 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -1162,7 +1162,7 @@ parameter_types! { pub const DepositPerItem: Balance = deposit(1, 0); pub const DepositPerByte: Balance = deposit(0, 1); pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); - pub const BlockHashCountRevive: u64 = 256; + pub const BlockHashCountRevive: u32 = 256; } impl pallet_revive::Config for Runtime { diff --git a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs index bd0f231806dad..555b25c886602 100644 --- a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs @@ -837,7 +837,7 @@ parameter_types! { pub const DepositPerItem: Balance = 0; pub const DepositPerByte: Balance = 0; pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); - pub const BlockHashCountRevive: u64 = 256; + pub const BlockHashCountRevive: u32 = 256; } impl pallet_revive::Config for Runtime { From 94e4f3fb451cc995f017675224e3e08b61f28bd8 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 13 Aug 2025 10:57:41 +0000 Subject: [PATCH 057/273] revive: Config block hash count for dev node Signed-off-by: Alexandru Vasile --- substrate/frame/revive/dev-node/runtime/src/lib.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/substrate/frame/revive/dev-node/runtime/src/lib.rs b/substrate/frame/revive/dev-node/runtime/src/lib.rs index 9cecfd4cee5d1..7838053f7eeb8 100644 --- a/substrate/frame/revive/dev-node/runtime/src/lib.rs +++ b/substrate/frame/revive/dev-node/runtime/src/lib.rs @@ -317,6 +317,7 @@ impl pallet_transaction_payment::Config for Runtime { parameter_types! { pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); + pub const BlockHashCountRevive: u32 = 256; } #[derive_impl(pallet_revive::config_preludes::TestDefaultConfig)] @@ -330,6 +331,7 @@ impl pallet_revive::Config for Runtime { type InstantiateOrigin = EnsureSigned; type Time = Timestamp; type LengthToFee = ::LengthToFee; + type BlockHashCount = BlockHashCountRevive; } pallet_revive::impl_runtime_apis_plus_revive!( From e90e9b748ba1a81d8caf52df804177849398710f Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Fri, 8 Aug 2025 10:27:07 +0200 Subject: [PATCH 058/273] revive/tests: fix runtime tests --- substrate/frame/revive/src/evm/runtime.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index 7a64d28722c69..a5464a619e3a0 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -541,7 +541,8 @@ mod test { fn check( self, - ) -> Result<(RuntimeCall, SignedExtra, GenericTransaction), TransactionValidityError> { + ) -> Result<(RuntimeCall, SignedExtra, GenericTransaction, Vec), TransactionValidityError> + { self.mutate_estimate_and_check(Box::new(|_| ())) } @@ -549,7 +550,8 @@ mod test { fn mutate_estimate_and_check( mut self, f: Box ()>, - ) -> Result<(RuntimeCall, SignedExtra, GenericTransaction), TransactionValidityError> { + ) -> Result<(RuntimeCall, SignedExtra, GenericTransaction, Vec), TransactionValidityError> + { ExtBuilder::default().build().execute_with(|| self.estimate_gas()); f(&mut self.tx); ExtBuilder::default().build().execute_with(|| { @@ -565,7 +567,8 @@ mod test { let payload = account .sign_transaction(tx.clone().try_into_unsigned().unwrap()) .signed_payload(); - let call = RuntimeCall::Contracts(crate::Call::eth_transact { payload }); + let call = + RuntimeCall::Contracts(crate::Call::eth_transact { payload: payload.clone() }); let encoded_len = call.encoded_size(); let uxt: Ex = generic::UncheckedExtrinsic::new_bare(call).into(); @@ -584,7 +587,7 @@ mod test { 0, )?; - Ok((result.function, extra, tx)) + Ok((result.function, extra, tx, payload)) }) } } @@ -592,7 +595,7 @@ mod test { #[test] fn check_eth_transact_call_works() { let builder = UncheckedExtrinsicBuilder::call_with(H160::from([1u8; 20])); - let (call, _, tx) = builder.check().unwrap(); + let (call, _, tx, payload) = builder.check().unwrap(); let (gas_limit, storage_deposit_limit) = <::EthGasEncoder as GasEncoder<_>>::decode(tx.gas.unwrap()).unwrap(); @@ -604,7 +607,7 @@ mod test { data: tx.input.to_vec(), gas_limit, storage_deposit_limit, - payload: vec![], + payload, } .into() ); @@ -615,7 +618,7 @@ mod test { let (code, _) = compile_module("dummy").unwrap(); let data = vec![]; let builder = UncheckedExtrinsicBuilder::instantiate_with(code.clone(), data.clone()); - let (call, _, tx) = builder.check().unwrap(); + let (call, _, tx, payload) = builder.check().unwrap(); let (gas_limit, storage_deposit_limit) = <::EthGasEncoder as GasEncoder<_>>::decode(tx.gas.unwrap()).unwrap(); @@ -627,7 +630,7 @@ mod test { data, gas_limit, storage_deposit_limit, - payload: vec![], + payload, } .into() ); @@ -707,7 +710,7 @@ mod test { fn check_transaction_tip() { let (code, _) = compile_module("dummy").unwrap(); let data = vec![]; - let (_, extra, tx) = + let (_, extra, tx, _) = UncheckedExtrinsicBuilder::instantiate_with(code.clone(), data.clone()) .mutate_estimate_and_check(Box::new(|tx| { tx.gas_price = Some(tx.gas_price.unwrap() * 103 / 100); @@ -726,7 +729,7 @@ mod test { let builder = UncheckedExtrinsicBuilder::call_with(RUNTIME_PALLETS_ADDR).data(remark.encode()); - let (call, _, _) = builder.check().unwrap(); + let (call, _, _, _) = builder.check().unwrap(); assert_eq!(call, remark); } From f9f88713ecb4b8ad94f51a6f2f3e0cfa6b9c2362 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 14 Aug 2025 20:08:18 +0000 Subject: [PATCH 059/273] revive: Use allow types for computing receipt trie root Signed-off-by: Alexandru Vasile --- Cargo.lock | 150 ++++++++++++++++++++++++++---- Cargo.toml | 1 + substrate/frame/revive/Cargo.toml | 3 + substrate/frame/revive/src/lib.rs | 123 ++++++++++++------------ 4 files changed, 199 insertions(+), 78 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c7298abab2fe8..1a1b8365cab66 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -105,6 +105,24 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" +[[package]] +name = "alloy-consensus" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eda689f7287f15bd3582daba6be8d1545bad3740fd1fb778f629a1fe866bb43b" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-trie", + "alloy-tx-macros", + "auto_impl", + "derive_more 2.0.1", + "either", + "once_cell", + "thiserror 2.0.12", +] + [[package]] name = "alloy-core" version = "1.1.2" @@ -134,6 +152,56 @@ dependencies = [ "winnow 0.7.10", ] +[[package]] +name = "alloy-eip2124" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "crc", + "thiserror 2.0.12", +] + +[[package]] +name = "alloy-eip2930" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b82752a889170df67bbb36d42ca63c531eb16274f0d7299ae2a680facba17bd" +dependencies = [ + "alloy-primitives", + "alloy-rlp", +] + +[[package]] +name = "alloy-eip7702" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d4769c6ffddca380b0070d71c8b7f30bed375543fe76bb2f74ec0acf4b7cd16" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "thiserror 2.0.12", +] + +[[package]] +name = "alloy-eips" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f35887da30b5fc50267109a3c61cd63e6ca1f45967983641053a40ee83468c1" +dependencies = [ + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702", + "alloy-primitives", + "alloy-rlp", + "auto_impl", + "derive_more 2.0.1", + "either", + "sha2 0.10.8", +] + [[package]] name = "alloy-json-abi" version = "1.1.2" @@ -148,9 +216,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.1.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18c35fc4b03ace65001676358ffbbaefe2a2b27ee50fe777c345082c7c888be8" +checksum = "3cfebde8c581a5d37b678d0a48a32decb51efd7a63a08ce2517ddec26db705c8" dependencies = [ "alloy-rlp", "bytes", @@ -175,13 +243,24 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.3" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc0fac0fc16baf1f63f78b47c3d24718f3619b0714076f6a02957d808d52cbef" +checksum = "5f70d83b765fdc080dbcd4f4db70d8d23fe4761f2f02ebfa9146b833900634b4" dependencies = [ + "alloy-rlp-derive", "arrayvec 0.7.4", "bytes", - "smol_str", +] + +[[package]] +name = "alloy-rlp-derive" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" +dependencies = [ + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -254,6 +333,34 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-trie" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bada1fc392a33665de0dc50d401a3701b62583c655e3522a323490a5da016962" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "arrayvec 0.7.4", + "derive_more 2.0.1", + "nybbles", + "smallvec", + "tracing", +] + +[[package]] +name = "alloy-tx-macros" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6acb36318dfa50817154064fea7932adf2eec3f51c86680e2b37d7e8906c66bb" +dependencies = [ + "alloy-primitives", + "darling", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", +] + [[package]] name = "always-assert" version = "0.1.3" @@ -1703,14 +1810,13 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" +checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ - "proc-macro-error", "proc-macro2 1.0.95", "quote 1.0.40", - "syn 1.0.109", + "syn 2.0.98", ] [[package]] @@ -5748,9 +5854,9 @@ dependencies = [ [[package]] name = "either" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" dependencies = [ "serde", ] @@ -10856,6 +10962,17 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +[[package]] +name = "nybbles" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ff79de40513a478a9e374a480f897c2df829d48dcc64a83e4792a57fe231c64" +dependencies = [ + "cfg-if", + "ruint", + "smallvec", +] + [[package]] name = "object" version = "0.32.2" @@ -12859,7 +12976,9 @@ dependencies = [ name = "pallet-revive" version = "0.1.0" dependencies = [ + "alloy-consensus", "alloy-core", + "alloy-primitives", "array-bytes 6.2.2", "assert_matches", "derive_more 0.99.17", @@ -21360,15 +21479,6 @@ dependencies = [ "futures-lite 2.3.0", ] -[[package]] -name = "smol_str" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" -dependencies = [ - "serde", -] - [[package]] name = "smoldot" version = "0.11.0" diff --git a/Cargo.toml b/Cargo.toml index 755c7abeaccbb..8ccb813d53a21 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -631,6 +631,7 @@ Inflector = { version = "0.11.4" } aes-gcm = { version = "0.10" } ahash = { version = "0.8.2" } alloy-core = { version = "1.1.0", default-features = false } +alloy-consensus = { version = "1.0.24", default-features = false } always-assert = { version = "0.1" } anyhow = { version = "1.0.81", default-features = false } approx = { version = "0.5.1" } diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index 4523d54f1e21d..3bd7a7f5aab0c 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -18,6 +18,9 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] alloy-core = { workspace = true, features = ["sol-types"] } +alloy-consensus = { workspace = true, default-features = false } +alloy-primitives = { version = "1.2.0", default-features = false } + codec = { features = ["derive", "max-encoded-len"], workspace = true } derive_more = { workspace = true, features = ["from", "try_into"] } environmental = { workspace = true } diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 3ef36d55f5df4..1120680715285 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -730,23 +730,30 @@ pub mod pallet { let logs = events.into_iter().enumerate().filter_map(|(index, event)| { if let Event::ContractEmitted { contract, data, topics } = event { - Some(Log { - // The address, topics and data are the only fields that - // get encoded while building the receipt root. - address: contract, - topics, - data: Some(data.into()), - - transaction_hash, - transaction_index: transaction_index.into(), - - // We use the substrate block number and hash as the eth block number and hash. - block_number: block_number.into(), - block_hash: block_hash.into(), - log_index: index.into(), - - ..Default::default() - }) + + let log = alloy_primitives::Log::new_unchecked(contract.0.into(), + topics.into_iter().map(|h| alloy_primitives::FixedBytes::from(h.0)).collect::>(), + alloy_primitives::Bytes::from(data)); + + Some(log) + + // Some(Log { + // // The address, topics and data are the only fields that + // // get encoded while building the receipt root. + // address: contract, + // topics, + // data: Some(data.into()), + + // transaction_hash, + // transaction_index: transaction_index.into(), + + // // We use the substrate block number and hash as the eth block number and hash. + // block_number: block_number.into(), + // block_hash: block_hash.into(), + // log_index: index.into(), + + // ..Default::default() + // }) } else { None } @@ -772,27 +779,33 @@ pub mod pallet { // The receipt only encodes the status code, gas used, // logs bloom and logs. An encoded log only contains the // contract address, topics and data. - let mut receipt: ReceiptInfo = ReceiptInfo::new( - // This represents the substrate block hash. - block_hash.into(), - block_number.into(), - contract_address, - from, + // let mut receipt: ReceiptInfo = ReceiptInfo::new( + // // This represents the substrate block hash. + // block_hash.into(), + // block_number.into(), + // contract_address, + // from, + // logs, + // tx_info.to, + // base_gas_price.into(), + // // TODO: Is this conversion correct / appropriate for prod use-case? + // gas.ref_time().into(), + // success, + // transaction_hash, + // transaction_index.into(), + // tx_info.r#type.unwrap_or_default(), + // ); + + let receipt = alloy_consensus::Receipt { + status: success.into(), + cumulative_gas_used: total_gas_used.as_u64(), logs, - tx_info.to, - base_gas_price.into(), - // TODO: Is this conversion correct / appropriate for prod use-case? - gas.ref_time().into(), - success, - transaction_hash, - transaction_index.into(), - tx_info.r#type.unwrap_or_default(), - ); - - receipt.cumulative_gas_used = total_gas_used; - - logs_bloom.combine(&receipt.logs_bloom); + }; + // receipt.cumulative_gas_used = total_gas_used; + let receipt_bloom = receipt.bloom_slow(); + logs_bloom.combine(&(*receipt_bloom.0).into()); + Self::deposit_event(Event::Receipt { effective_gas_price: base_gas_price.into(), gas_used: gas.ref_time().into(), @@ -804,30 +817,24 @@ pub mod pallet { // transaction_index: transaction_index.into(), // transaction_signed: signed_tx, // }; + + use alloy_consensus::RlpEncodableReceipt; + let mut encoded_receipt = Vec::with_capacity(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); + receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); - Some((signed_tx.encode_2718(), receipt.encode_2718())) + Some((signed_tx.encode_2718(), encoded_receipt)) }) .unzip(); - // Tx and Receipts must be encoded via: encode_2718 - // TODO: We need to extend `TransactionSigned` with a new `encode()` fn similar to - // decode. - - // TODO: - // Calculate tx root: - // https://github.com/alloy-rs/alloy/blob/32ffb79c52caa3d54bb81b8fc5b1815bb45d30d8/crates/consensus/src/proofs.rs#L16-L24 - // We might need: `(rlp(index), encoded(tx))` pairs instead. - - use sp_trie::TrieConfiguration; - // The KeccakHasher is guarded against a #[cfg(not(substrate_runtime))]. - let transactions_root = - sp_trie::LayoutV0::::ordered_trie_root(signed_tx); - - // TODO: - // Calculate receipt root: - // https://github.com/alloy-rs/alloy/blob/32ffb79c52caa3d54bb81b8fc5b1815bb45d30d8/crates/consensus/src/proofs.rs#L49-L54 - let receipts_root = - sp_trie::LayoutV0::::ordered_trie_root(receipt); + use alloy_core::primitives::bytes::BufMut; + let transactions_root = alloy_consensus::proofs::ordered_trie_root_with_encoder( + signed_tx.as_ref(), + |item, buf| buf.put_slice(item), + ); + let receipts_root = alloy_consensus::proofs::ordered_trie_root_with_encoder( + receipt.as_ref(), + |item, buf| buf.put_slice(item), + ); let state_root = T::StateRoot::get(); @@ -841,8 +848,8 @@ pub mod pallet { // Trie roots. state_root, - transactions_root, - receipts_root, + transactions_root: transactions_root.0.into(), + receipts_root: receipts_root.0.into(), logs_bloom, // Difficulty is set to zero and not used. From 1bbf06f14ad428b81b064d8da8e093b55bfae65a Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 14 Aug 2025 20:17:19 +0000 Subject: [PATCH 060/273] revive: Remove comments Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 115 ++---------------------------- 1 file changed, 7 insertions(+), 108 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 1120680715285..ab1426c6f644b 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -636,47 +636,7 @@ pub mod pallet { } fn on_initialize(_n: BlockNumberFor) -> Weight { - // // Previous state root is needed to calculate the ETH block hash. - // // TODO: Other on_initialize hooks might alter the state. - // let version = T::Version::get().state_version(); - // let state_root = H256::decode(&mut &sp_io::storage::root(version)[..]) - // .expect("Node is configured to use the same hash; qed"); - - // let (mut header, tx_hashes) = LastBlockDetails::::get(); - // LastBlockDetails::::kill(); - - // header.state_root = state_root; - // let block_hash = header.hash(); - // let block_number = header.number; - - // let block = EthBlock { - // parent_hash: header.parent_hash, - // sha_3_uncles: header.ommers_hash, - // miner: header.beneficiary, - // state_root: header.state_root, - // transactions_root: header.transactions_root, - // receipts_root: header.receipts_root, - // logs_bloom: header.logs_bloom, - // total_difficulty: Some(header.difficulty), - // number: header.number, - // gas_limit: header.gas_limit, - // gas_used: header.gas_used, - // timestamp: header.timestamp, - // extra_data: header.extra_data, - // mix_hash: header.mix_hash, - // nonce: header.nonce, - - // transactions: HashesOrTransactionInfos::Hashes(tx_hashes), - - // ..Default::default() - // }; - - // // TODO: Prune older blocks. - // BlockHash::::insert(block_number, block_hash); - // LastBlock::::put(block); - - // Anything that needs to be done at the start of the block. - // We don't do anything here. + // TODO: Account for future transactions here in the on_finalize. Weight::zero() } @@ -728,73 +688,24 @@ pub mod pallet { let _gas_price = tx_info.gas_price; - let logs = events.into_iter().enumerate().filter_map(|(index, event)| { + let logs = events.into_iter().filter_map(|events| { if let Event::ContractEmitted { contract, data, topics } = event { - let log = alloy_primitives::Log::new_unchecked(contract.0.into(), topics.into_iter().map(|h| alloy_primitives::FixedBytes::from(h.0)).collect::>(), alloy_primitives::Bytes::from(data)); Some(log) - - // Some(Log { - // // The address, topics and data are the only fields that - // // get encoded while building the receipt root. - // address: contract, - // topics, - // data: Some(data.into()), - - // transaction_hash, - // transaction_index: transaction_index.into(), - - // // We use the substrate block number and hash as the eth block number and hash. - // block_number: block_number.into(), - // block_hash: block_hash.into(), - // log_index: index.into(), - - // ..Default::default() - // }) } else { None } }).collect(); - // Could this be extracted from the Call itself? - let contract_address = if tx_info.to.is_none() { - let nonce = tx_info.nonce.unwrap_or_default().try_into(); - match nonce { - Ok(nonce) => Some(create1(&from, nonce)), - Err(err) => { - log::error!(target: LOG_TARGET, "Failed to convert nonce at index {transaction_index}: {err:?}"); - None - } - } - } else { - None - }; - - // TODO: Could it be possible that the gas exceeds the u64::MAX? total_gas_used += gas.ref_time().into(); - // The receipt only encodes the status code, gas used, - // logs bloom and logs. An encoded log only contains the - // contract address, topics and data. - // let mut receipt: ReceiptInfo = ReceiptInfo::new( - // // This represents the substrate block hash. - // block_hash.into(), - // block_number.into(), - // contract_address, - // from, - // logs, - // tx_info.to, - // base_gas_price.into(), - // // TODO: Is this conversion correct / appropriate for prod use-case? - // gas.ref_time().into(), - // success, - // transaction_hash, - // transaction_index.into(), - // tx_info.r#type.unwrap_or_default(), - // ); + Self::deposit_event(Event::Receipt { + effective_gas_price: base_gas_price.into(), + gas_used: gas.ref_time().into(), + }); let receipt = alloy_consensus::Receipt { status: success.into(), @@ -802,22 +713,9 @@ pub mod pallet { logs, }; - // receipt.cumulative_gas_used = total_gas_used; let receipt_bloom = receipt.bloom_slow(); logs_bloom.combine(&(*receipt_bloom.0).into()); - - Self::deposit_event(Event::Receipt { - effective_gas_price: base_gas_price.into(), - gas_used: gas.ref_time().into(), - }); - // let tx = PartialSignedTransactionInfo { - // from: from.into(), - // hash: transaction_hash, - // transaction_index: transaction_index.into(), - // transaction_signed: signed_tx, - // }; - use alloy_consensus::RlpEncodableReceipt; let mut encoded_receipt = Vec::with_capacity(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); @@ -1995,6 +1893,7 @@ impl Pallet { fn deposit_event(event: Event) { let events_count = InflightEvents::::count(); // TODO: ensure we don't exceed a maximum number of events per tx. + // TODO: Only store contract events. InflightEvents::::insert(events_count, event.clone()); >::deposit_event(::RuntimeEvent::from(event)) From 68ea78fe75f135363a7e1f4a3b7acade26f74a35 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 14 Aug 2025 20:30:07 +0000 Subject: [PATCH 061/273] revive: Compute alloy header Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index ab1426c6f644b..d3540097886ce 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -688,7 +688,7 @@ pub mod pallet { let _gas_price = tx_info.gas_price; - let logs = events.into_iter().filter_map(|events| { + let logs = events.into_iter().filter_map(|event| { if let Event::ContractEmitted { contract, data, topics } = event { let log = alloy_primitives::Log::new_unchecked(contract.0.into(), topics.into_iter().map(|h| alloy_primitives::FixedBytes::from(h.0)).collect::>(), @@ -735,6 +735,30 @@ pub mod pallet { ); let state_root = T::StateRoot::get(); + let number: U256 = block_number.into(); + let now: U256 = T::Time::now().into(); + let alloy_header = alloy_consensus::Header { + parent_hash: parent_hash.0.into(), + beneficiary: block_author.0.into(), + + state_root: transactions_root.clone(), + transactions_root, + receipts_root, + + number: number.as_u64(), + + logs_bloom: logs_bloom.0.into(), + + gas_limit: Self::evm_block_gas_limit().as_u64(), + // The total gas used by the transactions in this block. + gas_used: total_gas_used.as_u64(), + // The timestamp is set to the current time. + timestamp: now.as_u64(), + + ..alloy_consensus::Header::default() + }; + + let block_hash = alloy_header.hash_slow(); let block_header = BlockHeader { // TODO: This is not the correct parent hash. @@ -768,7 +792,7 @@ pub mod pallet { nonce: Default::default(), }; - let block_hash = block_header.hash(); + let block_hash: H256 = block_hash.0.into(); BlockHash::::insert(eth_block_num, block_hash); From e3b61272c63db04902cb9d9a2f3fa1ac72a0ccd3 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 14 Aug 2025 20:36:24 +0000 Subject: [PATCH 062/273] revive: Reconstruct the ETH block Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 65 +++++++------------------------ 1 file changed, 14 insertions(+), 51 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index d3540097886ce..5a4b9b1c31243 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -734,7 +734,6 @@ pub mod pallet { |item, buf| buf.put_slice(item), ); - let state_root = T::StateRoot::get(); let number: U256 = block_number.into(); let now: U256 = T::Time::now().into(); let alloy_header = alloy_consensus::Header { @@ -759,39 +758,6 @@ pub mod pallet { }; let block_hash = alloy_header.hash_slow(); - - let block_header = BlockHeader { - // TODO: This is not the correct parent hash. - parent_hash: parent_hash.into(), - // Ommers are set to default in pallet frontier. - ommers_hash: Default::default(), - // The author of the block. - beneficiary: block_author.into(), - - // Trie roots. - state_root, - transactions_root: transactions_root.0.into(), - receipts_root: receipts_root.0.into(), - logs_bloom, - - // Difficulty is set to zero and not used. - difficulty: U256::zero(), - // The block number is the current substrate block number. - number: block_number.into(), - - // The gas limit is set to the EVM block gas limit. - gas_limit: Self::evm_block_gas_limit(), - // The total gas used by the transactions in this block. - gas_used: total_gas_used, - // The timestamp is set to the current time. - timestamp: T::Time::now().into(), - - // Default fields (not used). - extra_data: Default::default(), - mix_hash: Default::default(), - nonce: Default::default(), - }; - let block_hash: H256 = block_hash.0.into(); BlockHash::::insert(eth_block_num, block_hash); @@ -807,21 +773,20 @@ pub mod pallet { } let block = EthBlock { - parent_hash: block_header.parent_hash, - sha_3_uncles: block_header.ommers_hash, - miner: block_header.beneficiary, - state_root: block_header.state_root, - transactions_root: block_header.transactions_root, - receipts_root: block_header.receipts_root, - logs_bloom: block_header.logs_bloom, - total_difficulty: Some(block_header.difficulty), - number: block_header.number, - gas_limit: block_header.gas_limit, - gas_used: block_header.gas_used, - timestamp: block_header.timestamp, - extra_data: block_header.extra_data, - mix_hash: block_header.mix_hash, - nonce: block_header.nonce, + parent_hash: parent_hash.into(), + miner: block_author.into(), + + state_root: transactions_root.0.into(), + transactions_root: transactions_root.0.into(), + receipts_root: receipts_root.0.into(), + + logs_bloom, + total_difficulty: Some(U256::zero()), + number: block_number.into(), + + gas_limit: Self::evm_block_gas_limit(), + gas_used: total_gas_used, + timestamp: now, transactions: HashesOrTransactionInfos::Hashes(tx_hashes), @@ -829,8 +794,6 @@ pub mod pallet { }; LastBlock::::put(block); - - // LastBlockDetails::::put((block_header, tx_hashes)); } fn integrity_test() { From 64acac06aaee4f0c34088dc63707eca1e5b84c51 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 10:20:52 +0000 Subject: [PATCH 063/273] revive: Introduce an ETH block builder Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm.rs | 1 + substrate/frame/revive/src/evm/block_hash.rs | 236 +++++++++++++++++++ substrate/frame/revive/src/lib.rs | 14 +- 3 files changed, 245 insertions(+), 6 deletions(-) create mode 100644 substrate/frame/revive/src/evm/block_hash.rs diff --git a/substrate/frame/revive/src/evm.rs b/substrate/frame/revive/src/evm.rs index f340474f472e0..0d3a6cbc6728c 100644 --- a/substrate/frame/revive/src/evm.rs +++ b/substrate/frame/revive/src/evm.rs @@ -25,3 +25,4 @@ mod gas_encoder; pub use gas_encoder::*; pub mod runtime; pub use alloy_core::sol_types::decode_revert_reason; +pub mod block_hash; diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs new file mode 100644 index 0000000000000..2d7b53c3460b7 --- /dev/null +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -0,0 +1,236 @@ +// 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. +//!Types, and traits to integrate pallet-revive with EVM. +#![warn(missing_docs)] + +use crate::{ + evm::{Block as EthBlock, Bytes256, TransactionSigned}, + Event, HashesOrTransactionInfos, LOG_TARGET, +}; + +use alloc::vec::Vec; +use alloy_consensus::RlpEncodableReceipt; +use alloy_core::primitives::bytes::BufMut; +use frame_support::weights::Weight; +use sp_core::{keccak_256, H160, H256, U256}; + +/// The transaction details captured by the revive pallet. +pub type TransactionDetails = (Vec, u32, Vec>, bool, Weight); + +/// Builder of the ETH block. +struct EthBlockBuilder { + /// Current block number. + block_number: U256, + /// Parent block hash. + parent_hash: H256, + /// The base gas price of the block. + base_gas_price: U256, + /// The timestamp of the block. + timestamp: U256, + /// The author of the block. + block_author: H160, + /// The gas limit of the block. + gas_limit: U256, + + /// Logs bloom of the receipts. + logs_bloom: Bytes256, + /// Total gas used by transactions in the block. + total_gas_used: U256, + // The transaction hashes that will be placed in the ETH block. + tx_hashes: Vec, +} + +impl EthBlockBuilder { + /// Constructs a new [`EthBlockBuilder`]. + /// + /// # Note + /// + /// Obtaining some of the fields from the pallet's storage must be accounted. + pub fn new( + block_number: U256, + parent_hash: H256, + base_gas_price: U256, + timestamp: U256, + block_author: H160, + gas_limit: U256, + ) -> Self { + Self { + block_number, + parent_hash, + base_gas_price, + timestamp, + block_author, + gas_limit, + + tx_hashes: Vec::new(), + total_gas_used: U256::zero(), + logs_bloom: Bytes256::default(), + } + } + + /// Build the Ethereum block. + /// + /// # Note + /// + /// This is an expensive operation. + /// + /// (I) For each transaction captured (with the unbounded number of events): + /// - transaction is RLP decoded into a `TransactionSigned` + /// - transaction hash is computed using `keccak256` + /// - transaction is 2718 RLP encoded + /// - the receipt is constructed and contains all the logs emitted by the transaction + /// - This includes computing the bloom filter for the logs (O(N) to compute) + /// - The receipt is 2718 RLP encoded: the cost is O(N) to encode due to the number of logs. + /// + /// (II) Transaction trie roto and receipt trie root are computed. + /// + /// (III) Block hash is computed from the provided information. + pub fn build( + mut self, + details: impl IntoIterator>, + ) -> (H256, EthBlock) + where + T: crate::pallet::Config, + { + let (signed_tx, receipt): (Vec<_>, Vec<_>) = details + .into_iter() + .filter_map(|detail| self.process_transaction_details(detail)) + .unzip(); + + // Compute expensive trie roots. + let transactions_root = Self::compute_trie_root(&signed_tx); + let receipts_root = Self::compute_trie_root(&receipt); + + // Compute the ETH header hash. + let block_hash = self.header_hash(transactions_root, receipts_root); + + let block = EthBlock { + parent_hash: self.parent_hash.into(), + miner: self.block_author.into(), + + state_root: transactions_root.0.into(), + transactions_root: transactions_root.0.into(), + receipts_root: receipts_root.0.into(), + + logs_bloom: self.logs_bloom, + total_difficulty: Some(U256::zero()), + number: self.block_number.into(), + + gas_limit: self.gas_limit, + gas_used: self.total_gas_used, + timestamp: self.timestamp, + + transactions: HashesOrTransactionInfos::Hashes(self.tx_hashes), + + ..Default::default() + }; + + (block_hash, block) + } + + /// Returns a tuple of the RLP encoded transaction and receipt. + /// + /// Internally collects the total gas used, the log blooms and the transaction hashes. + fn process_transaction_details( + &mut self, + detail: TransactionDetails, + ) -> Option<(Vec, Vec)> + where + T: crate::pallet::Config, + { + let (payload, transaction_index, events, success, gas) = detail; + let signed_tx = TransactionSigned::decode(&mut &payload[..]).inspect_err(|err| { + log::error!(target: LOG_TARGET, "Failed to decode transaction at index {transaction_index}: {err:?}"); + }).ok()?; + + let transaction_hash = H256(keccak_256(&payload)); + self.tx_hashes.push(transaction_hash); + + let logs = events + .into_iter() + .filter_map(|event| { + if let Event::ContractEmitted { contract, data, topics } = event { + Some(alloy_primitives::Log::new_unchecked( + contract.0.into(), + topics + .into_iter() + .map(|h| alloy_primitives::FixedBytes::from(h.0)) + .collect::>(), + alloy_primitives::Bytes::from(data), + )) + } else { + None + } + }) + .collect(); + + self.total_gas_used += gas.ref_time().into(); + + // Note: an event must be emitted here + // Self::deposit_event(Event::Receipt { + // effective_gas_price: base_gas_price.into(), + // gas_used: gas.ref_time().into(), + // }); + + let receipt = alloy_consensus::Receipt { + status: success.into(), + cumulative_gas_used: self.total_gas_used.as_u64(), + logs, + }; + + let receipt_bloom = receipt.bloom_slow(); + self.logs_bloom.combine(&(*receipt_bloom.0).into()); + + let mut encoded_receipt = + Vec::with_capacity(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); + receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); + + Some((signed_tx.encode_2718(), encoded_receipt)) + } + + /// Compute the trie root using the `(rlp(index), encoded(item))` pairs. + fn compute_trie_root(items: &[Vec]) -> alloy_primitives::B256 { + alloy_consensus::proofs::ordered_trie_root_with_encoder(items, |item, buf| { + buf.put_slice(item) + }) + } + + /// Compute the ETH header hash. + fn header_hash( + &self, + transactions_root: alloy_primitives::B256, + receipts_root: alloy_primitives::B256, + ) -> H256 { + let alloy_header = alloy_consensus::Header { + state_root: transactions_root.clone(), + transactions_root, + receipts_root, + + parent_hash: self.parent_hash.0.into(), + beneficiary: self.block_author.0.into(), + number: self.block_number.as_u64(), + logs_bloom: self.logs_bloom.0.into(), + gas_limit: self.gas_limit.as_u64(), + gas_used: self.total_gas_used.as_u64(), + timestamp: self.timestamp.as_u64(), + + ..alloy_consensus::Header::default() + }; + + alloy_header.hash_slow().0.into() + } +} diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 5a4b9b1c31243..ae0072c1e25dd 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,9 +45,9 @@ pub mod weights; use crate::{ evm::{ - runtime::GAS_PRICE, BlockHeader, Bytes256, CallTracer, GasEncoder, GenericTransaction, - HashesOrTransactionInfos, Log, PrestateTracer, Trace, Tracer, TracerType, - TransactionSigned, TYPE_EIP1559, + block_hash::TransactionDetails, runtime::GAS_PRICE, BlockHeader, Bytes256, CallTracer, + GasEncoder, GenericTransaction, HashesOrTransactionInfos, Log, PrestateTracer, Trace, + Tracer, TracerType, TransactionSigned, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Key, Stack as ExecStack}, gas::GasMeter, @@ -126,7 +126,7 @@ const SENTINEL: u32 = u32::MAX; /// Hence you can use this target to selectively increase the log level for this crate. /// /// Example: `RUST_LOG=runtime::revive=debug my_code --dev` -const LOG_TARGET: &str = "runtime::revive"; +pub(crate) const LOG_TARGET: &str = "runtime::revive"; #[frame_support::pallet] pub mod pallet { @@ -662,6 +662,8 @@ pub mod pallet { let mut logs_bloom = Bytes256::default(); let mut total_gas_used = U256::zero(); + let gas_limit = Self::evm_block_gas_limit(); + let mut tx_hashes = Vec::with_capacity(transactions.len()); let (signed_tx, receipt): (Vec<_>, Vec<_>) = transactions @@ -748,7 +750,7 @@ pub mod pallet { logs_bloom: logs_bloom.0.into(), - gas_limit: Self::evm_block_gas_limit().as_u64(), + gas_limit: gas_limit.as_u64(), // The total gas used by the transactions in this block. gas_used: total_gas_used.as_u64(), // The timestamp is set to the current time. @@ -784,7 +786,7 @@ pub mod pallet { total_difficulty: Some(U256::zero()), number: block_number.into(), - gas_limit: Self::evm_block_gas_limit(), + gas_limit, gas_used: total_gas_used, timestamp: now, From cb1a2b969c04cd8253f13bcd17bca83e98efdcd7 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 10:31:34 +0000 Subject: [PATCH 064/273] revive: Use the ETH block builder on_finalize Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 2 +- substrate/frame/revive/src/lib.rs | 154 +++---------------- 2 files changed, 23 insertions(+), 133 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 2d7b53c3460b7..0f06ec774d524 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -32,7 +32,7 @@ use sp_core::{keccak_256, H160, H256, U256}; pub type TransactionDetails = (Vec, u32, Vec>, bool, Weight); /// Builder of the ETH block. -struct EthBlockBuilder { +pub struct EthBlockBuilder { /// Current block number. block_number: U256, /// Parent block hash. diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index ae0072c1e25dd..8bfa80e8f2b55 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,9 +45,11 @@ pub mod weights; use crate::{ evm::{ - block_hash::TransactionDetails, runtime::GAS_PRICE, BlockHeader, Bytes256, CallTracer, - GasEncoder, GenericTransaction, HashesOrTransactionInfos, Log, PrestateTracer, Trace, - Tracer, TracerType, TransactionSigned, TYPE_EIP1559, + block_hash::{EthBlockBuilder, TransactionDetails}, + runtime::GAS_PRICE, + BlockHeader, Bytes256, CallTracer, GasEncoder, GenericTransaction, + HashesOrTransactionInfos, Log, PrestateTracer, Trace, Tracer, TracerType, + TransactionSigned, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Key, Stack as ExecStack}, gas::GasMeter, @@ -641,6 +643,7 @@ pub mod pallet { } fn on_finalize(block_number: BlockNumberFor) { + // If we cannot fetch the block author there's nothing we can do. let Some(block_author) = Self::block_author() else { Self::kill_inflight_data(); return; @@ -653,148 +656,35 @@ pub mod pallet { } else { H256::default() }; - - let block_hash = frame_system::Pallet::::block_hash(block_number); - let transactions = InflightTransactions::::drain().collect::>(); - let base_gas_price = GAS_PRICE.into(); - - let mut logs_bloom = Bytes256::default(); - let mut total_gas_used = U256::zero(); - let gas_limit = Self::evm_block_gas_limit(); - - let mut tx_hashes = Vec::with_capacity(transactions.len()); - - let (signed_tx, receipt): (Vec<_>, Vec<_>) = transactions - .into_iter() - .filter_map(|(_, (payload, transaction_index, events, success, gas))| { - let signed_tx = TransactionSigned::decode(&mut &payload[..]).inspect_err(|err| { - log::error!(target: LOG_TARGET, "Failed to decode transaction at index {transaction_index}: {err:?}"); - }).ok()?; - - let from = signed_tx.recover_eth_address() - .inspect_err(|err| { - log::error!(target: LOG_TARGET, "Failed to recover sender address at index {transaction_index}: {err:?}"); - }) - .ok()?; - - let transaction_hash = H256(keccak_256(&payload)); - tx_hashes.push(transaction_hash); - - let tx_info = GenericTransaction::from_signed( - signed_tx.clone(), - base_gas_price, - Some(from), - ); - - let _gas_price = tx_info.gas_price; - - let logs = events.into_iter().filter_map(|event| { - if let Event::ContractEmitted { contract, data, topics } = event { - let log = alloy_primitives::Log::new_unchecked(contract.0.into(), - topics.into_iter().map(|h| alloy_primitives::FixedBytes::from(h.0)).collect::>(), - alloy_primitives::Bytes::from(data)); - - Some(log) - } else { - None - } - }).collect(); - - total_gas_used += gas.ref_time().into(); - - Self::deposit_event(Event::Receipt { - effective_gas_price: base_gas_price.into(), - gas_used: gas.ref_time().into(), - }); - - let receipt = alloy_consensus::Receipt { - status: success.into(), - cumulative_gas_used: total_gas_used.as_u64(), - logs, - }; - - let receipt_bloom = receipt.bloom_slow(); - logs_bloom.combine(&(*receipt_bloom.0).into()); - - use alloy_consensus::RlpEncodableReceipt; - let mut encoded_receipt = Vec::with_capacity(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); - receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); - - Some((signed_tx.encode_2718(), encoded_receipt)) - }) - .unzip(); - - use alloy_core::primitives::bytes::BufMut; - let transactions_root = alloy_consensus::proofs::ordered_trie_root_with_encoder( - signed_tx.as_ref(), - |item, buf| buf.put_slice(item), - ); - let receipts_root = alloy_consensus::proofs::ordered_trie_root_with_encoder( - receipt.as_ref(), - |item, buf| buf.put_slice(item), + // This touches the storage, must account for weights. + let transactions = InflightTransactions::::drain().map(|(_index, details)| details); + + let block_builder = EthBlockBuilder::new( + eth_block_num, + parent_hash, + base_gas_price, + T::Time::now().into(), + block_author, + gas_limit, ); - - let number: U256 = block_number.into(); - let now: U256 = T::Time::now().into(); - let alloy_header = alloy_consensus::Header { - parent_hash: parent_hash.0.into(), - beneficiary: block_author.0.into(), - - state_root: transactions_root.clone(), - transactions_root, - receipts_root, - - number: number.as_u64(), - - logs_bloom: logs_bloom.0.into(), - - gas_limit: gas_limit.as_u64(), - // The total gas used by the transactions in this block. - gas_used: total_gas_used.as_u64(), - // The timestamp is set to the current time. - timestamp: now.as_u64(), - - ..alloy_consensus::Header::default() - }; - - let block_hash = alloy_header.hash_slow(); - let block_hash: H256 = block_hash.0.into(); - + // The most expensive operation of this hook. Please check + // the method's documentation for computational details. + let (block_hash, block) = block_builder.build(transactions); + // Put the block hash into storage. BlockHash::::insert(eth_block_num, block_hash); + // Prune older block hashes. let block_hash_count = ::BlockHashCount::get(); let to_remove = eth_block_num.saturating_sub(block_hash_count.into()).saturating_sub(One::one()); - // keep genesis hash if !to_remove.is_zero() { >::remove(U256::from( UniqueSaturatedInto::::unique_saturated_into(to_remove), )); } - - let block = EthBlock { - parent_hash: parent_hash.into(), - miner: block_author.into(), - - state_root: transactions_root.0.into(), - transactions_root: transactions_root.0.into(), - receipts_root: receipts_root.0.into(), - - logs_bloom, - total_difficulty: Some(U256::zero()), - number: block_number.into(), - - gas_limit, - gas_used: total_gas_used, - timestamp: now, - - transactions: HashesOrTransactionInfos::Hashes(tx_hashes), - - ..Default::default() - }; - + // Store the ETH block into the last block. LastBlock::::put(block); } From 98a053d7a1bf1980fa91cb15673e2029350fc744 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 10:34:29 +0000 Subject: [PATCH 065/273] revive: Inline storage drainer Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 8bfa80e8f2b55..ca560918d02b7 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,11 +45,9 @@ pub mod weights; use crate::{ evm::{ - block_hash::{EthBlockBuilder, TransactionDetails}, - runtime::GAS_PRICE, - BlockHeader, Bytes256, CallTracer, GasEncoder, GenericTransaction, - HashesOrTransactionInfos, Log, PrestateTracer, Trace, Tracer, TracerType, - TransactionSigned, TYPE_EIP1559, + block_hash::EthBlockBuilder, runtime::GAS_PRICE, CallTracer, GasEncoder, + GenericTransaction, HashesOrTransactionInfos, PrestateTracer, Trace, Tracer, TracerType, + TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Key, Stack as ExecStack}, gas::GasMeter, @@ -644,8 +642,11 @@ pub mod pallet { fn on_finalize(block_number: BlockNumberFor) { // If we cannot fetch the block author there's nothing we can do. + // Finding the block author traverses the digest logs. let Some(block_author) = Self::block_author() else { - Self::kill_inflight_data(); + // Drain storage in case of errors. + InflightEvents::::drain(); + InflightTransactions::::drain(); return; }; @@ -1797,13 +1798,6 @@ impl Pallet { ); } - /// Kill all inflight data collected during the current block. - fn kill_inflight_data() { - // TODO: Do they remove the data from the storage? - InflightEvents::::drain(); - InflightTransactions::::drain(); - } - /// The address of the validator that produced the current block. pub fn block_author() -> Option { use frame_support::traits::FindAuthor; From e0592ad22237a4ae36b52ed5cdb6e6c7574ffa3e Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 10:49:07 +0000 Subject: [PATCH 066/273] revive: Add better storage documentation Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 49 +++++++++++++++++++------------ 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index ca560918d02b7..597e5f14a3705 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -559,7 +559,8 @@ pub mod pallet { /// The events emitted by this pallet while executing the current inflight transaction. /// /// The events are needed to reconstruct the ReceiptInfo, as they represent the - /// logs emitted by the contract. + /// logs emitted by the contract. The events are consumed when the transaction is + /// completed and moved to the `InflightTransactions` storage object. #[pallet::storage] #[pallet::unbounded] pub(crate) type InflightEvents = @@ -569,8 +570,9 @@ pub mod pallet { /// /// The transactions are needed to construct the ETH block. /// - /// This maps the transaction index to the transaction payload, the events emitted by the - /// transaction, the status of the transaction (success or not), and the gas consumed. + /// This contains the information about transaction payload, transaction index within the block, + /// the events emitted by the transaction, the status of the transaction (success or not), and + /// the gas consumed. #[pallet::storage] #[pallet::unbounded] pub(crate) type InflightTransactions = CountedStorageMap< @@ -581,17 +583,22 @@ pub mod pallet { OptionQuery, >; - // /// The last block transaction details. - // #[pallet::storage] - // #[pallet::unbounded] - // pub(crate) type LastBlockDetails = StorageValue<_, (BlockHeader, Vec), ValueQuery>; - - /// The previous ETH block. + /// The current Ethereum block that is stored in the `on_finalize` method. + /// + /// # Note + /// + /// This could be further optimized into the future to store only the minimum + /// information needed to reconstruct the Ethereum block at the RPC level. + /// + /// Since the block is convenient to have around, and the extra details are capped + /// by a few hashes and the vector of transaction hashes, we store the block here. #[pallet::storage] #[pallet::unbounded] - pub(crate) type LastBlock = StorageValue<_, EthBlock, ValueQuery>; + pub(crate) type EthereumBlock = StorageValue<_, EthBlock, ValueQuery>; - // Mapping for block number and hashes. + /// Mapping for block number and hashes. + /// + /// The maximum number of elements stored is capped by the block hash count `BlockHashCount`. #[pallet::storage] pub type BlockHash = StorageMap<_, Twox64Concat, U256, H256, ValueQuery>; @@ -619,13 +626,9 @@ pub mod pallet { // We need this to place the substrate block // hash into the logs of the receipts. T::Hash: frame_support::traits::IsType, - // We need these to access the ETH block gas limit via `Self::evm_block_gas_limit()`. ::RuntimeCall: Dispatchable, - - // T: pallet_transaction_payment::Config, - // OnChargeTransactionBalanceOf: Into>, BalanceOf: Into + TryFrom, MomentOf: Into, { @@ -686,7 +689,7 @@ pub mod pallet { )); } // Store the ETH block into the last block. - LastBlock::::put(block); + EthereumBlock::::put(block); } fn integrity_test() { @@ -1590,11 +1593,19 @@ where Self::convert_native_to_evm(balance) } + /// Get the current Ethereum block from storage. pub fn eth_block() -> EthBlock { - LastBlock::::get() + EthereumBlock::::get() } - pub fn eth_block_number(number: U256) -> Option { + /// Convert the Ethereum block number into the Ethereum block hash. + /// + /// # Note + /// + /// The Ethereum block number is identical to the Substrate block number. + /// If the provided block number is outside of the pruning window defined by + /// `BlockHashCount` constant, then None is returned. + pub fn eth_block_hash_from_number(number: U256) -> Option { let hash = >::get(number); if hash == H256::zero() { None @@ -1985,7 +1996,7 @@ macro_rules! impl_runtime_apis_plus_revive { } fn eth_block_hash(number: $crate::U256) -> Option<$crate::H256> { - $crate::Pallet::::eth_block_number(number) + $crate::Pallet::::eth_block_hash_from_number(number) } fn balance(address: $crate::H160) -> $crate::U256 { From 77047d157d2219ee608ba7517f65ecb954624dc6 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 11:12:06 +0000 Subject: [PATCH 067/273] revive: Emit events while storing tx not while processing Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 12 +++++----- substrate/frame/revive/src/lib.rs | 23 ++++++++++++++++---- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 0f06ec774d524..93f437721a6f1 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -29,7 +29,7 @@ use frame_support::weights::Weight; use sp_core::{keccak_256, H160, H256, U256}; /// The transaction details captured by the revive pallet. -pub type TransactionDetails = (Vec, u32, Vec>, bool, Weight); +pub type TransactionDetails = (Vec, u32, Vec>, bool, Weight); /// Builder of the ETH block. pub struct EthBlockBuilder { @@ -180,11 +180,11 @@ impl EthBlockBuilder { self.total_gas_used += gas.ref_time().into(); - // Note: an event must be emitted here - // Self::deposit_event(Event::Receipt { - // effective_gas_price: base_gas_price.into(), - // gas_used: gas.ref_time().into(), - // }); + // Note: an event can be emitted here if we need extra transaction details. + // let _event: Event = Event::Receipt { + // effective_gas_price: self.base_gas_price.into(), + // gas_used: gas.ref_time().into(), + // }; let receipt = alloy_consensus::Receipt { status: success.into(), diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 597e5f14a3705..b341ffa8eeabb 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1782,10 +1782,16 @@ impl Pallet { /// Deposit a pallet contracts event. fn deposit_event(event: Event) { - let events_count = InflightEvents::::count(); - // TODO: ensure we don't exceed a maximum number of events per tx. - // TODO: Only store contract events. - InflightEvents::::insert(events_count, event.clone()); + // Only the contract emitted events are stored since they are needed to reconstruct + // the logs of the transaction receipts. + match &event { + Event::ContractEmitted { .. } => { + let events_count = InflightEvents::::count(); + // TODO: ensure we don't exceed a maximum number of events per tx. + InflightEvents::::insert(events_count, event.clone()); + }, + _ => {}, + }; >::deposit_event(::RuntimeEvent::from(event)) } @@ -1802,6 +1808,15 @@ impl Pallet { 0 }); + // Emit an event for the gas consumed by the transaction. + >::deposit_event(::RuntimeEvent::from( + Event::Receipt { + // TODO: Should this be the GenericTransaction.gas_price field here? + effective_gas_price: GAS_PRICE.into(), + gas_used: gas_consumed.ref_time().into(), + }, + )); + let transactions_count = InflightTransactions::::count(); InflightTransactions::::insert( transactions_count, From b290d48fe42cca4251b1b2aabdc7b734cf34e59d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 11:15:33 +0000 Subject: [PATCH 068/273] revive: Add wrapper for emitting events unstored Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 4 +-- substrate/frame/revive/src/lib.rs | 35 ++++++++++---------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 93f437721a6f1..c1eeaedcac6bd 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -38,7 +38,7 @@ pub struct EthBlockBuilder { /// Parent block hash. parent_hash: H256, /// The base gas price of the block. - base_gas_price: U256, + _base_gas_price: U256, /// The timestamp of the block. timestamp: U256, /// The author of the block. @@ -71,7 +71,7 @@ impl EthBlockBuilder { Self { block_number, parent_hash, - base_gas_price, + _base_gas_price: base_gas_price, timestamp, block_author, gas_limit, diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index b341ffa8eeabb..75a3262f37df0 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1781,18 +1781,21 @@ impl Pallet { } /// Deposit a pallet contracts event. + /// + /// This method will be called by the EVM to deposit events emitted by the contract. + /// Therefore all events must be contract emitted events. fn deposit_event(event: Event) { - // Only the contract emitted events are stored since they are needed to reconstruct - // the logs of the transaction receipts. - match &event { - Event::ContractEmitted { .. } => { - let events_count = InflightEvents::::count(); - // TODO: ensure we don't exceed a maximum number of events per tx. - InflightEvents::::insert(events_count, event.clone()); - }, - _ => {}, - }; + let events_count = InflightEvents::::count(); + // TODO: ensure we don't exceed a maximum number of events per tx. + InflightEvents::::insert(events_count, event.clone()); + + Self::deposit_event_unstored(event) + } + /// Deposit a pallet event. + /// + /// This does not store the event into storage for Ethereum block processing. + fn deposit_event_unstored(event: Event) { >::deposit_event(::RuntimeEvent::from(event)) } @@ -1809,13 +1812,11 @@ impl Pallet { }); // Emit an event for the gas consumed by the transaction. - >::deposit_event(::RuntimeEvent::from( - Event::Receipt { - // TODO: Should this be the GenericTransaction.gas_price field here? - effective_gas_price: GAS_PRICE.into(), - gas_used: gas_consumed.ref_time().into(), - }, - )); + Self::deposit_event_unstored(Event::Receipt { + // TODO: Should this be the GenericTransaction.gas_price field here? + effective_gas_price: GAS_PRICE.into(), + gas_used: gas_consumed.ref_time().into(), + }); let transactions_count = InflightTransactions::::count(); InflightTransactions::::insert( From 61c6e53b77286a3f5a39d494b3ce2ef186093db5 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 11:18:21 +0000 Subject: [PATCH 069/273] revive: Remove state root config and use tx root instead Signed-off-by: Alexandru Vasile --- .../assets/asset-hub-westend/src/lib.rs | 1 - .../runtimes/testing/penpal/src/lib.rs | 1 - substrate/bin/node/runtime/src/lib.rs | 1 - substrate/frame/revive/src/lib.rs | 31 ------------------- 4 files changed, 34 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 76cd95c638e1c..3039d30d4a1f4 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -1167,7 +1167,6 @@ parameter_types! { impl pallet_revive::Config for Runtime { type Time = Timestamp; - type StateRoot = pallet_revive::DeterministicStateRoot; type Currency = Balances; type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; diff --git a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs index 555b25c886602..548c172924986 100644 --- a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs @@ -842,7 +842,6 @@ parameter_types! { impl pallet_revive::Config for Runtime { type Time = Timestamp; - type StateRoot = pallet_revive::DeterministicStateRoot; type Currency = Balances; type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 4b81442a4f25a..e3f032e619846 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1473,7 +1473,6 @@ parameter_types! { impl pallet_revive::Config for Runtime { type Time = Timestamp; - type StateRoot = pallet_revive::DeterministicStateRoot; type Currency = Balances; type RuntimeEvent = RuntimeEvent; type RuntimeCall = RuntimeCall; diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 75a3262f37df0..0247d4d128da4 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -148,9 +148,6 @@ pub mod pallet { /// The time implementation used to supply timestamps to contracts through `seal_now`. type Time: Time; - /// How Ethereum state root is calculated. - type StateRoot: Get; - /// The fungible in which fees are paid and contract balances are held. #[pallet::no_default] type Currency: Inspect @@ -351,7 +348,6 @@ pub mod pallet { type DepositPerByte = DepositPerByte; type DepositPerItem = DepositPerItem; type Time = Self; - type StateRoot = DeterministicStateRoot; type UnsafeUnstableInterface = ConstBool; type UploadOrigin = EnsureSigned; type InstantiateOrigin = EnsureSigned; @@ -2227,30 +2223,3 @@ macro_rules! impl_runtime_apis_plus_revive { } }; } - -/// Represents an intermediate state root for the current runtime version. -/// -/// This represents a snapshot of the state root at the time of calling, and -/// the it will most certainly be different than the state root of the final -/// substrate block. -/// -/// When in doubt, please select -pub struct IntermediateStateRoot(PhantomData); -impl> Get for IntermediateStateRoot { - fn get() -> H256 { - let version = T::get().state_version(); - H256::decode(&mut &sp_io::storage::root(version)[..]) - .expect("Node is configured to use the same hash; qed") - } -} - -/// Represents a deterministic state root for the current runtime version. -/// -/// This returns a deterministic state root (ie zeroed out). It has the same -/// level of usefulness as `IntermediateStateRoot`, but consumes less resources. -pub struct DeterministicStateRoot(PhantomData); -impl> Get for DeterministicStateRoot { - fn get() -> H256 { - H256::zero() - } -} From 3fb025bf942077bd9e1fcdf72ce2e53b5c8981ab Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 11:20:35 +0000 Subject: [PATCH 070/273] cargo: Remove experimental feature flags Signed-off-by: Alexandru Vasile --- substrate/frame/revive/Cargo.toml | 3 +-- substrate/primitives/core/src/lib.rs | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index 3bd7a7f5aab0c..8cedd1dfe3354 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -58,8 +58,7 @@ sp-arithmetic = { workspace = true } sp-consensus-aura = { workspace = true, optional = true } sp-consensus-babe = { workspace = true, optional = true } sp-consensus-slots = { workspace = true, optional = true } -# TODO: Is this feature safe? Was it tested? Why experimental? Better to just use alloy-trie/core? -sp-core = { workspace = true, features = ["bls-experimental", "bandersnatch-experimental"] } +sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } sp-version = { workspace = true } diff --git a/substrate/primitives/core/src/lib.rs b/substrate/primitives/core/src/lib.rs index d6d0c507f13be..fc5faa6a6f233 100644 --- a/substrate/primitives/core/src/lib.rs +++ b/substrate/primitives/core/src/lib.rs @@ -61,7 +61,7 @@ pub use paste; mod address_uri; pub mod defer; pub mod hash; -// #[cfg(not(substrate_runtime))] +#[cfg(not(substrate_runtime))] mod hasher; pub mod offchain; pub mod proof_of_possession; @@ -93,8 +93,7 @@ pub use crypto::{ByteArray, DeriveJunction, Pair, Public}; #[cfg(not(substrate_runtime))] pub use self::hasher::blake2::Blake2Hasher; -// TODO: Is this sane? -// #[cfg(not(substrate_runtime))] +#[cfg(not(substrate_runtime))] pub use self::hasher::keccak::KeccakHasher; pub use hash_db::Hasher; From 58983b6bfa41a2819214152f881ac8bf7b01ebaf Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 11:24:11 +0000 Subject: [PATCH 071/273] revive: Remove encoding since we rely on alloy Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/api/byte.rs | 25 ----------- .../frame/revive/src/evm/api/rlp_codec.rs | 42 ------------------- 2 files changed, 67 deletions(-) diff --git a/substrate/frame/revive/src/evm/api/byte.rs b/substrate/frame/revive/src/evm/api/byte.rs index 2d7d3152a8287..0ea0bbc0f2950 100644 --- a/substrate/frame/revive/src/evm/api/byte.rs +++ b/substrate/frame/revive/src/evm/api/byte.rs @@ -94,31 +94,6 @@ impl Bytes256 { } } -// Note: rlp::Encodable derive panics within the `impl_hex!` macro. -impl rlp::Encodable for Byte { - fn rlp_append(&self, stream: &mut rlp::RlpStream) { - self.0.rlp_append(stream); - } -} - -impl rlp::Encodable for Bytes { - fn rlp_append(&self, stream: &mut rlp::RlpStream) { - self.0.rlp_append(stream); - } -} - -impl rlp::Encodable for Bytes8 { - fn rlp_append(&self, stream: &mut rlp::RlpStream) { - self.0.as_slice().rlp_append(stream); - } -} - -impl rlp::Encodable for Bytes256 { - fn rlp_append(&self, stream: &mut rlp::RlpStream) { - self.0.as_slice().rlp_append(stream); - } -} - #[test] fn serialize_works() { let a = Byte(42); diff --git a/substrate/frame/revive/src/evm/api/rlp_codec.rs b/substrate/frame/revive/src/evm/api/rlp_codec.rs index 99b0078a4182c..e06823e3d914c 100644 --- a/substrate/frame/revive/src/evm/api/rlp_codec.rs +++ b/substrate/frame/revive/src/evm/api/rlp_codec.rs @@ -466,48 +466,6 @@ impl Decodable for TransactionLegacySigned { } } -impl Encodable for ReceiptInfo { - fn rlp_append(&self, s: &mut rlp::RlpStream) { - s.begin_list(4); - let status_code = self.status.unwrap_or_default(); - s.append(&status_code); - s.append(&self.cumulative_gas_used); - s.append(&self.logs_bloom.0.as_ref()); - s.append_list(&self.logs); - } -} - -impl Encodable for Log { - fn rlp_append(&self, s: &mut rlp::RlpStream) { - s.begin_list(3); - - s.append(&self.address); - s.append_list(&self.topics); - let bytes = self.data.clone().unwrap_or_default(); - s.append(&bytes.0); - } -} - -impl ReceiptInfo { - /// Encode the receipt info into bytes. - /// - /// This is needed to compute the receipt root. - pub fn encode_2718(&self) -> Vec { - use alloc::vec; - - let u8_ty = self.r#type.clone().map(|t| t.0); - match u8_ty { - Some(TYPE_EIP2930) => - vec![TYPE_EIP2930].into_iter().chain(rlp::encode(self).into_iter()).collect(), - Some(TYPE_EIP1559) => - vec![TYPE_EIP1559].into_iter().chain(rlp::encode(self).into_iter()).collect(), - Some(TYPE_EIP4844) => - vec![TYPE_EIP4844].into_iter().chain(rlp::encode(self).into_iter()).collect(), - _ => rlp::encode(self).to_vec(), - } - } -} - #[cfg(test)] mod test { use super::*; From fa7a321c7ad0d6020b9d4b7be9502430afc11d65 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 11:26:28 +0000 Subject: [PATCH 072/273] revive: Remove manual implementation of the eth header Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rpc_types_gen.rs | 38 ------------------- 1 file changed, 38 deletions(-) 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 d6464b1cfc711..663473872374d 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -149,44 +149,6 @@ pub struct Block { pub withdrawals_root: Option, } -/// Block header. -#[derive( - Debug, - Default, - Clone, - Serialize, - Deserialize, - Eq, - PartialEq, - TypeInfo, - Encode, - Decode, - rlp::RlpEncodable, -)] -pub struct BlockHeader { - pub parent_hash: H256, - pub ommers_hash: H256, - pub beneficiary: H160, - pub state_root: H256, - pub transactions_root: H256, - pub receipts_root: H256, - pub logs_bloom: Bytes256, - pub difficulty: U256, - pub number: U256, - pub gas_limit: U256, - pub gas_used: U256, - pub timestamp: U256, - pub extra_data: Bytes, - pub mix_hash: H256, - pub nonce: Bytes8, -} - -impl BlockHeader { - pub fn hash(&self) -> H256 { - H256(sp_core::keccak_256(&rlp::encode(self))) - } -} - /// Block number or tag #[derive(Debug, Clone, Serialize, Deserialize, From, TryInto, Eq, PartialEq)] #[serde(untagged)] From 54079df90aa50d459d75ae486e75837e618d69e1 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 11:42:34 +0000 Subject: [PATCH 073/273] cargo: Use workspace deps Signed-off-by: Alexandru Vasile --- Cargo.toml | 3 ++- substrate/frame/revive/Cargo.toml | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 8ccb813d53a21..b7f29e5bbcf2f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -630,8 +630,9 @@ zero-prefixed-literal = { level = "allow", priority = 2 } # 00_1000_0 Inflector = { version = "0.11.4" } aes-gcm = { version = "0.10" } ahash = { version = "0.8.2" } -alloy-core = { version = "1.1.0", default-features = false } alloy-consensus = { version = "1.0.24", default-features = false } +alloy-core = { version = "1.1.0", default-features = false } +alloy-primitives = { version = "1.2.0", default-features = false } always-assert = { version = "0.1" } anyhow = { version = "1.0.81", default-features = false } approx = { version = "0.5.1" } diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index d3d6a552847d5..c729d5cc0f9a7 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -17,10 +17,9 @@ workspace = true targets = ["x86_64-unknown-linux-gnu"] [dependencies] -alloy-core = { workspace = true, features = ["sol-types"] } alloy-consensus = { workspace = true, default-features = false } -alloy-primitives = { version = "1.2.0", default-features = false } - +alloy-core = { workspace = true, features = ["sol-types"] } +alloy-primitives = { workspace = true, default-features = false } codec = { features = ["derive", "max-encoded-len"], workspace = true } derive_more = { workspace = true, features = ["from", "try_into"] } environmental = { workspace = true } From 73b9712d5fac39bf3cfc0589c127c9c37fdbeecf Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 12:17:59 +0000 Subject: [PATCH 074/273] revive: Remove unnecesary types and imports Signed-off-by: Alexandru Vasile --- Cargo.lock | 13 ------------- substrate/frame/revive/Cargo.toml | 3 +-- .../frame/revive/src/evm/api/rpc_types_gen.rs | 14 -------------- 3 files changed, 1 insertion(+), 29 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a0ef11e03925a..df423ca304977 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13026,7 +13026,6 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-tracing 16.0.0", - "sp-trie", "sp-version", "substrate-bn", "subxt-signer 0.41.0", @@ -18473,21 +18472,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa24e92bb2a83198bb76d661a71df9f7076b8c420b8696e4d3d97d50d94479e3" dependencies = [ "bytes", - "rlp-derive", "rustc-hex", ] -[[package]] -name = "rlp-derive" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "652db34deaaa57929e10ca18e5454a32cb0efc351ae80d320334bbf907b908b3" -dependencies = [ - "proc-macro2 1.0.95", - "quote 1.0.40", - "syn 2.0.98", -] - [[package]] name = "rocksdb" version = "0.21.0" diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index c729d5cc0f9a7..9c1289f285752 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -37,10 +37,9 @@ polkavm = { version = "0.27.0", default-features = false } polkavm-common = { version = "0.27.0", default-features = false, features = ["alloc"] } rand = { workspace = true, optional = true } rand_pcg = { workspace = true, optional = true } -rlp = { workspace = true, features = ["derive"] } +rlp = { workspace = true } scale-info = { features = ["derive"], workspace = true } serde = { features = ["alloc", "derive"], workspace = true, default-features = false } -sp-trie = { workspace = true } # Polkadot SDK Dependencies bn = { workspace = true } 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 663473872374d..f25f96106faec 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -433,20 +433,6 @@ pub struct TransactionInfo { pub transaction_signed: TransactionSigned, } -#[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, -)] -pub struct PartialSignedTransactionInfo { - /// from address - pub from: Address, - /// transaction hash - pub hash: H256, - /// transaction index - pub transaction_index: U256, - /// transaction signed - pub transaction_signed: TransactionSigned, -} - #[derive(Debug, Clone, Serialize, Deserialize, From, TryInto, Eq, PartialEq)] #[serde(untagged)] pub enum TransactionUnsigned { From 1cfc1d038977964d02fccdc774c24893341dfbac Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 12:21:10 +0000 Subject: [PATCH 075/273] revieve: Remove decoder with mem Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/api/byte.rs | 4 +-- .../frame/revive/src/evm/api/rpc_types_gen.rs | 26 +++---------------- 2 files changed, 5 insertions(+), 25 deletions(-) diff --git a/substrate/frame/revive/src/evm/api/byte.rs b/substrate/frame/revive/src/evm/api/byte.rs index 0ea0bbc0f2950..3fd1e581576f9 100644 --- a/substrate/frame/revive/src/evm/api/byte.rs +++ b/substrate/frame/revive/src/evm/api/byte.rs @@ -19,7 +19,7 @@ use super::hex_serde::HexCodec; use alloc::{vec, vec::Vec}; use alloy_core::hex; -use codec::{Decode, DecodeWithMemTracking, Encode}; +use codec::{Decode, Encode}; use core::{ fmt::{Debug, Display, Formatter, Result as FmtResult}, str::FromStr, @@ -37,7 +37,7 @@ impl FromStr for Bytes { macro_rules! impl_hex { ($type:ident, $inner:ty, $default:expr) => { - #[derive(Encode, Decode, Eq, PartialEq, Ord, PartialOrd, TypeInfo, Clone, Serialize, Deserialize, DecodeWithMemTracking, Hash)] + #[derive(Encode, Decode, Eq, PartialEq, Ord, PartialOrd, TypeInfo, Clone, Serialize, Deserialize, Hash)] #[doc = concat!("`", stringify!($inner), "`", " wrapper type for encoding and decoding hex strings")] pub struct $type(#[serde(with = "crate::evm::api::hex_serde")] pub $inner); 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 f25f96106faec..dcae6e5f3e707 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -19,7 +19,7 @@ use super::{byte::*, TypeEip1559, TypeEip2930, TypeEip4844, TypeLegacy}; use alloc::vec::Vec; -use codec::{Decode, DecodeWithMemTracking, Encode}; +use codec::{Decode, Encode}; use derive_more::{From, TryInto}; pub use ethereum_types::*; use scale_info::TypeInfo; @@ -317,17 +317,7 @@ pub struct GenericTransaction { /// Receipt information #[derive( - Debug, - Default, - Clone, - Serialize, - Deserialize, - Eq, - PartialEq, - TypeInfo, - Encode, - Decode, - DecodeWithMemTracking, + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, )] pub struct ReceiptInfo { /// blob gas price @@ -514,17 +504,7 @@ impl Default for HashesOrTransactionInfos { /// log #[derive( - Debug, - Default, - Clone, - Serialize, - Deserialize, - Eq, - PartialEq, - TypeInfo, - Encode, - Decode, - DecodeWithMemTracking, + Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, )] pub struct Log { /// address From 59a2d1cebb95692f60e1565667a7689a24acc9e6 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 12:24:29 +0000 Subject: [PATCH 076/273] revive: Fix clippy Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index c1eeaedcac6bd..08d108073734a 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -216,7 +216,7 @@ impl EthBlockBuilder { receipts_root: alloy_primitives::B256, ) -> H256 { let alloy_header = alloy_consensus::Header { - state_root: transactions_root.clone(), + state_root: transactions_root, transactions_root, receipts_root, From 4b60ea31bcb113e791e0c73bdaf7c39fbec08849 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 12:28:16 +0000 Subject: [PATCH 077/273] revive: Fix typo documentation Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 08d108073734a..9d8b664e6bd08 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -96,7 +96,7 @@ impl EthBlockBuilder { /// - This includes computing the bloom filter for the logs (O(N) to compute) /// - The receipt is 2718 RLP encoded: the cost is O(N) to encode due to the number of logs. /// - /// (II) Transaction trie roto and receipt trie root are computed. + /// (II) Transaction trie root and receipt trie root are computed. /// /// (III) Block hash is computed from the provided information. pub fn build( From a558ed3f1d512b770f70d7ca020055c3b104cb85 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 12:31:20 +0000 Subject: [PATCH 078/273] revive: Add a bit more details into docs Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 9d8b664e6bd08..66924234ee9b7 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -75,7 +75,7 @@ impl EthBlockBuilder { timestamp, block_author, gas_limit, - + // The following fields are populated by `process_transaction_details`. tx_hashes: Vec::new(), total_gas_used: U256::zero(), logs_bloom: Bytes256::default(), @@ -119,17 +119,15 @@ impl EthBlockBuilder { let block_hash = self.header_hash(transactions_root, receipts_root); let block = EthBlock { - parent_hash: self.parent_hash.into(), - miner: self.block_author.into(), - state_root: transactions_root.0.into(), transactions_root: transactions_root.0.into(), receipts_root: receipts_root.0.into(), + parent_hash: self.parent_hash.into(), + miner: self.block_author.into(), logs_bloom: self.logs_bloom, total_difficulty: Some(U256::zero()), number: self.block_number.into(), - gas_limit: self.gas_limit, gas_used: self.total_gas_used, timestamp: self.timestamp, From af9f0de4488983b2eb10200a0d80b51a49767a51 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 15 Aug 2025 13:01:27 +0000 Subject: [PATCH 079/273] revive: Add comments wrt weights used Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 49 +++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index c48d3ba5085b2..14a3e2d73ad14 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -639,6 +639,55 @@ pub mod pallet { fn on_initialize(_n: BlockNumberFor) -> Weight { // TODO: Account for future transactions here in the on_finalize. + + // The pallet executes the following memory operations: + // + // For every emitted event of type `Event::ContractEmitted`: + // (I) During collection: + // - read: InflightEvents::::count() + // - write: InflightEvents::::insert + // + // (II) After transaction is executed: + // - read: InflightEvents::::count() internally by InflightEvents::::drain() + // - read: Provide the key, value internally by InflightEvents::::drain() + // - write: Remove key internally by InflightEvents::::drain() + // Therefore, we have 2 reads and 2 writes per event, plus one extra read per total + // (count). + // + // Cost(Events) = (2r + 2w) * N + 1r + // + // For every transaction: + // (I) Cost incurred by the emitted event + // + // (II) After transaction is executed: + // - read: frame_system::Pallet::::extrinsic_index() + // - read: InflightTransactions::::count() + // - write: InflightTransactions::::insert() + // + // Cost(Txs) = Cost(Events) + (1r + 1r) * M + 1r + // + // On finalize operations: + // (I) Operating with transactions: + // - read: InflightTransactions::::count() internally by + // InflightTransactions::::drain() + // - read: Provide key, value internally by InflightTransactions::::drain() + // - write: Remove key internally by InflightTransactions::::drain() + // + // (II) Parent hash + // - read: BlockHash::::get() + // + // (III) Storage propagation + // - write: BlockHash::::insert() (insert number to hash mapping) + // - write EthereumBlock::::put() (insert block into storage) + // + // Cost(on_finalize) = Cost(Txs) + (1r + 1r) * M + 1r + 1r + 2w + // + // Total cost: + // (2r + 2w) * N + 1r + (1r + 1r) * M + 1r + (1r + 1r) * M + 1r + 1r + 2w + // = 4 M (r + w) + 2 N * (r + w) + 4r + 2w + // + // Note: This does not account for the cost of computing the state tries. + Weight::zero() } From 89be061680b3a5755b55a53e31acdd89e7ae760e Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 18 Aug 2025 09:28:54 +0000 Subject: [PATCH 080/273] revive/tx: Extract the effective gas price from signed transactions Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rpc_types_gen.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 dcae6e5f3e707..2c69827b3b362 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -703,12 +703,30 @@ pub enum TransactionSigned { Transaction2930Signed(Transaction2930Signed), TransactionLegacySigned(TransactionLegacySigned), } + impl Default for TransactionSigned { fn default() -> Self { TransactionSigned::TransactionLegacySigned(Default::default()) } } +impl TransactionSigned { + /// Get the effective gas price. + pub fn effective_gas_price(&self, base_gas_price: U256) -> U256 { + match &self { + TransactionSigned::TransactionLegacySigned(tx) => + tx.transaction_legacy_unsigned.gas_price, + TransactionSigned::Transaction4844Signed(tx) => base_gas_price + .saturating_add(tx.transaction_4844_unsigned.max_priority_fee_per_gas) + .min(tx.transaction_4844_unsigned.max_fee_per_blob_gas), + TransactionSigned::Transaction1559Signed(tx) => base_gas_price + .saturating_add(tx.transaction_1559_unsigned.max_priority_fee_per_gas) + .min(tx.transaction_1559_unsigned.max_fee_per_gas), + TransactionSigned::Transaction2930Signed(tx) => tx.transaction_2930_unsigned.gas_price, + } + } +} + /// Validator withdrawal #[derive( Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, From 4fdd001ddd23ad4fa6e467cd9753186053c647d3 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 18 Aug 2025 09:29:24 +0000 Subject: [PATCH 081/273] revive: Replace emitted events with storage values Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 43 +++++++++++++----- substrate/frame/revive/src/lib.rs | 47 ++++++-------------- 2 files changed, 46 insertions(+), 44 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 66924234ee9b7..abe6ed78b92e1 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -25,12 +25,31 @@ use crate::{ use alloc::vec::Vec; use alloy_consensus::RlpEncodableReceipt; use alloy_core::primitives::bytes::BufMut; +use codec::{Decode, Encode}; use frame_support::weights::Weight; +use scale_info::TypeInfo; use sp_core::{keccak_256, H160, H256, U256}; /// The transaction details captured by the revive pallet. pub type TransactionDetails = (Vec, u32, Vec>, bool, Weight); +/// Details needed to reconstruct the receipt info in the RPC +/// layer without losing accuracy. +#[derive(Encode, Decode, TypeInfo)] +pub struct ReconstructReceiptInfo { + /// The actual value per gas deducted from the sender's account. Before EIP-1559, this + /// is equal to the transaction's gas price. After, it is equal to baseFeePerGas + + /// min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas). + /// + /// Note: Since there's a runtime API to extract the base gas fee (`fn gas_price()`) + /// and we have access to the `TransactionSigned` struct, we can compute the effective gas + /// price in the RPC layer. + effective_gas_price: U256, + + /// The amount of gas used for this specific transaction alone. + gas_used: U256, +} + /// Builder of the ETH block. pub struct EthBlockBuilder { /// Current block number. @@ -38,7 +57,7 @@ pub struct EthBlockBuilder { /// Parent block hash. parent_hash: H256, /// The base gas price of the block. - _base_gas_price: U256, + base_gas_price: U256, /// The timestamp of the block. timestamp: U256, /// The author of the block. @@ -50,8 +69,10 @@ pub struct EthBlockBuilder { logs_bloom: Bytes256, /// Total gas used by transactions in the block. total_gas_used: U256, - // The transaction hashes that will be placed in the ETH block. + /// The transaction hashes that will be placed in the ETH block. tx_hashes: Vec, + /// The data needed to reconstruct the receipt info. + receipt_data: Vec, } impl EthBlockBuilder { @@ -71,7 +92,7 @@ impl EthBlockBuilder { Self { block_number, parent_hash, - _base_gas_price: base_gas_price, + base_gas_price, timestamp, block_author, gas_limit, @@ -79,6 +100,7 @@ impl EthBlockBuilder { tx_hashes: Vec::new(), total_gas_used: U256::zero(), logs_bloom: Bytes256::default(), + receipt_data: Vec::new(), } } @@ -102,7 +124,7 @@ impl EthBlockBuilder { pub fn build( mut self, details: impl IntoIterator>, - ) -> (H256, EthBlock) + ) -> (H256, EthBlock, Vec) where T: crate::pallet::Config, { @@ -137,7 +159,7 @@ impl EthBlockBuilder { ..Default::default() }; - (block_hash, block) + (block_hash, block, self.receipt_data) } /// Returns a tuple of the RLP encoded transaction and receipt. @@ -158,6 +180,11 @@ impl EthBlockBuilder { let transaction_hash = H256(keccak_256(&payload)); self.tx_hashes.push(transaction_hash); + self.receipt_data.push(ReconstructReceiptInfo { + effective_gas_price: signed_tx.effective_gas_price(self.base_gas_price), + gas_used: gas.ref_time().into(), + }); + let logs = events .into_iter() .filter_map(|event| { @@ -178,12 +205,6 @@ impl EthBlockBuilder { self.total_gas_used += gas.ref_time().into(); - // Note: an event can be emitted here if we need extra transaction details. - // let _event: Event = Event::Receipt { - // effective_gas_price: self.base_gas_price.into(), - // gas_used: gas.ref_time().into(), - // }; - let receipt = alloy_consensus::Receipt { status: success.into(), cumulative_gas_used: self.total_gas_used.as_u64(), diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 14a3e2d73ad14..b0ed972d149f8 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,9 +45,10 @@ pub mod weights; use crate::{ evm::{ - block_hash::EthBlockBuilder, runtime::GAS_PRICE, CallTracer, GasEncoder, - GenericTransaction, HashesOrTransactionInfos, PrestateTracer, Trace, Tracer, TracerType, - TYPE_EIP1559, + block_hash::{EthBlockBuilder, ReconstructReceiptInfo}, + runtime::GAS_PRICE, + CallTracer, GasEncoder, GenericTransaction, HashesOrTransactionInfos, PrestateTracer, + Trace, Tracer, TracerType, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Stack as ExecStack}, gas::GasMeter, @@ -379,20 +380,6 @@ pub mod pallet { /// Contract deployed by deployer at the specified address. Instantiated { deployer: H160, contract: H160 }, - - /// Mandatory receipt information of an Ethereum transaction. - /// - /// This contains the minimal information needed to reconstruct the receipt information - /// without losing accuracy. - Receipt { - /// The actual value per gas deducted from the sender's account. Before EIP-1559, this - /// is equal to the transaction's gas price. After, it is equal to baseFeePerGas + - /// min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas). - effective_gas_price: U256, - - /// The amount of gas used for this specific transaction alone. - gas_used: U256, - }, } #[pallet::error] @@ -601,6 +588,13 @@ pub mod pallet { #[pallet::storage] pub type BlockHash = StorageMap<_, Twox64Concat, U256, H256, ValueQuery>; + /// The details needed to reconstruct the receipt info offchain. + /// + /// This contains valuable information about the gas used by the transaction. + #[pallet::storage] + #[pallet::unbounded] + pub type ReceiptInfoData = StorageValue<_, Vec, ValueQuery>; + #[pallet::genesis_config] #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { @@ -723,7 +717,7 @@ pub mod pallet { ); // The most expensive operation of this hook. Please check // the method's documentation for computational details. - let (block_hash, block) = block_builder.build(transactions); + let (block_hash, block, receipt_data) = block_builder.build(transactions); // Put the block hash into storage. BlockHash::::insert(eth_block_num, block_hash); @@ -738,6 +732,8 @@ pub mod pallet { } // Store the ETH block into the last block. EthereumBlock::::put(block); + // Store the receipt info data for offchain reconstruction. + ReceiptInfoData::::put(receipt_data); } fn integrity_test() { @@ -1814,14 +1810,6 @@ impl Pallet { let events_count = InflightEvents::::count(); // TODO: ensure we don't exceed a maximum number of events per tx. InflightEvents::::insert(events_count, event.clone()); - - Self::deposit_event_unstored(event) - } - - /// Deposit a pallet event. - /// - /// This does not store the event into storage for Ethereum block processing. - fn deposit_event_unstored(event: Event) { >::deposit_event(::RuntimeEvent::from(event)) } @@ -1837,13 +1825,6 @@ impl Pallet { 0 }); - // Emit an event for the gas consumed by the transaction. - Self::deposit_event_unstored(Event::Receipt { - // TODO: Should this be the GenericTransaction.gas_price field here? - effective_gas_price: GAS_PRICE.into(), - gas_used: gas_consumed.ref_time().into(), - }); - let transactions_count = InflightTransactions::::count(); InflightTransactions::::insert( transactions_count, From 62fd30174c1babe55305b1ad839746f9e02a4c90 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 18 Aug 2025 09:32:32 +0000 Subject: [PATCH 082/273] revive: Store only `Event::ContractEmitted` Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index b0ed972d149f8..d072e00f3105e 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1807,9 +1807,12 @@ impl Pallet { /// This method will be called by the EVM to deposit events emitted by the contract. /// Therefore all events must be contract emitted events. fn deposit_event(event: Event) { - let events_count = InflightEvents::::count(); - // TODO: ensure we don't exceed a maximum number of events per tx. - InflightEvents::::insert(events_count, event.clone()); + if matches!(event, Event::ContractEmitted { .. }) { + let events_count = InflightEvents::::count(); + // TODO: ensure we don't exceed a maximum number of events per tx. + InflightEvents::::insert(events_count, event.clone()); + } + >::deposit_event(::RuntimeEvent::from(event)) } From 68f6019b89ade6d540b9d90c2290fddedee9c49c Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 18 Aug 2025 09:40:09 +0000 Subject: [PATCH 083/273] revive/block_hash: Cap gas limit of the block to u64::MAX Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index abe6ed78b92e1..161f9ef3da4dd 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -234,6 +234,12 @@ impl EthBlockBuilder { transactions_root: alloy_primitives::B256, receipts_root: alloy_primitives::B256, ) -> H256 { + // Note: Cap the gas limit to u64::MAX. + // In practice, it should be impossible to fill a u64::MAX gas limit + // of an either Ethereum or Substrate block. + let gas_limit = + if self.gas_limit > u64::MAX.into() { u64::MAX } else { self.gas_limit.as_u64() }; + let alloy_header = alloy_consensus::Header { state_root: transactions_root, transactions_root, @@ -243,7 +249,7 @@ impl EthBlockBuilder { beneficiary: self.block_author.0.into(), number: self.block_number.as_u64(), logs_bloom: self.logs_bloom.0.into(), - gas_limit: self.gas_limit.as_u64(), + gas_limit, gas_used: self.total_gas_used.as_u64(), timestamp: self.timestamp.as_u64(), From 22eda99c05ac1cfd2fe9a5ae2e66d1b8d92b44e6 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 18 Aug 2025 09:40:26 +0000 Subject: [PATCH 084/273] revive: Adjust weight estimates comment Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index d072e00f3105e..ecbdf4b4260b9 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -673,12 +673,13 @@ pub mod pallet { // (III) Storage propagation // - write: BlockHash::::insert() (insert number to hash mapping) // - write EthereumBlock::::put() (insert block into storage) + // - write ReceiptInfoData::::put() (insert receipt data into storage) // - // Cost(on_finalize) = Cost(Txs) + (1r + 1r) * M + 1r + 1r + 2w + // Cost(on_finalize) = Cost(Txs) + (1r + 1r) * M + 1r + 1r + 3w // // Total cost: - // (2r + 2w) * N + 1r + (1r + 1r) * M + 1r + (1r + 1r) * M + 1r + 1r + 2w - // = 4 M (r + w) + 2 N * (r + w) + 4r + 2w + // (2r + 2w) * N + 1r + (1r + 1r) * M + 1r + (1r + 1r) * M + 1r + 1r + 3w + // = 4 M (r + w) + 2 N * (r + w) + 4r + 3w // // Note: This does not account for the cost of computing the state tries. From d1d75d99fa21623bd392395a6311bd6984847af8 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 18 Aug 2025 10:53:13 +0000 Subject: [PATCH 085/273] revive: Remove the block hash config param Signed-off-by: Alexandru Vasile --- .../assets/asset-hub-westend/src/lib.rs | 2 -- .../runtimes/testing/penpal/src/lib.rs | 2 -- substrate/bin/node/runtime/src/lib.rs | 5 ----- .../frame/revive/dev-node/runtime/src/lib.rs | 2 -- substrate/frame/revive/src/lib.rs | 17 ++++++----------- 5 files changed, 6 insertions(+), 22 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 3039d30d4a1f4..707db8dbfcf96 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -1162,7 +1162,6 @@ parameter_types! { pub const DepositPerItem: Balance = deposit(1, 0); pub const DepositPerByte: Balance = deposit(0, 1); pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); - pub const BlockHashCountRevive: u32 = 256; } impl pallet_revive::Config for Runtime { @@ -1192,7 +1191,6 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); type FindAuthor = ::FindAuthor; - type BlockHashCount = BlockHashCountRevive; } parameter_types! { diff --git a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs index 548c172924986..1785cd06a8e91 100644 --- a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs @@ -837,7 +837,6 @@ parameter_types! { pub const DepositPerItem: Balance = 0; pub const DepositPerByte: Balance = 0; pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); - pub const BlockHashCountRevive: u32 = 256; } impl pallet_revive::Config for Runtime { @@ -863,7 +862,6 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); type FindAuthor = ::FindAuthor; - type BlockHashCount = BlockHashCountRevive; } impl pallet_sudo::Config for Runtime { diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index e3f032e619846..a983aee0574e2 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1467,10 +1467,6 @@ impl pallet_contracts::Config for Runtime { type Xcm = (); } -parameter_types! { - pub const BlockHashCountRevive: u32 = 256; -} - impl pallet_revive::Config for Runtime { type Time = Timestamp; type Currency = Balances; @@ -1495,7 +1491,6 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); type FindAuthor = ::FindAuthor; - type BlockHashCount = BlockHashCountRevive; } impl pallet_sudo::Config for Runtime { diff --git a/substrate/frame/revive/dev-node/runtime/src/lib.rs b/substrate/frame/revive/dev-node/runtime/src/lib.rs index 7838053f7eeb8..9cecfd4cee5d1 100644 --- a/substrate/frame/revive/dev-node/runtime/src/lib.rs +++ b/substrate/frame/revive/dev-node/runtime/src/lib.rs @@ -317,7 +317,6 @@ impl pallet_transaction_payment::Config for Runtime { parameter_types! { pub CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(30); - pub const BlockHashCountRevive: u32 = 256; } #[derive_impl(pallet_revive::config_preludes::TestDefaultConfig)] @@ -331,7 +330,6 @@ impl pallet_revive::Config for Runtime { type InstantiateOrigin = EnsureSigned; type Time = Timestamp; type LengthToFee = ::LengthToFee; - type BlockHashCount = BlockHashCountRevive; } pallet_revive::impl_runtime_apis_plus_revive!( diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index ecbdf4b4260b9..c4d388db791e2 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -122,6 +122,9 @@ pub(crate) type OnChargeTransactionBalanceOf = <>; - - /// Maximum number of block number to block hash mappings to keep (oldest pruned first). - #[pallet::constant] - #[pallet::no_default_bounds] - type BlockHashCount: Get>; } /// Container for different types that implement [`DefaultConfig`]` of this pallet. @@ -312,7 +310,6 @@ pub mod pallet { pub const DepositPerItem: Balance = deposit(1, 0); pub const DepositPerByte: Balance = deposit(0, 1); pub const CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(0); - pub const BlockHashCount: u64 = 256; } /// A type providing default configurations for this pallet in testing environment. @@ -360,7 +357,6 @@ pub mod pallet { type NativeToEthRatio = ConstU32<1_000_000>; type EthGasEncoder = (); type FindAuthor = (); - type BlockHashCount = BlockHashCount; } } @@ -584,7 +580,7 @@ pub mod pallet { /// Mapping for block number and hashes. /// - /// The maximum number of elements stored is capped by the block hash count `BlockHashCount`. + /// The maximum number of elements stored is capped by the block hash count `BLOCK_HASH_COUNT`. #[pallet::storage] pub type BlockHash = StorageMap<_, Twox64Concat, U256, H256, ValueQuery>; @@ -723,7 +719,7 @@ pub mod pallet { BlockHash::::insert(eth_block_num, block_hash); // Prune older block hashes. - let block_hash_count = ::BlockHashCount::get(); + let block_hash_count = BLOCK_HASH_COUNT; let to_remove = eth_block_num.saturating_sub(block_hash_count.into()).saturating_sub(One::one()); if !to_remove.is_zero() { @@ -1626,8 +1622,7 @@ where /// # Note /// /// The Ethereum block number is identical to the Substrate block number. - /// If the provided block number is outside of the pruning window defined by - /// `BlockHashCount` constant, then None is returned. + /// If the provided block number is outside of the pruning None is returned. pub fn eth_block_hash_from_number(number: U256) -> Option { let hash = >::get(number); if hash == H256::zero() { From 00f117830f78cd4284e4f7b3f478c80f65dcd98b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 18 Aug 2025 10:54:38 +0000 Subject: [PATCH 086/273] revive/tx: Use signed_payload instead of custom encoding fn Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/api/rlp_codec.rs | 16 ---------------- substrate/frame/revive/src/evm/block_hash.rs | 2 +- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/substrate/frame/revive/src/evm/api/rlp_codec.rs b/substrate/frame/revive/src/evm/api/rlp_codec.rs index e06823e3d914c..4094c963ac204 100644 --- a/substrate/frame/revive/src/evm/api/rlp_codec.rs +++ b/substrate/frame/revive/src/evm/api/rlp_codec.rs @@ -99,22 +99,6 @@ impl TransactionSigned { _ => rlp::decode::(data).map(Into::into), } } - - /// Encode the Ethereum transaction into bytes. - pub fn encode_2718(&self) -> Vec { - use alloc::vec; - use TransactionSigned::*; - - match self { - Transaction2930Signed(ref tx) => - vec![TYPE_EIP2930].into_iter().chain(rlp::encode(tx).into_iter()).collect(), - Transaction1559Signed(ref tx) => - vec![TYPE_EIP1559].into_iter().chain(rlp::encode(tx).into_iter()).collect(), - Transaction4844Signed(ref tx) => - vec![TYPE_EIP4844].into_iter().chain(rlp::encode(tx).into_iter()).collect(), - TransactionLegacySigned(ref tx) => rlp::encode(tx).to_vec(), - } - } } impl TransactionUnsigned { diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 161f9ef3da4dd..7f93a544c17d5 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -218,7 +218,7 @@ impl EthBlockBuilder { Vec::with_capacity(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); - Some((signed_tx.encode_2718(), encoded_receipt)) + Some((signed_tx.signed_payload(), encoded_receipt)) } /// Compute the trie root using the `(rlp(index), encoded(item))` pairs. From c6eddee7b60e980c5fa671d1b03d375c23dd439f Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 19 Aug 2025 10:43:33 +0000 Subject: [PATCH 087/273] revive: Rename to ReceiptGasInfo Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 14 +++++++------- substrate/frame/revive/src/lib.rs | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 7f93a544c17d5..41c1d6afeeed8 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -35,8 +35,8 @@ pub type TransactionDetails = (Vec, u32, Vec>, bool, Weight); /// Details needed to reconstruct the receipt info in the RPC /// layer without losing accuracy. -#[derive(Encode, Decode, TypeInfo)] -pub struct ReconstructReceiptInfo { +#[derive(Encode, Decode, TypeInfo, Clone)] +pub struct ReceiptGasInfo { /// The actual value per gas deducted from the sender's account. Before EIP-1559, this /// is equal to the transaction's gas price. After, it is equal to baseFeePerGas + /// min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas). @@ -44,10 +44,10 @@ pub struct ReconstructReceiptInfo { /// Note: Since there's a runtime API to extract the base gas fee (`fn gas_price()`) /// and we have access to the `TransactionSigned` struct, we can compute the effective gas /// price in the RPC layer. - effective_gas_price: U256, + pub effective_gas_price: U256, /// The amount of gas used for this specific transaction alone. - gas_used: U256, + pub gas_used: U256, } /// Builder of the ETH block. @@ -72,7 +72,7 @@ pub struct EthBlockBuilder { /// The transaction hashes that will be placed in the ETH block. tx_hashes: Vec, /// The data needed to reconstruct the receipt info. - receipt_data: Vec, + receipt_data: Vec, } impl EthBlockBuilder { @@ -124,7 +124,7 @@ impl EthBlockBuilder { pub fn build( mut self, details: impl IntoIterator>, - ) -> (H256, EthBlock, Vec) + ) -> (H256, EthBlock, Vec) where T: crate::pallet::Config, { @@ -180,7 +180,7 @@ impl EthBlockBuilder { let transaction_hash = H256(keccak_256(&payload)); self.tx_hashes.push(transaction_hash); - self.receipt_data.push(ReconstructReceiptInfo { + self.receipt_data.push(ReceiptGasInfo { effective_gas_price: signed_tx.effective_gas_price(self.base_gas_price), gas_used: gas.ref_time().into(), }); diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index c4d388db791e2..833172bb3caf8 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,7 +45,7 @@ pub mod weights; use crate::{ evm::{ - block_hash::{EthBlockBuilder, ReconstructReceiptInfo}, + block_hash::{EthBlockBuilder, ReceiptGasInfo}, runtime::GAS_PRICE, CallTracer, GasEncoder, GenericTransaction, HashesOrTransactionInfos, PrestateTracer, Trace, Tracer, TracerType, TYPE_EIP1559, @@ -589,7 +589,7 @@ pub mod pallet { /// This contains valuable information about the gas used by the transaction. #[pallet::storage] #[pallet::unbounded] - pub type ReceiptInfoData = StorageValue<_, Vec, ValueQuery>; + pub type ReceiptInfoData = StorageValue<_, Vec, ValueQuery>; #[pallet::genesis_config] #[derive(frame_support::DefaultNoBound)] From d56af9a2fe779354ae97c3800826c392031310e5 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 19 Aug 2025 10:44:39 +0000 Subject: [PATCH 088/273] revive: Impl default for EthBlockBluilder Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 41c1d6afeeed8..5d4c24e36b292 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -51,6 +51,7 @@ pub struct ReceiptGasInfo { } /// Builder of the ETH block. +#[derive(Default)] pub struct EthBlockBuilder { /// Current block number. block_number: U256, @@ -96,11 +97,9 @@ impl EthBlockBuilder { timestamp, block_author, gas_limit, - // The following fields are populated by `process_transaction_details`. - tx_hashes: Vec::new(), - total_gas_used: U256::zero(), - logs_bloom: Bytes256::default(), - receipt_data: Vec::new(), + + // The remaining fields are populated by `process_transaction_details`. + ..Default::default() } } From b04d4bbaaf6451e1e6b2cc829b5aba0e92335d23 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 19 Aug 2025 10:50:54 +0000 Subject: [PATCH 089/273] revive: Add a evm base gas price to future proof Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 833172bb3caf8..a2a35c08b2136 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -699,7 +699,7 @@ pub mod pallet { } else { H256::default() }; - let base_gas_price = GAS_PRICE.into(); + let base_gas_price = Self::evm_base_gas_price().into(); let gas_limit = Self::evm_block_gas_limit(); // This touches the storage, must account for weights. let transactions = InflightTransactions::::drain().map(|(_index, details)| details); @@ -1689,6 +1689,11 @@ where GAS_PRICE.into() } + /// Get the base gas price. + pub fn evm_base_gas_price() -> U256 { + GAS_PRICE.into() + } + /// Build an EVM tracer from the given tracer type. pub fn evm_tracer(tracer_type: TracerType) -> Tracer where From 16e5f191e06a57a04dce3f8158719217d92d79ec Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 19 Aug 2025 11:23:30 +0000 Subject: [PATCH 090/273] revive: Collect only related events Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index a2a35c08b2136..b8db19c414b52 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -548,6 +548,10 @@ pub mod pallet { pub(crate) type InflightEvents = CountedStorageMap<_, Identity, u32, Event, OptionQuery>; + /// True if the events must be collected. + #[pallet::storage] + pub(crate) type CollectInflightEvents = StorageValue<_, bool, ValueQuery>; + /// The EVM submitted transactions that are inflight for the current block. /// /// The transactions are needed to construct the ETH block. @@ -1031,6 +1035,8 @@ pub mod pallet { data: Vec, payload: Vec, ) -> DispatchResultWithPostInfo { + CollectInflightEvents::::put(true); + let code_len = code.len() as u32; let data_len = data.len() as u32; let mut output = Self::bare_instantiate( @@ -1053,6 +1059,7 @@ pub mod pallet { // TODO: Should we report `gas_consumed.saturating_add(base_weight)` instead? // If so, we might need to capture this from inside the `dispatch_result`. Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); + CollectInflightEvents::::put(false); dispatch_result( output.result.map(|result| result.result), @@ -1078,6 +1085,7 @@ pub mod pallet { data: Vec, payload: Vec, ) -> DispatchResultWithPostInfo { + CollectInflightEvents::::put(true); let mut output = Self::bare_call( origin, dest, @@ -1094,6 +1102,7 @@ pub mod pallet { } Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); + CollectInflightEvents::::put(false); dispatch_result( output.result, @@ -1808,7 +1817,7 @@ impl Pallet { /// This method will be called by the EVM to deposit events emitted by the contract. /// Therefore all events must be contract emitted events. fn deposit_event(event: Event) { - if matches!(event, Event::ContractEmitted { .. }) { + if CollectInflightEvents::::get() && matches!(event, Event::ContractEmitted { .. }) { let events_count = InflightEvents::::count(); // TODO: ensure we don't exceed a maximum number of events per tx. InflightEvents::::insert(events_count, event.clone()); From 39ffb2bd63835a14f732cb8dfeed049eaa8b8380 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 19 Aug 2025 15:47:46 +0000 Subject: [PATCH 091/273] Revert "revive: Collect only related events" This reverts commit 16e5f191e06a57a04dce3f8158719217d92d79ec. --- substrate/frame/revive/src/lib.rs | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 6fb9a5a06e617..990c17789a9ea 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -548,10 +548,6 @@ pub mod pallet { pub(crate) type InflightEvents = CountedStorageMap<_, Identity, u32, Event, OptionQuery>; - /// True if the events must be collected. - #[pallet::storage] - pub(crate) type CollectInflightEvents = StorageValue<_, bool, ValueQuery>; - /// The EVM submitted transactions that are inflight for the current block. /// /// The transactions are needed to construct the ETH block. @@ -1035,8 +1031,6 @@ pub mod pallet { data: Vec, payload: Vec, ) -> DispatchResultWithPostInfo { - CollectInflightEvents::::put(true); - let code_len = code.len() as u32; let data_len = data.len() as u32; let mut output = Self::bare_instantiate( @@ -1059,7 +1053,6 @@ pub mod pallet { // TODO: Should we report `gas_consumed.saturating_add(base_weight)` instead? // If so, we might need to capture this from inside the `dispatch_result`. Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); - CollectInflightEvents::::put(false); dispatch_result( output.result.map(|result| result.result), @@ -1085,7 +1078,6 @@ pub mod pallet { data: Vec, payload: Vec, ) -> DispatchResultWithPostInfo { - CollectInflightEvents::::put(true); let mut output = Self::bare_call( origin, dest, @@ -1102,7 +1094,6 @@ pub mod pallet { } Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); - CollectInflightEvents::::put(false); dispatch_result( output.result, @@ -1817,7 +1808,7 @@ impl Pallet { /// This method will be called by the EVM to deposit events emitted by the contract. /// Therefore all events must be contract emitted events. fn deposit_event(event: Event) { - if CollectInflightEvents::::get() && matches!(event, Event::ContractEmitted { .. }) { + if matches!(event, Event::ContractEmitted { .. }) { let events_count = InflightEvents::::count(); // TODO: ensure we don't exceed a maximum number of events per tx. InflightEvents::::insert(events_count, event.clone()); From 1d4d722a28753ad630dba4f90a1f6080b6d08c83 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 19 Aug 2025 15:51:55 +0000 Subject: [PATCH 092/273] revive: Add comment for ReceiptInfoData Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 990c17789a9ea..e78464d3ebe0b 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -587,6 +587,9 @@ pub mod pallet { /// The details needed to reconstruct the receipt info offchain. /// /// This contains valuable information about the gas used by the transaction. + /// + /// NOTE: The item is unbound and should therefore never be read on chain. + /// It could otherwise inflate the PoV size of a block. #[pallet::storage] #[pallet::unbounded] pub type ReceiptInfoData = StorageValue<_, Vec, ValueQuery>; From fa4409b2221b9c3fae78918ddb270ae1d370ef60 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 19 Aug 2025 16:04:41 +0000 Subject: [PATCH 093/273] revive: Use storage value for inflight events Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index e78464d3ebe0b..59464a9b589f8 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -545,8 +545,7 @@ pub mod pallet { /// completed and moved to the `InflightTransactions` storage object. #[pallet::storage] #[pallet::unbounded] - pub(crate) type InflightEvents = - CountedStorageMap<_, Identity, u32, Event, OptionQuery>; + pub(crate) type InflightEvents = StorageValue<_, Vec>, ValueQuery>; /// The EVM submitted transactions that are inflight for the current block. /// @@ -690,7 +689,7 @@ pub mod pallet { // Finding the block author traverses the digest logs. let Some(block_author) = Self::block_author() else { // Drain storage in case of errors. - InflightEvents::::drain(); + InflightEvents::::kill(); InflightTransactions::::drain(); return; }; @@ -1812,9 +1811,10 @@ impl Pallet { /// Therefore all events must be contract emitted events. fn deposit_event(event: Event) { if matches!(event, Event::ContractEmitted { .. }) { - let events_count = InflightEvents::::count(); // TODO: ensure we don't exceed a maximum number of events per tx. - InflightEvents::::insert(events_count, event.clone()); + InflightEvents::::mutate(|events| { + events.push(event.clone()); + }); } >::deposit_event(::RuntimeEvent::from(event)) @@ -1825,7 +1825,7 @@ impl Pallet { /// The data is used during the `on_finalize` hook to reconstruct the ETH block. fn store_transaction(payload: Vec, success: bool, gas_consumed: Weight) { // Collect inflight events emitted by this EVM transaction. - let events = InflightEvents::::drain().map(|(_idx, event)| event).collect::>(); + let events = InflightEvents::::take(); let extrinsic_index = frame_system::Pallet::::extrinsic_index().unwrap_or_else(|| { log::warn!(target: LOG_TARGET, "Extrinsic index is not set, using default value 0"); From 66dfcfe3f40be41cab70d70e0e04f0b324f72986 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 19 Aug 2025 16:07:58 +0000 Subject: [PATCH 094/273] revive: Use storage value for inflight txes Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 59464a9b589f8..ff6710d1f38d5 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -556,13 +556,8 @@ pub mod pallet { /// the gas consumed. #[pallet::storage] #[pallet::unbounded] - pub(crate) type InflightTransactions = CountedStorageMap< - _, - Identity, - u32, - (Vec, u32, Vec>, bool, Weight), - OptionQuery, - >; + pub(crate) type InflightTransactions = + StorageValue<_, Vec<(Vec, u32, Vec>, bool, Weight)>, ValueQuery>; /// The current Ethereum block that is stored in the `on_finalize` method. /// @@ -690,7 +685,7 @@ pub mod pallet { let Some(block_author) = Self::block_author() else { // Drain storage in case of errors. InflightEvents::::kill(); - InflightTransactions::::drain(); + InflightTransactions::::kill(); return; }; @@ -704,7 +699,7 @@ pub mod pallet { let base_gas_price = Self::evm_base_gas_price().into(); let gas_limit = Self::evm_block_gas_limit(); // This touches the storage, must account for weights. - let transactions = InflightTransactions::::drain().map(|(_index, details)| details); + let transactions = InflightTransactions::::take(); let block_builder = EthBlockBuilder::new( eth_block_num, @@ -1832,11 +1827,9 @@ impl Pallet { 0 }); - let transactions_count = InflightTransactions::::count(); - InflightTransactions::::insert( - transactions_count, - (payload, extrinsic_index, events, success, gas_consumed), - ); + InflightTransactions::::mutate(|transactions| { + transactions.push((payload, extrinsic_index, events, success, gas_consumed)); + }); } /// The address of the validator that produced the current block. From 7ba1b05b07dc58ba4c8a5f54c0fee77149cda76d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 19 Aug 2025 16:10:36 +0000 Subject: [PATCH 095/273] revive: Kill storge on initialize Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index ff6710d1f38d5..eaaa7a83fc104 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -676,6 +676,9 @@ pub mod pallet { // // Note: This does not account for the cost of computing the state tries. + ReceiptInfoData::::kill(); + EthereumBlock::::kill(); + Weight::zero() } From 4601afd147a23cd05ebc3756df2b95c105b65287 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 19 Aug 2025 16:12:06 +0000 Subject: [PATCH 096/273] revive: Remove commets from on initialize Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 52 ------------------------------- 1 file changed, 52 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index eaaa7a83fc104..a53ae00063b70 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -625,60 +625,8 @@ pub mod pallet { } fn on_initialize(_n: BlockNumberFor) -> Weight { - // TODO: Account for future transactions here in the on_finalize. - - // The pallet executes the following memory operations: - // - // For every emitted event of type `Event::ContractEmitted`: - // (I) During collection: - // - read: InflightEvents::::count() - // - write: InflightEvents::::insert - // - // (II) After transaction is executed: - // - read: InflightEvents::::count() internally by InflightEvents::::drain() - // - read: Provide the key, value internally by InflightEvents::::drain() - // - write: Remove key internally by InflightEvents::::drain() - // Therefore, we have 2 reads and 2 writes per event, plus one extra read per total - // (count). - // - // Cost(Events) = (2r + 2w) * N + 1r - // - // For every transaction: - // (I) Cost incurred by the emitted event - // - // (II) After transaction is executed: - // - read: frame_system::Pallet::::extrinsic_index() - // - read: InflightTransactions::::count() - // - write: InflightTransactions::::insert() - // - // Cost(Txs) = Cost(Events) + (1r + 1r) * M + 1r - // - // On finalize operations: - // (I) Operating with transactions: - // - read: InflightTransactions::::count() internally by - // InflightTransactions::::drain() - // - read: Provide key, value internally by InflightTransactions::::drain() - // - write: Remove key internally by InflightTransactions::::drain() - // - // (II) Parent hash - // - read: BlockHash::::get() - // - // (III) Storage propagation - // - write: BlockHash::::insert() (insert number to hash mapping) - // - write EthereumBlock::::put() (insert block into storage) - // - write ReceiptInfoData::::put() (insert receipt data into storage) - // - // Cost(on_finalize) = Cost(Txs) + (1r + 1r) * M + 1r + 1r + 3w - // - // Total cost: - // (2r + 2w) * N + 1r + (1r + 1r) * M + 1r + (1r + 1r) * M + 1r + 1r + 3w - // = 4 M (r + w) + 2 N * (r + w) + 4r + 3w - // - // Note: This does not account for the cost of computing the state tries. - ReceiptInfoData::::kill(); EthereumBlock::::kill(); - Weight::zero() } From c1f0127e1af7d6d01c23a59903b77e4a9b67647a Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 19 Aug 2025 16:45:59 +0000 Subject: [PATCH 097/273] revive: Impl block hash directly on the RPC block type Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rpc_types_gen.rs | 8 + substrate/frame/revive/src/evm/block_hash.rs | 159 +++++++----------- substrate/frame/revive/src/lib.rs | 14 +- 3 files changed, 70 insertions(+), 111 deletions(-) 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 2c69827b3b362..f18aec363616c 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -501,6 +501,14 @@ impl Default for HashesOrTransactionInfos { HashesOrTransactionInfos::Hashes(Default::default()) } } +impl HashesOrTransactionInfos { + pub fn push_hash(&mut self, hash: H256) { + match self { + HashesOrTransactionInfos::Hashes(hashes) => hashes.push(hash), + _ => {}, + } + } +} /// log #[derive( diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 66fae34755df9..152a3e37977b3 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -18,8 +18,8 @@ #![warn(missing_docs)] use crate::{ - evm::{Block as EthBlock, Bytes256, TransactionSigned}, - Event, HashesOrTransactionInfos, + evm::{Block, TransactionSigned}, + Event, }; use alloc::vec::Vec; @@ -52,59 +52,7 @@ pub struct ReceiptGasInfo { pub gas_used: U256, } -/// Builder of the ETH block. -#[derive(Default)] -pub struct EthBlockBuilder { - /// Current block number. - block_number: U256, - /// Parent block hash. - parent_hash: H256, - /// The base gas price of the block. - base_gas_price: U256, - /// The timestamp of the block. - timestamp: U256, - /// The author of the block. - block_author: H160, - /// The gas limit of the block. - gas_limit: U256, - - /// Logs bloom of the receipts. - logs_bloom: Bytes256, - /// Total gas used by transactions in the block. - total_gas_used: U256, - /// The transaction hashes that will be placed in the ETH block. - tx_hashes: Vec, - /// The data needed to reconstruct the receipt info. - receipt_data: Vec, -} - -impl EthBlockBuilder { - /// Constructs a new [`EthBlockBuilder`]. - /// - /// # Note - /// - /// Obtaining some of the fields from the pallet's storage must be accounted. - pub fn new( - block_number: U256, - parent_hash: H256, - base_gas_price: U256, - timestamp: U256, - block_author: H160, - gas_limit: U256, - ) -> Self { - Self { - block_number, - parent_hash, - base_gas_price, - timestamp, - block_author, - gas_limit, - - // The remaining fields are populated by `process_transaction_details`. - ..Default::default() - } - } - +impl Block { /// Build the Ethereum block. /// /// # Note @@ -123,44 +71,54 @@ impl EthBlockBuilder { /// /// (III) Block hash is computed from the provided information. pub fn build( - mut self, details: impl IntoIterator>, - ) -> (H256, EthBlock, Vec) + block_number: U256, + parent_hash: H256, + timestamp: U256, + block_author: H160, + gas_limit: U256, + base_gas_price: U256, + ) -> (H256, Block, Vec) where T: crate::pallet::Config, { - let (signed_tx, receipt): (Vec<_>, Vec<_>) = details - .into_iter() - .filter_map(|detail| self.process_transaction_details(detail)) - .unzip(); + let mut block = Self { + number: block_number, + parent_hash, + timestamp, + miner: block_author, + gas_limit, - // Compute expensive trie roots. - let transactions_root = Self::compute_trie_root(&signed_tx); - let receipts_root = Self::compute_trie_root(&receipt); + // The remaining fields are populated by `process_transaction_details`. + ..Default::default() + }; - // Compute the ETH header hash. - let block_hash = self.header_hash(transactions_root, receipts_root); + let transaction_details: Vec<_> = details + .into_iter() + .filter_map(|detail| block.process_transaction_details(detail, base_gas_price)) + .collect(); - let block = EthBlock { - state_root: transactions_root.0.into(), - transactions_root: transactions_root.0.into(), - receipts_root: receipts_root.0.into(), + let mut signed_tx = Vec::with_capacity(transaction_details.len()); + let mut receipts = Vec::with_capacity(transaction_details.len()); + let mut gas_infos = Vec::with_capacity(transaction_details.len()); + for (signed, receipt, gas_info) in transaction_details { + signed_tx.push(signed); + receipts.push(receipt); + gas_infos.push(gas_info); + } - parent_hash: self.parent_hash.into(), - miner: self.block_author.into(), - logs_bloom: self.logs_bloom, - total_difficulty: Some(U256::zero()), - number: self.block_number.into(), - gas_limit: self.gas_limit, - gas_used: self.total_gas_used, - timestamp: self.timestamp, + // Compute expensive trie roots. + let transactions_root = Self::compute_trie_root(&signed_tx); + let receipts_root = Self::compute_trie_root(&receipts); - transactions: HashesOrTransactionInfos::Hashes(self.tx_hashes), + block.state_root = transactions_root.0.into(); + block.transactions_root = transactions_root.0.into(); + block.receipts_root = receipts_root.0.into(); - ..Default::default() - }; + // Compute the ETH header hash. + let block_hash = block.header_hash(); - (block_hash, block, self.receipt_data) + (block_hash, block, gas_infos) } /// Returns a tuple of the RLP encoded transaction and receipt. @@ -169,7 +127,8 @@ impl EthBlockBuilder { fn process_transaction_details( &mut self, detail: TransactionDetails, - ) -> Option<(Vec, Vec)> + base_gas_price: U256, + ) -> Option<(Vec, Vec, ReceiptGasInfo)> where T: crate::pallet::Config, { @@ -179,12 +138,12 @@ impl EthBlockBuilder { }).ok()?; let transaction_hash = H256(keccak_256(&payload)); - self.tx_hashes.push(transaction_hash); + self.transactions.push_hash(transaction_hash); - self.receipt_data.push(ReceiptGasInfo { - effective_gas_price: signed_tx.effective_gas_price(self.base_gas_price), + let gas_info = ReceiptGasInfo { + effective_gas_price: signed_tx.effective_gas_price(base_gas_price), gas_used: gas.ref_time().into(), - }); + }; let logs = events .into_iter() @@ -204,11 +163,11 @@ impl EthBlockBuilder { }) .collect(); - self.total_gas_used += gas.ref_time().into(); + self.gas_used += gas.ref_time().into(); let receipt = alloy_consensus::Receipt { status: success.into(), - cumulative_gas_used: self.total_gas_used.as_u64(), + cumulative_gas_used: self.gas_used.as_u64(), logs, }; @@ -219,22 +178,18 @@ impl EthBlockBuilder { Vec::with_capacity(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); - Some((signed_tx.signed_payload(), encoded_receipt)) + Some((signed_tx.signed_payload(), encoded_receipt, gas_info)) } /// Compute the trie root using the `(rlp(index), encoded(item))` pairs. - fn compute_trie_root(items: &[Vec]) -> alloy_primitives::B256 { + pub fn compute_trie_root(items: &[Vec]) -> alloy_primitives::B256 { alloy_consensus::proofs::ordered_trie_root_with_encoder(items, |item, buf| { buf.put_slice(item) }) } /// Compute the ETH header hash. - fn header_hash( - &self, - transactions_root: alloy_primitives::B256, - receipts_root: alloy_primitives::B256, - ) -> H256 { + fn header_hash(&self) -> H256 { // Note: Cap the gas limit to u64::MAX. // In practice, it should be impossible to fill a u64::MAX gas limit // of an either Ethereum or Substrate block. @@ -242,16 +197,16 @@ impl EthBlockBuilder { if self.gas_limit > u64::MAX.into() { u64::MAX } else { self.gas_limit.as_u64() }; let alloy_header = alloy_consensus::Header { - state_root: transactions_root, - transactions_root, - receipts_root, + state_root: self.transactions_root.0.into(), + transactions_root: self.transactions_root.0.into(), + receipts_root: self.receipts_root.0.into(), parent_hash: self.parent_hash.0.into(), - beneficiary: self.block_author.0.into(), - number: self.block_number.as_u64(), + beneficiary: self.miner.0.into(), + number: self.number.as_u64(), logs_bloom: self.logs_bloom.0.into(), gas_limit, - gas_used: self.total_gas_used.as_u64(), + gas_used: self.gas_used.as_u64(), timestamp: self.timestamp.as_u64(), ..alloy_consensus::Header::default() diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index a53ae00063b70..c820f545e97d1 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,10 +45,8 @@ pub mod weights; use crate::{ evm::{ - block_hash::{EthBlockBuilder, ReceiptGasInfo}, - runtime::GAS_PRICE, - CallTracer, GasEncoder, GenericTransaction, HashesOrTransactionInfos, PrestateTracer, - Trace, Tracer, TracerType, TYPE_EIP1559, + block_hash::ReceiptGasInfo, runtime::GAS_PRICE, CallTracer, GasEncoder, GenericTransaction, + HashesOrTransactionInfos, PrestateTracer, Trace, Tracer, TracerType, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Stack as ExecStack}, gas::GasMeter, @@ -652,17 +650,15 @@ pub mod pallet { // This touches the storage, must account for weights. let transactions = InflightTransactions::::take(); - let block_builder = EthBlockBuilder::new( + let (block_hash, block, receipt_data) = EthBlock::build( + transactions, eth_block_num, parent_hash, - base_gas_price, T::Time::now().into(), block_author, gas_limit, + base_gas_price, ); - // The most expensive operation of this hook. Please check - // the method's documentation for computational details. - let (block_hash, block, receipt_data) = block_builder.build(transactions); // Put the block hash into storage. BlockHash::::insert(eth_block_num, block_hash); From b8b44f3cf7d06bddd7bafe0d155929edecba2a58 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 19 Aug 2025 17:15:47 +0000 Subject: [PATCH 098/273] revive: Fix unused import Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index c820f545e97d1..e945f0ac6682b 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -46,7 +46,7 @@ pub mod weights; use crate::{ evm::{ block_hash::ReceiptGasInfo, runtime::GAS_PRICE, CallTracer, GasEncoder, GenericTransaction, - HashesOrTransactionInfos, PrestateTracer, Trace, Tracer, TracerType, TYPE_EIP1559, + PrestateTracer, Trace, Tracer, TracerType, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Stack as ExecStack}, gas::GasMeter, From 67b464dd1ecf4b9a8e03dad8353763e98b6ef8d7 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 20 Aug 2025 08:38:46 +0000 Subject: [PATCH 099/273] revive: Kill all storage entries on init Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index c51506d8c5036..a28a316b96fb2 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -625,6 +625,9 @@ pub mod pallet { fn on_initialize(_n: BlockNumberFor) -> Weight { ReceiptInfoData::::kill(); EthereumBlock::::kill(); + InflightEvents::::kill(); + InflightTransactions::::kill(); + Weight::zero() } From bc0915913945a7ea2d21db8053f9c41cde818469 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 20 Aug 2025 10:07:50 +0000 Subject: [PATCH 100/273] revive: Ensure eth_call and eth_instantiate_with_code are signed Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index a28a316b96fb2..d9e77481cec2b 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -978,6 +978,8 @@ pub mod pallet { data: Vec, payload: Vec, ) -> DispatchResultWithPostInfo { + ensure_signed(origin.clone())?; + let code_len = code.len() as u32; let data_len = data.len() as u32; let mut output = Self::bare_instantiate( @@ -1025,6 +1027,8 @@ pub mod pallet { data: Vec, payload: Vec, ) -> DispatchResultWithPostInfo { + ensure_signed(origin.clone())?; + let mut output = Self::bare_call( origin, dest, From 493500885d4a30d623b9b023e490664f194b398f Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 20 Aug 2025 10:26:48 +0000 Subject: [PATCH 101/273] revive: Add block storage environmental to capture events properly and deny unsigned txes Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 125 +++++++++++++++++------------- 1 file changed, 73 insertions(+), 52 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index d9e77481cec2b..abc497cc77f53 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -120,9 +120,6 @@ pub(crate) type OnChargeTransactionBalanceOf = < bool { + executing_call::with(|ctx| *ctx).unwrap_or(false) + } + + pub fn with_ethereum_context(f: impl FnOnce() -> R) -> R { + executing_call::using(&mut true, f) + } +} + #[frame_support::pallet] pub mod pallet { use super::*; @@ -666,7 +681,7 @@ pub mod pallet { BlockHash::::insert(eth_block_num, block_hash); // Prune older block hashes. - let block_hash_count = BLOCK_HASH_COUNT; + let block_hash_count = block_storage::BLOCK_HASH_COUNT; let to_remove = eth_block_num.saturating_sub(block_hash_count.into()).saturating_sub(One::one()); if !to_remove.is_zero() { @@ -980,38 +995,40 @@ pub mod pallet { ) -> DispatchResultWithPostInfo { ensure_signed(origin.clone())?; - let code_len = code.len() as u32; - let data_len = data.len() as u32; - let mut output = Self::bare_instantiate( - origin, - value, - gas_limit, - DepositLimit::Balance(storage_deposit_limit), - Code::Upload(code), - data, - None, - BumpNonce::No, - ); + block_storage::with_ethereum_context(|| { + let code_len = code.len() as u32; + let data_len = data.len() as u32; + let mut output = Self::bare_instantiate( + origin, + value, + gas_limit, + DepositLimit::Balance(storage_deposit_limit), + Code::Upload(code), + data, + None, + BumpNonce::No, + ); - if let Ok(retval) = &output.result { - if retval.result.did_revert() { - output.result = Err(>::ContractReverted.into()); + if let Ok(retval) = &output.result { + if retval.result.did_revert() { + output.result = Err(>::ContractReverted.into()); + } } - } - - // TODO: Should we report `gas_consumed.saturating_add(base_weight)` instead? - // If so, we might need to capture this from inside the `dispatch_result`. - Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); - dispatch_result( - output.result.map(|result| result.result), - output.gas_consumed, - T::WeightInfo::eth_instantiate_with_code( - code_len, - data_len, - Pallet::::has_dust(value).into(), - ), - ) + // TODO: Should we report `gas_consumed.saturating_add(base_weight)` instead? + // If so, we might need to capture this from inside the `dispatch_result`. + Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); + + dispatch_result( + output.result.map(|result| result.result), + output.gas_consumed, + T::WeightInfo::eth_instantiate_with_code( + code_len, + data_len, + Pallet::::has_dust(value).into(), + ), + ) + }) } /// Same as [`Self::call`], but intended to be dispatched **only** @@ -1029,28 +1046,30 @@ pub mod pallet { ) -> DispatchResultWithPostInfo { ensure_signed(origin.clone())?; - let mut output = Self::bare_call( - origin, - dest, - value, - gas_limit, - DepositLimit::Balance(storage_deposit_limit), - data, - ); + block_storage::with_ethereum_context(|| { + let mut output = Self::bare_call( + origin, + dest, + value, + gas_limit, + DepositLimit::Balance(storage_deposit_limit), + data, + ); - if let Ok(return_value) = &output.result { - if return_value.did_revert() { - output.result = Err(>::ContractReverted.into()); + if let Ok(return_value) = &output.result { + if return_value.did_revert() { + output.result = Err(>::ContractReverted.into()); + } } - } - Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); + Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); - dispatch_result( - output.result, - output.gas_consumed, - T::WeightInfo::eth_call(Pallet::::has_dust(value).into()), - ) + dispatch_result( + output.result, + output.gas_consumed, + T::WeightInfo::eth_call(Pallet::::has_dust(value).into()), + ) + }) } /// Upload new `code` without instantiating a contract from it. @@ -1765,7 +1784,9 @@ impl Pallet { /// This method will be called by the EVM to deposit events emitted by the contract. /// Therefore all events must be contract emitted events. fn deposit_event(event: Event) { - if matches!(event, Event::ContractEmitted { .. }) { + if matches!(event, Event::ContractEmitted { .. }) && + block_storage::is_executing_ethereum_call() + { // TODO: ensure we don't exceed a maximum number of events per tx. InflightEvents::::mutate(|events| { events.push(event.clone()); From 44bb6320756ce7a99ae03f99ad940b46c8ebd7d4 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 20 Aug 2025 13:12:25 +0000 Subject: [PATCH 102/273] revive/hash: Use alloy logs bloom to compute the hashes Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 152a3e37977b3..76f543df93562 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -25,6 +25,7 @@ use crate::{ use alloc::vec::Vec; use alloy_consensus::RlpEncodableReceipt; use alloy_core::primitives::bytes::BufMut; +use alloy_primitives::Bloom; use codec::{Decode, Encode}; use frame_support::weights::Weight; use scale_info::TypeInfo; @@ -37,7 +38,7 @@ pub type TransactionDetails = (Vec, u32, Vec>, bool, Weight); /// Details needed to reconstruct the receipt info in the RPC /// layer without losing accuracy. -#[derive(Encode, Decode, TypeInfo, Clone)] +#[derive(Encode, Decode, TypeInfo, Clone, Debug, PartialEq, Eq)] pub struct ReceiptGasInfo { /// The actual value per gas deducted from the sender's account. Before EIP-1559, this /// is equal to the transaction's gas price. After, it is equal to baseFeePerGas + @@ -101,10 +102,14 @@ impl Block { let mut signed_tx = Vec::with_capacity(transaction_details.len()); let mut receipts = Vec::with_capacity(transaction_details.len()); let mut gas_infos = Vec::with_capacity(transaction_details.len()); - for (signed, receipt, gas_info) in transaction_details { + + let mut logs_bloom = Bloom::default(); + for (signed, receipt, gas_info, bloom) in transaction_details { signed_tx.push(signed); receipts.push(receipt); gas_infos.push(gas_info); + + logs_bloom.accrue_bloom(&bloom); } // Compute expensive trie roots. @@ -114,6 +119,7 @@ impl Block { block.state_root = transactions_root.0.into(); block.transactions_root = transactions_root.0.into(); block.receipts_root = receipts_root.0.into(); + block.logs_bloom = (*logs_bloom.data()).into(); // Compute the ETH header hash. let block_hash = block.header_hash(); @@ -128,7 +134,7 @@ impl Block { &mut self, detail: TransactionDetails, base_gas_price: U256, - ) -> Option<(Vec, Vec, ReceiptGasInfo)> + ) -> Option<(Vec, Vec, ReceiptGasInfo, Bloom)> where T: crate::pallet::Config, { @@ -172,13 +178,12 @@ impl Block { }; let receipt_bloom = receipt.bloom_slow(); - self.logs_bloom.combine(&(*receipt_bloom.0).into()); let mut encoded_receipt = Vec::with_capacity(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); - Some((signed_tx.signed_payload(), encoded_receipt, gas_info)) + Some((signed_tx.signed_payload(), encoded_receipt, gas_info, receipt_bloom)) } /// Compute the trie root using the `(rlp(index), encoded(item))` pairs. From 4abf8d9d604b6fb6b281026aefaff7ee922f195e Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 20 Aug 2025 13:12:42 +0000 Subject: [PATCH 103/273] revive: Remove manual bitor impl Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/api/byte.rs | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/substrate/frame/revive/src/evm/api/byte.rs b/substrate/frame/revive/src/evm/api/byte.rs index 3fd1e581576f9..21a7b6fb42463 100644 --- a/substrate/frame/revive/src/evm/api/byte.rs +++ b/substrate/frame/revive/src/evm/api/byte.rs @@ -82,18 +82,6 @@ impl_hex!(Bytes, Vec, vec![]); impl_hex!(Bytes8, [u8; 8], [0u8; 8]); impl_hex!(Bytes256, [u8; 256], [0u8; 256]); -impl Bytes256 { - /// Combine the logs bloom by bitwise OR operation. - /// - /// This ensures that we can compute the block's logs bloom by - /// combining the logs bloom of all transactions in the block. - pub fn combine(&mut self, other: &Self) { - for (a, b) in self.0.iter_mut().zip(other.0.iter()) { - *a |= b; - } - } -} - #[test] fn serialize_works() { let a = Byte(42); From faacd19fda71cbf47cc021c09508908500b1a7f8 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 20 Aug 2025 13:12:55 +0000 Subject: [PATCH 104/273] revive/tests: Enrich the test builder with eth instantiate Signed-off-by: Alexandru Vasile --- .../frame/revive/src/test_utils/builder.rs | 27 ++++++++++++++++++- substrate/frame/revive/src/tests.rs | 7 +++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/test_utils/builder.rs b/substrate/frame/revive/src/test_utils/builder.rs index eb37282c8d456..32dbcbff92af0 100644 --- a/substrate/frame/revive/src/test_utils/builder.rs +++ b/substrate/frame/revive/src/test_utils/builder.rs @@ -254,7 +254,32 @@ builder!( gas_limit: GAS_LIMIT, storage_deposit_limit: deposit_limit::(), data: vec![], - payload: vec![], + payload: vec![1], + } + } +); + +builder!( + eth_instantiate_with_code( + origin: OriginFor, + value: U256, + gas_limit: Weight, + storage_deposit_limit: BalanceOf, + code: Vec, + data: Vec, + payload: Vec, + ) -> DispatchResultWithPostInfo; + + /// Create a [`EthInstantiateWithCodeBuilder`] with default values. + pub fn eth_instantiate_with_code(origin: OriginFor, code: Vec) -> Self { + Self { + origin, + value: 0u32.into(), + gas_limit: GAS_LIMIT, + storage_deposit_limit: deposit_limit::(), + code, + data: vec![], + payload: vec![2], } } ); diff --git a/substrate/frame/revive/src/tests.rs b/substrate/frame/revive/src/tests.rs index ca6c30061d111..38be92dd086f3 100644 --- a/substrate/frame/revive/src/tests.rs +++ b/substrate/frame/revive/src/tests.rs @@ -206,6 +206,13 @@ pub(crate) mod builder { pub fn eth_call(dest: H160) -> EthCallBuilder { EthCallBuilder::::eth_call(RuntimeOrigin::signed(ALICE), dest) } + + pub fn eth_instantiate_with_code(code: Vec) -> EthInstantiateWithCodeBuilder { + EthInstantiateWithCodeBuilder::::eth_instantiate_with_code( + RuntimeOrigin::signed(ALICE), + code, + ) + } } impl Test { From a7b212aa0fc425297ae0e3a6c27f0a9aa86cf529 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 20 Aug 2025 13:19:27 +0000 Subject: [PATCH 105/273] revive/tests: Add tests for storage items Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/tests.rs | 1 + .../frame/revive/src/tests/block_hash.rs | 147 ++++++++++++++++++ 2 files changed, 148 insertions(+) create mode 100644 substrate/frame/revive/src/tests/block_hash.rs diff --git a/substrate/frame/revive/src/tests.rs b/substrate/frame/revive/src/tests.rs index 38be92dd086f3..9042401e6097d 100644 --- a/substrate/frame/revive/src/tests.rs +++ b/substrate/frame/revive/src/tests.rs @@ -15,6 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +mod block_hash; mod pallet_dummy; mod precompiles; mod pvm; diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs new file mode 100644 index 0000000000000..d06ea9bad9649 --- /dev/null +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -0,0 +1,147 @@ +// 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 pallet-revive ETH block hash specific integration test suite. + +use crate::{ + test_utils::{builder::Contract, deposit_limit, ALICE}, + tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeEvent, RuntimeOrigin, Test}, + BalanceWithDust, Code, Config, Pallet, Weight, H256, +}; +use frame_support::traits::{fungible::Mutate, Hooks}; +use pallet_revive_fixtures::compile_module; + +#[test] +fn on_initialize_clears_storage() { + ExtBuilder::default().existential_deposit(50).build().execute_with(|| { + let receipt_data = + vec![crate::ReceiptGasInfo { effective_gas_price: 1.into(), gas_used: 1.into() }]; + crate::ReceiptInfoData::::put(receipt_data.clone()); + assert_eq!(crate::ReceiptInfoData::::get(), receipt_data); + + let event = crate::Event::ContractEmitted { + contract: Default::default(), + data: vec![1], + topics: vec![], + }; + crate::InflightEvents::::put(vec![event.clone()]); + assert_eq!(crate::InflightEvents::::get(), vec![event.clone()]); + + let transactions = vec![(vec![1, 2, 3], 1, vec![event], true, Weight::zero())]; + crate::InflightTransactions::::put(transactions.clone()); + assert_eq!(crate::InflightTransactions::::get(), transactions); + + let block = crate::EthBlock { number: 1.into(), ..Default::default() }; + crate::EthereumBlock::::put(block.clone()); + assert_eq!(crate::EthereumBlock::::get(), block); + + Contracts::on_initialize(0); + + assert_eq!(crate::ReceiptInfoData::::get(), vec![]); + assert_eq!(crate::InflightEvents::::get(), vec![]); + assert_eq!(crate::InflightTransactions::::get(), vec![]); + assert_eq!(crate::EthereumBlock::::get(), Default::default()); + }); +} + +#[test] +fn transactions_are_captured() { + let (binary, _) = compile_module("dummy").unwrap(); + let (gas_binary, _code_hash) = compile_module("run_out_of_gas").unwrap(); + + ExtBuilder::default().existential_deposit(200).build().execute_with(|| { + Contracts::on_initialize(0); + + let _ = ::Currency::set_balance(&ALICE, 1_000_000); + let Contract { addr, .. } = + builder::bare_instantiate(Code::Upload(binary.clone())).build_and_unwrap_contract(); + let balance = + Pallet::::convert_native_to_evm(BalanceWithDust::new_unchecked::(100, 10)); + + assert_ok!(builder::eth_call(addr).value(balance).build()); + assert_ok!(builder::eth_instantiate_with_code(binary).value(balance).build()); + + // Call is not captured. + assert_ok!(builder::call(addr).value(1).build()); + // Instantiate with code is not captured. + assert_ok!(builder::instantiate_with_code(gas_binary).value(1).build()); + + let transactions = crate::InflightTransactions::::get(); + assert_eq!(transactions.len(), 2); + assert_eq!(transactions[0].0, vec![1]); // payload set to 1 for eth_call + assert_eq!(transactions[0].1, 0); // tx index + assert_eq!(transactions[0].2, vec![]); // no events emitted + assert_eq!(transactions[0].3, true); // successful + + assert_eq!(transactions[1].0, vec![2]); // payload set to 2 for eth_instantiate_with_code + assert_eq!(transactions[1].1, 0); // tx index + assert_eq!(transactions[1].2, vec![]); // no events emitted + assert_eq!(transactions[1].3, true); // successful + + Contracts::on_finalize(0); + + assert_eq!(crate::InflightTransactions::::get(), vec![]); + }); +} + +#[test] +fn events_are_captured() { + let (binary, code_hash) = compile_module("event_and_return_on_deploy").unwrap(); + + ExtBuilder::default().existential_deposit(200).build().execute_with(|| { + let _ = ::Currency::set_balance(&ALICE, 1_000_000); + + assert_ok!(Contracts::upload_code( + RuntimeOrigin::signed(ALICE), + binary.clone(), + deposit_limit::(), + )); + + Contracts::on_initialize(1); + + // Bare call must not be captured. + let Contract { addr, .. } = builder::bare_instantiate(Code::Existing(code_hash.clone())) + .build_and_unwrap_contract(); + let balance = + Pallet::::convert_native_to_evm(BalanceWithDust::new_unchecked::(100, 10)); + + // Capture the EthInstantiate. + assert_eq!(crate::InflightEvents::::get(), vec![]); + assert_ok!(builder::eth_instantiate_with_code(binary).value(balance).build()); + // Events are cleared out by storing the transaction. + assert_eq!(crate::InflightEvents::::get(), vec![]); + + let transactions = crate::InflightTransactions::::get(); + assert_eq!(transactions.len(), 1); + assert_eq!(transactions[0].0, vec![2]); // payload set to 1 for eth_instantiate_with_code + assert_eq!(transactions[0].1, 0); // tx index + match &transactions[0].2[0] { + crate::Event::ContractEmitted { contract, data, topics } => { + assert_ne!(contract, &addr); + assert_eq!(data, &vec![1, 2, 3, 4]); + assert_eq!(topics, &vec![H256::repeat_byte(42)]); + }, + event => panic!("Event {event:?} unexpected"), + }; + assert_eq!(transactions[0].3, true); // successful + + Contracts::on_finalize(0); + + assert_eq!(crate::InflightTransactions::::get(), vec![]); + assert_eq!(crate::InflightEvents::::get(), vec![]); + }); +} From 4d27c43fe8cb4a932fc9d70a7963fd4e18eed8e1 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 10:09:23 +0000 Subject: [PATCH 106/273] revive/tests: Add test assets Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 18 + .../revive/test-assets/ethereum_block.json | 3387 +++++++ .../revive/test-assets/ethereum_receipts.json | 7779 +++++++++++++++++ 3 files changed, 11184 insertions(+) create mode 100644 substrate/frame/revive/test-assets/ethereum_block.json create mode 100644 substrate/frame/revive/test-assets/ethereum_receipts.json diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 76f543df93562..24f3cb4f14366 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -220,3 +220,21 @@ impl Block { alloy_header.hash_slow().0.into() } } + +#[cfg(test)] +mod test { + use super::*; + use crate::evm::{Block, ReceiptInfo, TransactionSigned}; + use std::fs::File; + + #[test] + fn ensure_identical_hashes() { + // curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x161bd0f", true],"id":1}' -H "Content-Type: application/json" https://ethereum-rpc.publicnode.com | jq .result + const BLOCK_PATH: &str = "./test-assets/ethereum_block.json"; + // curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockReceipts","params":["0x161bd0f"],"id":1}' -H "Content-Type: application/json" https://ethereum-rpc.publicnode.com | jq .result + const BLOCK_RECEIPTS: &str = "./test-assets/ethereum_receipts.json"; + + // Deserialize block from block path file. + let _block = serde_json::from_reader(File::open(BLOCK_PATH).unwrap()); + } +} diff --git a/substrate/frame/revive/test-assets/ethereum_block.json b/substrate/frame/revive/test-assets/ethereum_block.json new file mode 100644 index 0000000000000..a6cc2e1b65d94 --- /dev/null +++ b/substrate/frame/revive/test-assets/ethereum_block.json @@ -0,0 +1,3387 @@ +{ + "baseFeePerGas": "0x23cf3fd4", + "blobGasUsed": "0x0", + "difficulty": "0x0", + "excessBlobGas": "0x80000", + "extraData": "0x546974616e2028746974616e6275696c6465722e78797a29", + "gasLimit": "0x2aea4ea", + "gasUsed": "0xe36e2f", + "hash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logsBloom": "0xb56c514421c05ba024436428e2487b83134983e9c650686421bd10588512e0a9a55d51e8e84c868446517ed5e90609dd43aad1edcc1462b8e8f15763b3ff6e62a506d3d910d0aae829786fac994a6de34860263be47eb8300e91dd2cc3110a22ba0d60008e6a0362c5a3ffd5aa18acc8c22b6fe02c54273b12a841bc958c9ae12378bc0e5881c2d840ff677f8038243216e5c105e58819bc0cbb8c56abb7e490cf919ceb85702e5d54dece9332a00c9e6ade9cb47d42440201ecd7704088236b39037c9ff189286e3e5d6657aa389c2d482e337af5cfc45b0d25ad0e300c2b6bf599bc2007008830226612a4e7e7cae4e57c740205a809dc280825165b98559c", + "miner": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "mixHash": "0x11b02e97eaa48bc83cbb6f9478f32eaf7e8b67fead4edeef945822612f1854f6", + "nonce": "0x0000000000000000", + "number": "0x161bd0f", + "parentBeaconBlockRoot": "0xd8266eb7bb40e4e5e3beb9caed7ccaa448ce55203a03705c87860deedcf7236d", + "parentHash": "0x7c9625cc198af5cf677a15cdc38da3cf64d57b9729de5bd1c96b3c556a84aa7d", + "receiptsRoot": "0x758614638725ede86a2f4c8339eb79b84ae346915319dc286643c9324e34f28a", + "requestsHash": "0xd9267a5ab4782c4e0bdc5fcd2fefb53c91f92f91b6059c8f13343a0691ba77d1", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "size": "0x14068", + "stateRoot": "0x7ed9726e3172886af5301968c2ddb7c38f8adf99c99ec10fdfaab66c610854bb", + "timestamp": "0x68a5ce5b", + "transactions": [ + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x693ca5c6852a7d212dabc98b28e15257465c11f3", + "gas": "0x70bdb", + "gasPrice": "0x23cf3fd4", + "hash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "input": "0x09c5eabe000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a90000cca0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000020000000000000000000000035c9618f600000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000002374fed200000000000000000001528fd550bc9a0000000000000000351e55bea6d51900dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000005c0c965e0000000000000000000000000000000000004c00000001000000000000000000000000000000000000002e24cd1d61a63f43658ed73b6ddeba00010002000100000000000000000000000000000000000000000000000039d622818daae62900006602000000000000000000002ff9e9686fa6ac00000000000000000000000000007f88ca000000000000000004caaa5ba8029c920300010000000000000000052319c661ddb06600000000000000000001528fd550bc9a0000000000000000005049606b67676100011c0c00000000000000002ff9e9686fa6ac000000000000000000000000035c16902c0000000000000000000000000000000200000000000000000000000000000002000073d53553ee552c1f2a9722e6407d43e41e19593f1cbc3d63300bfc6e48709f5b5ed98f228c70104e8c5d570b5608b47dca95ce6e371636965b6fdcab3613b6b65f061a44b7132011bb97a768bd238eacb62d7109920b000000000000000005246c56372e6d000000000000000000000000005c0c965e0000000000000000000000002374fed20000000000000000000000002374fed200011cc19621f6edbb9c02b95055b9f52eba0e2cb954c259f42aeca488551ea82b72f2504bbd310eb7145435e258751ab6854ab08b1630b89d6621dc1398c5d0c43b480000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x47ca802f", + "maxPriorityFeePerGas": "0x0", + "nonce": "0x40c6", + "r": "0xb3e71bd95d73e965495b17647f5faaf058e13af7dd21f2af24eac16f7e9d06a1", + "s": "0x58775b0c15075fb7f007b88e88605ae5daec1ffbac2771076e081c8c2b005c20", + "to": "0x0000000aa232009084bd71a5797d089aa4edfad4", + "transactionIndex": "0x0", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xc445a471debbc8ef54dbfd90af406b6a682313e3", + "gas": "0x62e08", + "gasPrice": "0x23cf3fd4", + "hash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "input": "0x078fc43000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000004d0563b78d0000000000000000000000000000000000000000000000044cca9748c816200e0000000000000000000000000000000000000000000000000000000010cb11ad0000000000000000000000000000000000000000000000000ede120b0b0b800000000000000000000000000000000000000000000000000005f3f3c10cd7400000000000000000000000000000000000000000000000000000000000000baa240000000000000000000000000000000000003c7ce03ee690113f579b1bcb93c1000000000000000000000000000000000000000000c6467309887ae60c8000004342b77fe3417bcb09d0a4383301b0dc733c755b00020000000000000000000200000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000063cca0fafb5280000000000000000000000000000000000000000000000000000000068a5ce5d00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000c445a471debbc8ef54dbfd90af406b6a682313e3000000000000000000000000000000000000000000000000000000000000000000000000000000e214d604044df5ba5f000000000000000457cc9deaca1658b10000000000006f9e4169d6f2c9919000000000000000001cc8f062718bfb1dcc0000000000000000000000000000000000000000000e8f80a0fffc209f777a9600000000000000004563918244f400000000000000000000006a94d74f43000000000000000000000000000068a5ce5b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004134c551c8d6c4f84a61a779134ed200c4d154e9904ad7b5a78c4d917f5b2b34a506596488971df877891a98c370f1a4a1c3aa42f05088d48253ac7be9e9840d7a1c00000000000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "nonce": "0x288c", + "r": "0x7900ae1a7b6c21f147f6ad27d8b2822a30803d6380f55d0eb33ed36e1dc35d10", + "s": "0x4401c414cb2291df96a75a433f26bf05abed976487b43a704d85572438877741", + "to": "0xc90d7c41974397cb8b260238ec9ecb6bbd965259", + "transactionIndex": "0x1", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x8361a4786bd2081acbf4a0802aab618d6aa1c674", + "gas": "0x5b8d8", + "gasPrice": "0x23cf3fd4", + "hash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "input": "0x078fc43000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000f115584f7000000000000000000000000000000000000000000000000d763281af8acbffc00000000000000000000000000000000000000000000000000000000034e01a70000000000000000000000000000000000000000000000000ede120b0b0b800000000000000000000000000000000000000000000000000005f3f3c10cd7400000000000000000000000000000000000000000000000000000000000000a834d000000000000000000000000000000000000000000043b5c9e50ece56a7cc95e000000000000000000000000000000000000000000c65ba00c505c3103000000315a892a4d02c5c1169d5f0e4f7cb4130cc0d13800020000000000000000000900000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000063cca0fafb52a0000000000000000000000000000000000000000000000000000000068a5ce5d00000000000000000000000000000000000000000000000000000000000000e00000000000000000000000008361a4786bd2081acbf4a0802aab618d6aa1c674000000000000000000000000000000000000000000000000000000000000000000000000000000e20a8903d9fa15ca380000000000000000d98a8c58ae5c8eb4000000000000aaac7ccf4f95012fb000000000000000001518a6cb136ff2ec07000000000000000000000000000000000000000000131ba2ee23a8d1d090000000000000000000004563918244f400000000000000000000006a94d74f43000000000000000000000000000068a5ce5b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041ca4402002b4df0c349b539ad62d7b8eb2c396e7a2a2a4fce9a253a9485c781b156ac977f9ba4a18f69e5a54261bf94f16ecb245b164a102fd2078985497b51d91c00000000000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "nonce": "0xda3", + "r": "0xac496ed50541793c57be842cb4ec3ef4b934bc082c296da66f81925129a89509", + "s": "0x53b96d8ad942ab7743890b25d3e7af790a28d6bd116cfaf2bd2135c659bae2e4", + "to": "0xc90d7c41974397cb8b260238ec9ecb6bbd965259", + "transactionIndex": "0x2", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [ + { + "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", + "storageKeys": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xa214b15162c78c6464e5ab06ab626d767ffac37a0858a2cbd1ab2e078f4bfd88" + ] + }, + { + "address": "0x2db07a3a657b6e16999b67d48500486a1cb0d649", + "storageKeys": [ + "0xf297cbbe3a3ff7264e184be5e03b61da7ac48af65d6ce5972c71bf59570c7406" + ] + }, + { + "address": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", + "storageKeys": [] + }, + { + "address": "0x7858e59e0c01ea06df3af3d20ac7b0003275d4bf", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8" + ] + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "storageKeys": [ + "0x3756065a1737877f5b2bc32c8c3f70b69057844ed80018b7b266bffc54ef98fd", + "0x50b15c2f32347ba182685596e2bd684e73b17d41f907c1d56bd125291ba3009f", + "0x618059526d7d1bb5608c8e3a0740d1f656fa8a764ecca600a8e0e3e0c313ce66", + "0x8de37585c313a58117507b9d5d325d1ed41e8e98deeee1ae5852b930e365e5b0", + "0x982ddcb64cfb6b923c9d3f3239160c877d57f1425dd7a125c7ebd1de727ae229", + "0xc877f7c350d0ae49415387c376c008036a6d8a86d61bcbab69c1f22659674f4c" + ] + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x406a6663cff73aaf362dd9ff433725f76c50718c3325dccceca1eb4b4f496798" + ] + }, + { + "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", + "storageKeys": [] + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x5838486f9709d509ca183bfd62059dc0b93c11a7aeb478ba6d797befb42741ce", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x93c40640380b12c4457039f9068961907821d6675c1c864b3d7911da89086f7f", + "0xcc236083e86ee3df0f3160002f381f1404bd44c4dec1322196f34d52548202f5", + "0xfeb6616e93dc1fa98d03f6845393dc522313be256222f7c27d490e56de385c92" + ] + }, + { + "address": "0xa14afc841a2742cbd52587b705f00f322309580e", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x000000000000000000000000000000000000000000000000000000000000003e", + "0x000000000000000000000000000000000000000000000000000000000000003f", + "0xf38081dfdf02e3ffc50aad06e4e2844f32f17b04fcae6b632a7977242c8e0838" + ] + }, + { + "address": "0xb60b34d830f26c5a11c47ddb1e0a1f31d90a78b1", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x9b637a02e6f8cc8aa1e3935c0b27bde663b11428c7707039634076a3fb8a0c48" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0x9d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dc", + "0xafe9768e778c9438b5b48d29377de15c330f2905e9106aecbd6ac88e3f82cea3" + ] + }, + { + "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", + "storageKeys": [] + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", + "0x47f0d8c24352282bd22f6c16110950f1718ca728a004736610a9835aafa6c77c", + "0x8b5463664f7b4b91a8418860695dc9b177a054a3467899bfa0769d27d031a6f2", + "0xbcdfe241f132b38477ee35d4e497c725e4d20778d490eecefb1940b28dbce0ca" + ] + } + ], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x6b063481f8216b5624ec496dd72376bef00faffd", + "gas": "0xc3620", + "gasPrice": "0x2d2a4df1", + "hash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000084ca8bc7997272c7cfb4d0cd3d55cd942b3c9419000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000084ca8bc7997272c7cfb4d0cd3d55cd942b3c9419000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000097d5014cb66f000000000000000000000000000000000000000000c570539d7c13b90257976a000000000000000000000000000000000000000000000000000000001ae32af80000000000000000000000000000000000000000000000230ec810de9c63d000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c360000000000000000000000000000000000000000000000230ec810de9c63d000000000000000000000000000000000000000000000000000000000001ac76e250000000000000000000000000000000000000000000000000000000068a5cea0506ca878e4bf5525292d5c63dfb3f96c2d1e319ae14bc546dc75b9d61da6b4f7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000230ec810de9c63d000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000416b237d30af3fa86383cdb796eb81403acfbcd2b5b16c085c6aec00549e91d60a08d87f822a06b411f335be0e4a16bde6e630a2697e7cf553e4314d09257287031c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d64900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000036447a4a98900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000203165e06d852288d50b640d10e4f50000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000004104000000000000000000000000b60b34d830f26c5a11c47ddb1e0a1f31d90a78b10000000000000000000000000000000000000000000000134f6e6f97fa338eb80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000c601d4ad4d401000000000000000000000000000000000000000000000000000000000000000000000004104000000000000000000000000a14afc841a2742cbd52587b705f00f322309580e00000000000000000000000000000000000000000000000fa7469b560e4519070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000c601d4ad4d4010000000000000000000000000000000000000000000000000000000000000000000000041050000000000000000000000007858e59e0c01ea06df3af3d20ac7b0003275d4bf000000000000000000000000000000000000000000000000000000000edb15d4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f0", + "maxFeePerGas": "0x97f474e8", + "maxPriorityFeePerGas": "0x95b0e1d", + "nonce": "0x1585", + "r": "0xfb39be2cbd91adebb6d19764a63e590d26621a37e54664f44dc874d3e9a98e63", + "s": "0x3df8c4cd15e261ea7d2f52d5e48e0c9a45348024d994a2bb46fb83bde1f16d2c", + "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", + "transactionIndex": "0x3", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", + "gas": "0x6270", + "gasPrice": "0x38cc2a7c", + "hash": "0xa655290cbb744571dd7455dacd45109cb3c7adce13392aa7ed3f2f64f5b644e4", + "input": "0x3e2cde32361a914a98179ab5c890c1e000b5d03fbf2f7db2d288ddfa477cf663", + "maxFeePerGas": "0x3bfc6fc7", + "maxPriorityFeePerGas": "0x14fceaa8", + "nonce": "0x324506", + "r": "0x50d24e5c7715bfa5a0ef2d74dcd9468bef8c23efe870dea425553fa945f05c6", + "s": "0x4a95f1d9194a3bf3b6a04e5bc438ca16d49daab68567fd6ecb989f568fac56e1", + "to": "0xfbd6acca70a8632061593f1a07056affb7965ac3", + "transactionIndex": "0x4", + "type": "0x2", + "v": "0x1", + "value": "0x1960988987cdc7", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x6d478cb16317680a517ff89253f82032efdc31ba", + "gas": "0xafa0", + "gasPrice": "0x6b55cbd4", + "hash": "0xfeee6a0b16850d3300339f32be2765355e301689b0f430b9f7db1695806ace46", + "input": "0x095ea7b3000000000000000000000000111111125421ca6dc452d289314280a0f8842a650000000000000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x792d1e40", + "maxPriorityFeePerGas": "0x47868c00", + "nonce": "0xdbb", + "r": "0x9f714c12cf41e8bdb0e1756715e0d8b62d07e354dc87fcb11377556c56ec738", + "s": "0x279a0b129838df35a3da6adbe60a83729229f608f8654c5f8726e4bea4424f78", + "to": "0x3b50805453023a91a8bf641e279401a0b23fa6f9", + "transactionIndex": "0x5", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", + "gas": "0x79173", + "gasPrice": "0x708ad4a2", + "hash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "input": "0x33739082000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000180000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c3000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c30000000000000000000000000000000000000000000000000000000000000b60000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000002b838c5e3c210000000000000000000000000000000000000000000000000000000068a5d0aa0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000000000000000001ff3684f28c67538d4d072c22734000000000000000000000000000000000000000000000000000000001185c2f9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ff3684f28c67538d4d072c2273400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000005c42213bc0b000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f9000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004e41fff991f000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222000000000000000000000000163f8c2467924be0ae7b5347228cabf26031875300000000000000000000000000000000000000000000001135683983035c6d9000000000000000000000000000000000000000000000000000000000000000a09ec76e970eebf8e87ffa04210af43c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e4c1fb425e000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5cf7d00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028438c9c147000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000002710000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001a4dac748d4000000000000000000000000163f8c2467924be0ae7b5347228cabf260318753000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000114bfd68823e680000000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef0000000068a5ce8e000000000000000000000000000000000000000068a5ce520000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001c308445be1fba35529ad765babeb7d04e657d10b1e885929e9088fb8de4e8a73137377dc9e14ddb6b6209e77701b660572de494c7eab10db93d7249805bba87eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e22200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001243b2253c8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000163f8c2467924be0ae7b5347228cabf2603187530000000000000000000000000000000000000000000000000000000000000001000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041cf307ce44d3877629b9e0188f9a2597ccac6729afd8aef39e6e2c2656685cec26a3a780a735e3399a023174e86b20c9c9f34621bf284c9ad465e94ff0ec532141c00000000000000000000000000000000000000000000000000000000000000f38077731f06dcf1ed1ab9112da6f1043441c3e18931b8b201a5332f021cbdcff38077731f06dcf1ed1ab9112da6f1043441c3e18931b8b201a5332f021cbdcf", + "maxFeePerGas": "0x73bb19ed", + "maxPriorityFeePerGas": "0x4cbb94ce", + "nonce": "0x324507", + "r": "0x685e8b339917d4d4b64a120035f225b0178ee8c98c3ba2aee1931ce5145bff06", + "s": "0x1998af1516cf3e23f3e8bb867bfc5b2fca88a21526d0863a0980726fc424a2e5", + "to": "0xbbbfd134e9b44bfb5123898ba36b01de7ab93d98", + "transactionIndex": "0x6", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x650f69dead2eeee68214ac0bc29f23bc7e2f82c89293ef4b23dc1591bc737c67" + ] + }, + { + "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", + "storageKeys": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x88d075c869ce192f20da9bfc0d2db81b73b4aa4af2ce17e52384cb021d06bd06" + ] + }, + { + "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", + "storageKeys": [] + }, + { + "address": "0x800c32eaa2a6c93cf4cb51794450ed77fbfbb172", + "storageKeys": [] + }, + { + "address": "0x366aa56191e89d219ac36b33406fce85da1e7554", + "storageKeys": [] + }, + { + "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", + "storageKeys": [] + }, + { + "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", + "storageKeys": [ + "0xa3b7a258ccc3c19490a94edab51a442dd2eeac4318bddede8cd899595d08f28a" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0xb84fbcd09e20fa700ddef111765a21785d2290b3c7c8719a27e4b60b59126522", + "0xda591c30fe54b3edd3bcb5d0d916c5c472e3ad81645d0312a5e73f3708e8708b", + "0x0bc90c98aed598fd15d9075ded522981aeb2ee369c8117e46bd494dc17c29999", + "0xdbde769b5281dad4214cceeb1871ab281fb8fd2a4443141db1078642029ae248", + "0x9d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dc" + ] + }, + { + "address": "0x60bf78233f48ec42ee3f101b9a05ec7878728006", + "storageKeys": [] + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x44624a8a323b583a84b5812478c554a5e284223b469e9f7039175023c0e54c3e", + "0x3ad18d7747f05925bebbb1df8860daa9cd402d902420f95ce10c49792803c3d6", + "0xcc236083e86ee3df0f3160002f381f1404bd44c4dec1322196f34d52548202f5", + "0x88afba62e6432e4d0a3e39a2be587d39c0b93368d66cedb0531bb5292040a552", + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x5cfccd15aa8eff180914a82b4caf3b39b3c62421a17404ea7a7d0c80fe766666", + "0x659f5b53123b3e7a886575e106645d4d7c5af120440f3f409542b3987fa1ea07", + "0x77d5014beb071d1c3dabbdbdba61f9a5cc3ffedca11c102ef7e2fae619d04e12", + "0x6e91f60197c982353033e86512311820683e018e0f39963c5d00c2c490bc45d3", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3" + ] + }, + { + "address": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", + "storageKeys": [] + }, + { + "address": "0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45", + "storageKeys": [] + }, + { + "address": "0x1346d1ee3fb1b65fecfcb65c149ca0702c286f53", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0xc0d1c00078410fd0164580b0bad93d8a579580d06cf45fc2696a823498097b8a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "address": "0x899d774e0f8e14810d628db63e65dfacea682343", + "storageKeys": [ + "0xd64773870f40323194fda2d1773a23183ba723843a4aa8fb90d5eaf49c342f55", + "0xef7cf59cb40a7ae1b5e03b08af7ed07c83f41406ca13eaeed923c1f2fc8bbb2a", + "0x70f537a6c3c5e23e6deecb5baafd173071015ed695aa4c5ab2072a13f49234e4", + "0x8eb102192bd88c1782b7bb42421db4a5cda302102196a664e54ad03c03e19e1e" + ] + } + ], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x6bf97afe2d2c790999cded2a8523009eb8a0823f", + "gas": "0x15d818", + "gasPrice": "0x65045d54", + "hash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000899d774e0f8e14810d628db63e65dfacea682343000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000899d774e0f8e14810d628db63e65dfacea6823430000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000a374bf76d4c42c8c8c00000000000000000000000000000000005cd4d66627e732daca892b48abb16400000000000000000000000000000000000000000000000006b06fe010314e3e0681000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000006ac7510475c22e2e3060000000000000000000000000000000000000000000000000000000068a5d4fb98b80e71c53f4b325f7753088b0d8ee55933f28c326277958a47f93bc54a095400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bebc200000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000414a13957a7c51fc3c1579a62c6160cf8fdf6cbdb186688f8a71c5085ce84e5cfe6cdd79d18f7e34d99a555aaf04a2c7787f9ad58f7bab041c8a94500b5f051a201b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060bf78233f48ec42ee3f101b9a05ec78787280060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001e4760f2a0b000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000001388000000000000000000000000000000000000000000000000000000000000000e4d505accf000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000720d7562000000000000000000000000000000000000000000000000000000000000001c219463f0255ddbed6266f8998f2c3d706c12eaf9de73c3b9f082b0a583fce90546a423f6fe118493aa5f9f57adfd73963e67bb89e6b20faf95821275b6b1607e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000340000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002644dcebcba0000000000000000000000000000000000000000000000000000000068a5ce680000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff860000000000000000000000000000000000000000000000002d2e61b16af396e5000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000bebc20000000000000000000000000000000000000000000000000000aa03ac85e927d00000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000000000000000006d9aa07971bc4e6731b47ed80776c5740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000419969dd20c05e5c0ca3d82fed5f912ae3678db7452adc4bffeb8ae098920f9e2a7804cfa5e1e42f85209c494f49914c39258c7668a992f59a01b2fe2d73d445771b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000899d774e0f8e14810d628db63e65dfacea68234300000000000000000000000000000000000000000000000000000000000027100000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000aa03ac85e927d00000000000000000000000000000000000000000000006b3d96e8c277e88e06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", + "maxFeePerGas": "0x76630193", + "maxPriorityFeePerGas": "0x41351d80", + "nonce": "0x18733", + "r": "0x6f71e41e8630b35dea48e57d1afd291651a5f15c338133c4976267ac00dd9e56", + "s": "0x45689f732b0a8e6be5bdf5a45db561f33cae7e976f8e8ebdbcbe2e51dc40869c", + "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "transactionIndex": "0x7", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [ + { + "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", + "storageKeys": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xa214b15162c78c6464e5ab06ab626d767ffac37a0858a2cbd1ab2e078f4bfd88" + ] + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x3ac39fa695c7fcc2f08ed03f39a14f6200dcd6d70476484cefdbd20e318a12f6" + ] + }, + { + "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", + "storageKeys": [] + }, + { + "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", + "storageKeys": [ + "0xa3b7a258ccc3c19490a94edab51a442dd2eeac4318bddede8cd899595d08f28a" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0x0bc90c98aed598fd15d9075ded522981aeb2ee369c8117e46bd494dc17c29999", + "0x9d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dc", + "0xdbde769b5281dad4214cceeb1871ab281fb8fd2a4443141db1078642029ae248" + ] + }, + { + "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", + "storageKeys": [] + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x2f4eccef1a2ac26ee311f5ed3175b060e147894716e6aef238fb247a8c0442ca", + "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", + "0x4282b1b811d28a715ea8710781664398187c8e7782bfa23d89b52b7df4a2d8f3", + "0x735ee752cf3aae249c79a037f284ac2a506e6033138d147b09b48992c871ad59", + "0xbcdfe241f132b38477ee35d4e497c725e4d20778d490eecefb1940b28dbce0ca", + "0xd7a51ade5c6492019478dc383052660ff7a3e7e43c6807d36c3e98ca0308f43a", + "0xded6b53414d9315f8b52550ee338588467e17d823032131926cff044d8e24022" + ] + }, + { + "address": "0xf4308b0263723b121056938c2172868e408079d0", + "storageKeys": [ + "0x0c80462f4c67c47b6702d5d78f89be290cda72230796295a3f0d81e5ea5efacf", + "0x2f4eccef1a2ac26ee311f5ed3175b060e147894716e6aef238fb247a8c0442ca", + "0x618059526d7d1bb5608c8e3a0740d1f656fa8a764ecca600a8e0e3e0c313ce66", + "0xbcdfe241f132b38477ee35d4e497c725e4d20778d490eecefb1940b28dbce0ca" + ] + } + ], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xc8ad355c8291cbd52e738ed1df1f5ccbbbbf00ee", + "gas": "0x76186", + "gasPrice": "0x2d50b891", + "hash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f4308b0263723b121056938c2172868e408079d0000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f4308b0263723b121056938c2172868e408079d00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000c5d6c3b2125dc8000000000000000000000000000000000000000000000000000000000000f810081d2232000000000000000000000000000000000000000000000001a0d9ab1774735d130000000000000000000000000000000000000000000000000000000002160ec00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000ee007a00b876742c33491454447a40bc63d3d4680000000000000000000000000000000000000000000000000000000002160ec000000000000000000000000000000000000000000000000199b40c6d1c841a520000000000000000000000000000000000000000000000000000000068a5d50f222f46d540f557f4c5cf7864f3cdddcc5ecfdce6ccc7d7fa9401501c00c6eb28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002160ec000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041d9644c6be7266136904797f084e8352986344bd869f4a9731be80d21ebbee746515f68447acfcdeb724248b251dd1b22b0fc5b6a7a551eb9bb54d9de4e2925fc1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002644dcebcba0000000000000000000000000000000000000000000000000000000068a5ce680000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff860000000000000000000000000000000000000000000000002d2e61b16af396e4000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000020b32aa000000000000000000000000000000000000000000000000001d27419875a7660000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000000000000000003eeca8e9088f6bdbdb18cf66347231200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000020b32aa00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004151d76016fd78972466adf9211a6ed7f7920ebefdd05878b2aa1147c8516d7cdf0725c40332cdf2196f02bb1af34b17b21e703acd2d67eab2204dfcab55e8023b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", + "maxFeePerGas": "0x9e685dbf", + "maxPriorityFeePerGas": "0x98178bd", + "nonce": "0x15d2", + "r": "0xaecfe2fed3c701d85e5ab7a4429e75d30863c4e9f3bf2447e8776ae94dfbb299", + "s": "0x4736b0a001b7ab77ff092200b51f95a847da9e4ba87e19091f90b36445f1d7ca", + "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", + "transactionIndex": "0x8", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [ + { + "address": "0x1820a4b7618bde71dce8cdc73aab6c95905fad24", + "storageKeys": [ + "0x26ffaf3a152d9fc724f491aa88ce2ea63ad2e54309955f7fd1c8cc431e36cd34", + "0x65e2bcb9b53b49e6a207a8cad45c445797ac132820851a5c2ca766f4bf70616b", + "0x6651bfb587c6c83e7c5b50954a25fb69217eaf629b55ce7bce79d7e0393b515c", + "0xa208009c466c46de16aa4c0f6ebe699a7e5312ea2340511e7a3493d58c777750", + "0xb2d447267ac2372fd4f82b45f0b2a765998bdb05d5e4e3ea4ea1196b5b7d4055" + ] + }, + { + "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", + "storageKeys": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xa214b15162c78c6464e5ab06ab626d767ffac37a0858a2cbd1ab2e078f4bfd88" + ] + }, + { + "address": "0x2db07a3a657b6e16999b67d48500486a1cb0d649", + "storageKeys": [ + "0xb9a049cec27bd0e04f03ab406fe4a5b51e014bbb45dde170cb834dfe14d24e95" + ] + }, + { + "address": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", + "storageKeys": [] + }, + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "storageKeys": [ + "0x07c7175170b0f7dbe5045e3aadd9d8d1a1bcd86d67b2f66b428714307f9deece", + "0x0e3d19729328f478ffc901c115f05d0195e5b68e282b84da93c6bafd953fdc80", + "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", + "0x5a57ab83a89afb99a56f8abebbc3d088fc84de8c39b430a65f65eb47fde6dad0", + "0x94cb0693589c4317987c2bdd65ee12478eaccf583a76f667a44bfc1f5ee9d33e" + ] + }, + { + "address": "0x87986ae1e99f99da1f955d16930dc8914ffbed56", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a31" + ] + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x495bc0bde1e41fc4a3b21299a3f1a2ed0b63f941d98cd981904995296886f56f" + ] + }, + { + "address": "0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000000c" + ] + }, + { + "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", + "storageKeys": [] + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x2209089ff8bd3b7bac6ff21ec014fbd229af53b4ecc03dcfbd102128759cb6c8", + "0x33d96ce24063b8b087fa8c040c066e1b9739925a812f2a0c2202c9ef763d01be", + "0x5838486f9709d509ca183bfd62059dc0b93c11a7aeb478ba6d797befb42741ce", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x9254cb65314db3d2d7ca17f753f1d9c7f1b6fa05111d18d10ed5b9519d1b247c", + "0xcc236083e86ee3df0f3160002f381f1404bd44c4dec1322196f34d52548202f5" + ] + }, + { + "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", + "storageKeys": [] + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "storageKeys": [ + "0x0e1b053921947bb61bee9f4bdc68bd6cab8cd39676a3cd25cbd3106515a600eb", + "0x463e11d6a09091abd5aa6409bcbdabd9d238935494dfe44240ecc5ea0b354ca3", + "0x5c53079ea7792e51eb61b662d072997b7fc830cb7c1fbf2e6dfc67a145adb39e", + "0x64ac251e964da0f5b6d07d47428fa7c41487ff293e1deb77eb407c15028dab0c", + "0x68d6103d434297b53d93172ff9b8e9fa609a873ee797a41b54b397befc982be5", + "0x7dd76b6185fc1dea9f4a90a6ff981e0a3e4f93b86e4ca82614c0e6daf68aa56c", + "0x7dd76b6185fc1dea9f4a90a6ff981e0a3e4f93b86e4ca82614c0e6daf68aa56d", + "0x80ff297fa2adcff46f46c76227076eddf7fcd5eb46559fed52522694ef9d5ca5", + "0x89ef6b4e32d5d82988d37d3a1fa7a16af850a0cec75c22bb7f54de6246e3415c", + "0x9ee8a636f0e458db742f50e2e2ad1530450af2611cd1652a371252abdedc2946", + "0xa5ab90ef73957dfec11eeabb333dccdc845a4f9bb24c2ecaa73241e72a97b1df", + "0xa5ab90ef73957dfec11eeabb333dccdc845a4f9bb24c2ecaa73241e72a97b1e0", + "0xae2dca3d72df02635ac422fe39c20b891efdf3630b23ee68b0b2cfeb0a922b20", + "0xb1622186449cb54cc8232698c69ae603adb41bb57566ca3651938555eb357a5a", + "0xb1622186449cb54cc8232698c69ae603adb41bb57566ca3651938555eb357a5b", + "0xbdd568ee226292b5392bccf8c984d00f7926aea871906d874009a37a5acb559f", + "0xd81a2e6b8d823272625dace0cd0304f8adc01aacbad3c8184dcbe8a3d88f83d0", + "0xd81a2e6b8d823272625dace0cd0304f8adc01aacbad3c8184dcbe8a3d88f83d1" + ] + }, + { + "address": "0xf6e72db5454dd049d0788e411b06cfaf16853042", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000004" + ] + } + ], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x943810707e090f1bdc486c4c990d43da3b162e52", + "gas": "0xf456c", + "gasPrice": "0x2d50b891", + "hash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f5581dfefd8fb0e4aec526be659cfab1f8c781da000000000000000000000000f5581dfefd8fb0e4aec526be659cfab1f8c781da000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000c601d4ad4d40100000000000000000000000000000000000000000000000000000000000000f08207d3003000000000000000000000000000000000000000000000000000000003c18ecd8000000000000000000000000000000000000000000000318d845d95db27be800000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36000000000000000000000000000000000000000000000318d845d95db27be800000000000000000000000000000000000000000000000000000000003be8c78f0000000000000000000000000000000000000000000000000000000068a5ce8d506ca878e4bf5525292d5c63dfb3f96c2d1e319ae14bc546dc75b9d61da6b4f700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000318d845d95db27be8000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000004108bd95c77ca0e0300f77d6084f777c937cdf6c73440bcb8bef9555851961773079721b9c1449707d60e2310bbbbb4cd73197ce25c4acc60262db616181d421b51c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003400000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d64900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000026447a4a989000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000002e563eed429041ddf3b86e77d08986000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000d9b4f53e13ad00000000000000000000000000000000000000000000000000000000000000410500000000000000000000000087986ae1e99f99da1f955d16930dc8914ffbed560000000000000000000000000000000000000000000002c2b9c5fcc62d54533900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000d9b4f53e13ad00000000000000000000000000000000000000000000000000000000000000410100000000000000000000000092c2fc5f306405eab0ff0958f6d85d7f8892cf4d000000000000000000000000000000000000000000000054e9ab31a1339be5930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f6e72db5454dd049d0788e411b06cfaf168530420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000448d7ef9bb0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41000000000000000000000000000000000000000000000000000000003c196d470000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", + "maxFeePerGas": "0x9e685dbf", + "maxPriorityFeePerGas": "0x98178bd", + "nonce": "0x1539", + "r": "0x5efc73acc9209d3c66c2aeded4e4a875bd8856b1674c7ea9ac46a647cc76e183", + "s": "0x63ceb18132c678a51071f869b1637d33b53006e620bf6ec991fda5a458abd94d", + "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", + "transactionIndex": "0x9", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", + "gas": "0x12b04", + "gasPrice": "0x708ad4a2", + "hash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", + "input": "0x30be55670000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ae1a530128950b1735674a975e1622872e556b59000000000000000000000000ae1a530128950b1735674a975e1622872e556b5900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e22200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000304e4108473ed6d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000c53e91fb904a5426b90d2fce78b7a29058931688395e3f1203b7bd652866cce6", + "maxFeePerGas": "0x73bb19ed", + "maxPriorityFeePerGas": "0x4cbb94ce", + "nonce": "0x324508", + "r": "0xfcf73e22d0c3470cf5b073cdf239c1875127cefd0adcbfdc07df485e4f8ccf10", + "s": "0x118b537e5d953e7ae1082310a0a2cf80e1af3a0047d8aebf7144ed5fbbbb8148", + "to": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "transactionIndex": "0xa", + "type": "0x2", + "v": "0x1", + "value": "0x304e4108473ed6d", + "yParity": "0x1" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x80c700683ec017a190b132a4ce042beeb7c6b821", + "gas": "0x493e0", + "gasPrice": "0x2c523e86", + "hash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "input": "0x7ff36ab50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000080c700683ec017a190b132a4ce042beeb7c6b8210000000000000000000000000000000000000000000000000000000068a5dc640000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e0265346277ad201609308b506e901b520150a08", + "nonce": "0x1", + "r": "0xb99ac5e4528b39173dc5779c74f0e3a720f20531b73dad03f2596229cb3ab489", + "s": "0x17073a6061963ac8b4cef1ac5f57a703453c29f8b860f0045ffc1928bce0307", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionIndex": "0xb", + "type": "0x0", + "v": "0x26", + "value": "0x621b921b80f2af" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x7830c87c02e56aff27fa8ab1241711331fa86f43", + "gas": "0x1e8480", + "gasPrice": "0x5f6a09d4", + "hash": "0x65dfef793509b00a864042275789801fd0c89fe3fe1d67648c4bba8148fd511c", + "input": "0x1a1da07500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000015694000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000003840170eae1303ecb3b5809671b962b0b2d4f3aa000000000000000000000000000000000000000000000000003ad6b94d191000000000000000000000000000da80d2757f2eceab6c2c5a31e51c6db8b9af83720000000000000000000000000000000000000000000000000070413fe0b078000000000000000000000000001f7824205b9427666d6a4a35c223c2afdddb5f350000000000000000000000000000000000000000000000000671ab6cb65960000000000000000000000000009fcd0e5fb4e70845090ca8b61c9bcea79472f02e000000000000000000000000000000000000000000000000002f92040cf04c000000000000000000000000009a9a9aafed1590214f18ffd2c45b982ad05c96a4000000000000000000000000000000000000000000000000005ff4017bff8400000000000000000000000000d2ac77b70369bd47ba2e07004b42c12b5dae6d9200000000000000000000000000000000000000000000000000034e4695eac40000000000000000000000000075fb24e0faf3ae4057b6eb0ab567a3786d6b7dea0000000000000000000000000000000000000000000000000030994e318e0000000000000000000000000000ca74f404e0c7bfa35b13b511097df966d5a655970000000000000000000000000000000000000000000000022b1b746db77ef40000000000000000000000000093d3151e799c7c01a2bc24d9566bd64850f0d9ac000000000000000000000000000000000000000000000000005715aba96e5c0000000000000000000000000083a37983d7717dc946d6eb736e8be6cf3bb94b6700000000000000000000000000000000000000000000000001853a17d6a15000000000000000000000000000fbac3516677cc50dea378bc6452377e3bdfae7dc0000000000000000000000000000000000000000000000000075ec64cfa92400", + "maxFeePerGas": "0xb2d05e00", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0x284ae6", + "r": "0xbef5a78bce7f069bb85ece9f17a21ca4ff06156d81c1ff51e0f99f67d2f27c72", + "s": "0x416881a96e033a3b039e5cc791de1585c4338b94fa42b9563f0ebdfa91ab2894", + "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "transactionIndex": "0xc", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x078430ebd8db8288fd056d137e0e11cf67fb8fc1", + "gas": "0x326fa", + "gasPrice": "0x9b04d3d4", + "hash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "input": "0xc60db8a1000000000000000000000000000000000000000000000a2a792108221ac98c54000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000001c50000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000a2a792108221ac98c540000000000000000000000000000000000000000000000000000000068a67703000000000000000000000000000000000000000000000000000000000000001bf13c7019ddb500c11b8de954cfcce21aa46a6c287db7dd71d4c0c90cdeaba06743a4bdf8f0b9cb9a3dd580f4d57ad4de0a7b12c9125d1f97dd0bb19bca506ec1", + "maxFeePerGas": "0xa7c2cc55", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x5d", + "r": "0x746fa8b401730a75ff8832f0fe455f528f90cd5360bcb63f4364c5e397defcec", + "s": "0x695cd4e982301b54a79d0d66338485b28b51e27b220073931e1d370ec42a8c7a", + "to": "0x71a41517fe65890fe835d67fce17a9747112696c", + "transactionIndex": "0xd", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x7830c87c02e56aff27fa8ab1241711331fa86f43", + "gas": "0x1e8480", + "gasPrice": "0x5f6a09d4", + "hash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "input": "0xca350aa60000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000000013000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000004fa31bbbb0729c76ca3fb7c5d466c1b30764749b0000000000000000000000000000000000000000000000000000000015476340000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000008e1e9185870f026be6b59219f673fe84481a329a000000000000000000000000000000000000000000000000000000002d27ecbb000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000060c531e7594102a7a9be19197c969639bebf5fae000000000000000000000000000000000000000000000000000000001cf8f755000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f8b2374fc5335176857aa83f8a37be8afdf8bac7000000000000000000000000000000000000000000000000000000002113fe2a000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000088a857dfc3ed7b4e326adbbe79224de634982235000000000000000000000000000000000000000000000000000000000e4e1c00000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f668293ea8362fe9dccd4499c23fcb00259196130000000000000000000000000000000000000000000000000000000002a9f1f7000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000026b23da6eb7d863bef139feb51ba027ec2f0769a0000000000000000000000000000000000000000000000000000000002faf080000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000de396526ede4218a67327cec9658e7571a0eac5c00000000000000000000000000000000000000000000000000000000017f2b8d000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f5261acdfbe5b46b6c79271ea86d933603236899000000000000000000000000000000000000000000000000000000014437f0cd000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000006de7232e53fd11e218842e5506577837134a1171000000000000000000000000000000000000000000000000000000000311d3e0000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000006de7232e53fd11e218842e5506577837134a117100000000000000000000000000000000000000000000000000000000077e07a0000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000d5b12d6651b94d6340699077258feb3314d6b1ae0000000000000000000000000000000000000000000000000000000004661940000000000000000000000000be9895146f7af43049ca1c1ae358b0541ea4970400000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f000000000000000000000000000000000000000000000002ec03212a197a0c0000000000000000000000000084ca8bc7997272c7cfb4d0cd3d55cd942b3c941900000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c360000000000000000000000000000000000000000000000230ec810de9c63d0000000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef0000000000000000000000007c06dfc7576ef157e111d80cd8ce98f8ab60feaf0000000000000000000000000000000000000000000000008b95e9381c0e24000000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f98400000000000000000000000006fd4ba7973a0d39a91734bbc35bc2bcaa99e3b00000000000000000000000000000000000000000000000334af9bea1f4c02c000000000000000000000000004a220e6096b25eadb88358cb44068a32482546750000000000000000000000009f3b333f36069244901885d5e520ffee722a4585000000000000000000000000000000000000000000000000106df6c44af68000000000000000000000000000faba6f8e4a5e8ab82f62fe7c39859fa577269be3000000000000000000000000c3bf801d58a4c0418d96eda0164fb743ad065aca0000000000000000000000000000000000000000000000016d4f1287753300000000000000000000000000006c3ea9036406852006290770bedfcaba0e23a0e80000000000000000000000002c8b4fba3b3706827c96f3e4ccbc0d1442dcd07400000000000000000000000000000000000000000000000000000016e43d727e", + "maxFeePerGas": "0xb2d05e00", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0x284ae7", + "r": "0xccb5a4f9cbbd52675934666dd5b55240a52fc8453a4ed02c0a667e222d7530fa", + "s": "0x5f1d42b6a68cd48c84bffb8d35663feeb910b2202d9ae077f34e0e47d7eed806", + "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "transactionIndex": "0xe", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xa03400e098f4421b34a3a44a1b4e571419517687", + "gas": "0x15f90", + "gasPrice": "0xa6f095d4", + "hash": "0x706cc7072418792c08feb0ace7ba254538265f6bfdb6282584f936160791d8e1", + "input": "0xa9059cbb0000000000000000000000000fac5094987a848754db82a7db870e635f12693900000000000000000000000000000000000000006d06bff6e90832e72f68a000", + "maxFeePerGas": "0xc92b663a", + "maxPriorityFeePerGas": "0x83215600", + "nonce": "0x9c174", + "r": "0xa6227d8331598c8b57b985e5e11b799c6f5e15b7e5b64e1d233783d5edf18084", + "s": "0x251e93d98b77b2ab2a270200fdb90dde273121fe2f7b5e8bcbbd1d687780c002", + "to": "0xf8ebf4849f1fa4faf0dff2106a173d3a6cb2eb3a", + "transactionIndex": "0xf", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [ + { + "address": "0xdd6e1a4e35d307497da8d5d4052173410951b3d5", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x9c04773acff4c5c42718bd0120c72761f458e43068a3961eb935577d1ed4effb" + ] + }, + { + "address": "0x615987d46003cc37387dbe544ff4f16fa1200077", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000016", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x28d47d5a1b1bb6d81ee8f3296c3aabe6858274ba016748dc240a0c7b404bed4e", + "0x81578d72e57cfe5afd3cabf194b9dd0cd31cbf55328ad151e90cde0d8a724a2f", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0xc4cd4eff418a87bd16e163858527636e3f62260f9fd3e6abc04042e6b2a417ed", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "address": "0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0xc02c10ae588f2466ea6e6350d07ab12ee7521cf6f0c110cec9b4bd1ec5838085", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000014", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0xac6fb4f0f81e11dc1f89f596e243b0ed419667343ccffe17523030f10980cedd", + "0x9d8106a7b639091777047eab6393a843ae4f778b78087f1dc0a2a206ede77128", + "0x28d47d5a1b1bb6d81ee8f3296c3aabe6858274ba016748dc240a0c7b404bed4e", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0cc3e71b6c8503b085fba098fa97a196e68800a75592ac94ee4fd52a7743498f", + "0x000000000000000000000000000000000000000000000000000000000000000e" + ] + }, + { + "address": "0x7c706586679af2ba6d1a9fc2da9c6af59883fdd3", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000588", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x087ee8928d220a836313fd42a2026f22b82c654c81888dac4ae8bd03caea005a", + "0x0000000000000000000000000000000000000000000000000000000000000587" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0xf6cc6c4222dae194a09f19d368f4b2b85698ddef67e513b005143d861f8ea8e2", + "0xbd5af5151dcb9feb2c4ef23509c863dd4415e4d2c27b5c08786933a8ed41acc7", + "0x35425d932c70410b9314c106b34cf243d577a8b57c3baf57fb710448b88ade38" + ] + }, + { + "address": "0x6c618dd1040a79923cd74113ef0ed07c07d2b0e7", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ] + } + ], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xae2fc483527b8ef99eb5d9b44875f005ba1fae13", + "gas": "0x544f2", + "gasPrice": "0x2f779f57", + "hash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "input": "0x2ba9dd6e1a4e35d307497da8d5d4052173410951b3d55eef268302615987d46003cc37387dbe544ff4f16fa1200077e0f63a424a4439cbe457d80e4f4b51ad25b2c56c271000a59e7c706586679af2ba6d1a9fc2da9c6af59883fdd3c83deea6ffc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2e0f63a424a4439cbe457d80e4f4b51ad25b2c56c0bb8353d6c618dd1040a79923cd74113ef0ed07c07d2b0e73e9e429906", + "maxFeePerGas": "0x2f779f57", + "maxPriorityFeePerGas": "0x2f779f55", + "nonce": "0x4cbf83", + "r": "0xbb4c027501530e321903206f7cbaf17b7410586c68a6a75ffebd5a3c3f634232", + "s": "0x48896f0e5f5fec1b2d65c3cf6c04bd5ba55930b86f023b1059438343dc2e716e", + "to": "0x1f2f10d1c40777ae1da742455c65828ff36df387", + "transactionIndex": "0x10", + "type": "0x2", + "v": "0x0", + "value": "0x5b", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gas": "0x15f90", + "gasPrice": "0x9b04d3d4", + "hash": "0x341b093276998eaf55ba531d7cb2be1ff32f44a398c85b60d4180791cdadf218", + "input": "0x", + "maxFeePerGas": "0x2e90edd000", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x23db9d", + "r": "0xde0674de89b18bb5bc3c687263f58e7649bbc74344b35b95d891b22d465a5daf", + "s": "0x5729711edfae9add35453fd71f65a69aff60d1b7f7323efa79bfe19483b28bdf", + "to": "0xa5ccd022e4b4ac431deadb329e20aa76c4a80f5a", + "transactionIndex": "0x11", + "type": "0x2", + "v": "0x0", + "value": "0x3ff2e795f50000", + "yParity": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xd24b2b3f3420cda82d40e0c8584b88ce7ec386e8", + "gas": "0xfde8", + "gasPrice": "0x4fb1722d", + "hash": "0xa7c324afd989fec33f0436d148f3e9ef90f7159b55075827aab7b72d6840a977", + "input": "0xa9059cbb0000000000000000000000005626213e557182a6d19048d29b535b5d7f5408be0000000000000000000000000000000000000000000000000000000129d00963", + "nonce": "0x0", + "r": "0xa9a1b25fa18f5c88abb741c220dc4bea6660040c33c777fcac746a6edb6c4e86", + "s": "0x1f0d5d0cd66e7d4153759a7124be88be0e2fe6c9f7aa477b0604c6a6fb328266", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x12", + "type": "0x0", + "v": "0x25", + "value": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x260b364fe0d3d37e6fd3cda0fa50926a06c54cea", + "gas": "0x15f90", + "gasPrice": "0x9b04d3d4", + "hash": "0xe5cb77f931850a0890a14d4ae7f73fe1bad375114d0ccf680c7c744d1f73a045", + "input": "0xa9059cbb0000000000000000000000005a617641788bc9c3a91696eda1bb66c60034c9b60000000000000000000000000000000000000000000000000000000042636c39", + "maxFeePerGas": "0x2e90edd000", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x75b0", + "r": "0x957458fa189a658986928ed43f8867206b50af621a7311ecc38adc102f32dcd9", + "s": "0x9dd044eb1178b7b43402aa135d7be8ad5f4a3bbbd189a04c2be57b2f0f3b799", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x13", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x5000afd95cbc51054caf4c5330342890ead87b70", + "gas": "0x3f950", + "gasPrice": "0x6b55cbd4", + "hash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", + "input": "0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000068a5d54f0000000000000000000000000000000000000000000000000000000000000003100604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003070b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000001351609ff758000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000027213e28d7fda5c57fe9e5dd923818dbccf71c4700000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000005000afd95cbc51054caf4c5330342890ead87b700000000000000000000000000000000000000000000000000000000015862eb60c", + "maxFeePerGas": "0x792d1e40", + "maxPriorityFeePerGas": "0x47868c00", + "nonce": "0x117", + "r": "0x50d994452bd34a1017f8dc01715c4314619e45386b47fdb5941c0774063c6e23", + "s": "0x19a353f77421f8b1b6f337318443ff1285049f98e20ed4fb696cf30d91fdb2a", + "to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", + "transactionIndex": "0x14", + "type": "0x2", + "v": "0x0", + "value": "0x1351609ff758000", + "yParity": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xc35fb86f962ea955751a793a007b5cdd44f798d7", + "gas": "0x108bf", + "gasPrice": "0x2c523e86", + "hash": "0x8af00935a2db3f2e066c91359011f9e29093f62a7616e816413f2710dbfc4b41", + "input": "0x23b872dd0000000000000000000000007d7990b713c3497937fac4331176c127710b97d500000000000000000000000016fbc59070699f26c094fa8716b743561e0c53d300000000000000000000000000000000000000000000000000000000148b1abe", + "nonce": "0x62c25", + "r": "0xa427d9860091d1c471e62fd44eb20562ed1cd42cd34fa0125a54479dc408d9d7", + "s": "0xdff66fea1e4737178aefac617bc5141e942818d9f6ef234add9380d741a9d06", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x15", + "type": "0x0", + "v": "0x25", + "value": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x5de41533c43766bb1181de4826a7f8f2e4e64549", + "gas": "0x5208", + "gasPrice": "0x330fb22a", + "hash": "0x7c406076c4f872219370ca69e2e9dfb8096c47f514615aecda99577551b8cba1", + "input": "0x", + "nonce": "0x0", + "r": "0xc579b2efa5d6a1c35c409381fd366c9a02410bb576fd9382bdb8e8658b8263f1", + "s": "0x6e4bc46e650c4bb7c05f82bff0def0922414b9844680f7282425a21787443a9c", + "to": "0x0c8aa5263afde3c43a0fe88aed2b10ade922e666", + "transactionIndex": "0x16", + "type": "0x0", + "v": "0x26", + "value": "0x6c8ae427399ab0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x3ffa6671d869ae0d923a17505e633e700fb8e35a", + "gas": "0x3d090", + "gasPrice": "0x14bfac694", + "hash": "0xef7c2d4ba0dbc86ccfd07a62ca7f843ea8cdc1587011fd8c14ba640f1535ac79", + "input": "0xa9059cbb000000000000000000000000842264311e492fdb425e8430472b6f9a4f66048300000000000000000000000000000000000000000000000000000000001ed2a0", + "maxFeePerGas": "0x14bfac694", + "maxPriorityFeePerGas": "0x12a05f200", + "nonce": "0x1c", + "r": "0xd1394a94128159724fdda3ee2861ebdf90cee5622051e4e0033d09ee3f3dca4", + "s": "0x6dcb716ca9c8bb2d4a3a036dc128b5a9d6f3580aa94951a60402e4fab1622ae9", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x17", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x552fe7e19ecd9789e57131c09712977b4d075cbe", + "gas": "0x5208", + "gasPrice": "0xd69f9dd4", + "hash": "0xac88e9bd517db66ea5eebd8caba9d5c33ddfce1f779eef3e6821e15510f4c864", + "input": "0x", + "maxFeePerGas": "0xe158605f", + "maxPriorityFeePerGas": "0xb2d05e00", + "nonce": "0x0", + "r": "0xaadb63e5503f6f955be7a06acd51010c00e6d49a2f79f186648be38bd81513b0", + "s": "0x4f542d1920058fdbaa15289d3cea5ab96edec8a2a2ae581c82e733795dce227", + "to": "0x76eeb4c8b149738a9b198d866c80e8087a0a4f17", + "transactionIndex": "0x18", + "type": "0x2", + "v": "0x1", + "value": "0x2e8f847e4fef28", + "yParity": "0x1" + }, + { + "accessList": [], + "authorizationList": [ + { + "address": "0x89046d34e70a65acab2152c26a0c8e493b5ba629", + "chainId": "0x1", + "nonce": "0x2946", + "r": "0xa8a2a3ccf59245a4e58e863d0df6bb76f9aa2cb9c1d7eff9a39f29169a89d2a8", + "s": "0x7733d3223be9565ec2f827564f966ed0af413a91153eaddf4f6ab3304ea259db", + "yParity": "0x1" + } + ], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x4791eb2224d272655e8d5da171bb07dd5a805ff6", + "gas": "0x186a0", + "gasPrice": "0x6a5efc76", + "hash": "0xda8bc5dc5617758c6af0681d71642f68ce679bb92df4d8cf48493f0cfad14e20", + "input": "0x2c7bddf4", + "maxFeePerGas": "0x6a5efc76", + "maxPriorityFeePerGas": "0x6a5efc76", + "nonce": "0x6233", + "r": "0x3b863c04d39f70e499ffb176376128a57481727116027a92a364b6e1668d13a7", + "s": "0x39b13f0597c509de8260c7808057e64126e7d0715044dda908d1f513e1ed79ad", + "to": "0x62b53c45305d29bbe4b1bfa49dd78766b2f1e624", + "transactionIndex": "0x19", + "type": "0x4", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gas": "0x15f90", + "gasPrice": "0x9b04d3d4", + "hash": "0xd7938913fd206fc1ef384e45dada725badd5a3ff87a793d9c432b70488a7bcdb", + "input": "0x", + "maxFeePerGas": "0x2e90edd000", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x23db9e", + "r": "0x6989bb3ab8e8886cc26c334042057b945fbafb19338cfa4a108c42ab6132d789", + "s": "0x3ddf325b978ef21761cb821b85b5b15a65ef412099cc91104039b5da122b5186", + "to": "0xe401a6a38024d8f5ab88f1b08cad476ccaca45e8", + "transactionIndex": "0x1a", + "type": "0x2", + "v": "0x0", + "value": "0x3ff2e795f50000", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gas": "0x15f90", + "gasPrice": "0x9b04d3d4", + "hash": "0x80c2402d4dbfadb46899b4ceb48f3851c8be0d08eb399608b6966f401653e60d", + "input": "0x", + "maxFeePerGas": "0x2e90edd000", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x23db9f", + "r": "0xb9d797a14458207ec151efc427bf04203e663450d412f2edcb687b4c5cc0625f", + "s": "0x5a1e4dee44c870e45ef0aeb6373c8f87c2767f624b9c1c5eb120d37caba21816", + "to": "0x3b26af33b78b1414e40c83be39a6f1b924b1e08a", + "transactionIndex": "0x1b", + "type": "0x2", + "v": "0x1", + "value": "0x3ff2e795f50000", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x2c61206798f1ab3bce5833ecdd4a78aeba2e6b36", + "gas": "0x247020", + "gasPrice": "0x23d05144", + "hash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "input": "0xf83374d2000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000006000000000000000000000000b167d99000cec6232e3b27f7f01d2b41c60f7fdc0000000000000000000000003b9c214a501b2ae33ab1793b57b09879a754f2ef000000000000000000000000c5327f8a6f6ea98928ff6a893d74a5cbc743f170000000000000000000000000f92c421115b1f11203abcfce78eed1aadad3e0a5000000000000000000000000f801db2654e911e922665c4cb885d8cca4c155bf000000000000000000000000c7e957681720875f3a2143f1afb72e7fb6ffdd78000000000000000000000000000000000000000000000000000000000000000600000000000000000000000073ada7d3ce2c1dcf9bb4100b650196ccc2ccdfa6000000000000000000000000df37c5d3eea96515faa286c30e8f6b05640cad00000000000000000000000000b21cef20389f300cdc7b2572f0a9a1afe62f4479000000000000000000000000f1edbdf579ad83cc86064bd089300b6b9362f084000000000000000000000000321166c624541dde00025d2d916d117410ba8421000000000000000000000000e1e82ee891f469897a815b0bfcc34dd5d597f76a", + "maxFeePerGas": "0x8f0d1800", + "maxPriorityFeePerGas": "0x11170", + "nonce": "0x4ba", + "r": "0xfbffa3c98d57923e4aabe7ddcad28263c456e4225c28bbe1c2bd989589120390", + "s": "0x3c04c706b36b0b24cf6c97b025eb29935a3112b4436bcc927ab82e0e8b0c28e8", + "to": "0xceb550db4b2f889782936bbedfe42ab406e8243d", + "transactionIndex": "0x1c", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xaf8648ea8cecb238158b6fdf3fd3faf57f7e5828", + "gas": "0x37d7e", + "gasPrice": "0x6b55cbd4", + "hash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", + "input": "0xfd9f1e10000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000bc0000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000689fa0e400000000000000000000000000000000000000000000000000000000698ceee400000000000000000000000000000000000000000000000000000000000000003d958fe20000000000000000000000000000000000000000d7f47ee15044ce5c0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000364c828ee171616a39897688a831c2499ad972ec00000000000000000000000000000000000000000000000000000000000018b400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014b66cd7a745400000000000000000000000000000000000000000000000000014b66cd7a7454000000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001aa535d3d0c000000000000000000000000000000000000000000000000000001aa535d3d0c0000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000689fa0e400000000000000000000000000000000000000000000000000000000698ceee400000000000000000000000000000000000000000000000000000000000000003d958fe20000000000000000000000000000000000000000a29357375656c9f90000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000364c828ee171616a39897688a831c2499ad972ec0000000000000000000000000000000000000000000000000000000000000ef100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014b66cd7a745400000000000000000000000000000000000000000000000000014b66cd7a7454000000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001aa535d3d0c000000000000000000000000000000000000000000000000000001aa535d3d0c0000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e582800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5c2e500000000000000000000000000000000000000000000000000000000699310e500000000000000000000000000000000000000000000000000000000000000003d958fe200000000000000000000000000000000000000002fe9624b3e78822e0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000364c828ee171616a39897688a831c2499ad972ec0000000000000000000000000000000000000000000000000000000000000ef1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000139ba1106b264000000000000000000000000000000000000000000000000000139ba1106b264000000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e58280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019396991e7c0000000000000000000000000000000000000000000000000000019396991e7c0000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e582800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5c2e500000000000000000000000000000000000000000000000000000000699310e500000000000000000000000000000000000000000000000000000000000000003d958fe20000000000000000000000000000000000000000624359a486d8b48b0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000364c828ee171616a39897688a831c2499ad972ec00000000000000000000000000000000000000000000000000000000000018b4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000139ba1106b264000000000000000000000000000000000000000000000000000139ba1106b264000000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e58280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019396991e7c0000000000000000000000000000000000000000000000000000019396991e7c0000000000000000000000000000000a26b00c1f0df003000390027140000faa719", + "maxFeePerGas": "0x792d1e40", + "maxPriorityFeePerGas": "0x47868c00", + "nonce": "0xb2", + "r": "0x9f60f2ef3f5228b21403114f8429bbac75b92450e22f725fdb9b059a28c9dde9", + "s": "0x3602001215d9f8703ce93e1c669c67046b6bdf31dbb7fac375f3503d06e74135", + "to": "0x0000000000000068f116a894984e2db1123eb395", + "transactionIndex": "0x1d", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xe75de7c288e72bb44ce46d4a795bb794bd19664b", + "gas": "0xfde8", + "gasPrice": "0x4fb1722d", + "hash": "0xffe56e6ac055509a585cbce2c45f16125695652d5214c2d06b0c4a1646780b0e", + "input": "0xa9059cbb000000000000000000000000408cb2bb16d073f0b6d4785fdab75b184e59e41e00000000000000000000000000000000000000000000000000000000831967dc", + "nonce": "0x1", + "r": "0xc783ef9fa2f5689c52282e1b3c225ba0e9d85a30e4ca12169d5983df4bdc2177", + "s": "0x7eeba7844d4faf91a651e8db26d93cb431e9e50eae0cbf4221ca20f189feafb2", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x1e", + "type": "0x0", + "v": "0x26", + "value": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x1cca465c62fb70741dd181ee86b53974db7d4122", + "gas": "0x8f028", + "gasPrice": "0x5f6a09d4", + "hash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "input": "0x049639fb00000000000000000000000000000000000000000000000000000000000000040000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000002b477372c53d68000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000022812aa3caf0000000000000000000000005141b82f5ffda4c6fe1e372978f1c5427640a1900000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000bf16540c857b4e32ce6c37d2f7725c8eec869b8b000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000002b477372c53d6800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008500000000000000000000000000000000000000000000000000000000006700206ae40711b8002dc6c0bf16540c857b4e32ce6c37d2f7725c8eec869b8b1111111254eeb25477b68fb85ed929f73a96058200000000000000000000000000000000000000000000000002b477372c53d6803ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000000000000000000000000000000000c4e3736f000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x686bea4e", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0x12", + "r": "0xd6d31bd1912778e81e5f6b147983f1af9dce728da7bc5b247fad6332b82bc0dc", + "s": "0x6131aa416e85c9334e456fe83d148a1c337131ef66c3e2e4fa229d37b7a7a237", + "to": "0x3c11f6265ddec22f4d049dde480615735f451646", + "transactionIndex": "0x1f", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x776e7ad582e7ccc660f628774c54dd5aad1f14a1", + "gas": "0x5208", + "gasPrice": "0x495818a5", + "hash": "0x0230cf61b59c8ac739a7cced4477df1611842ca8faeadeab19307145889782a7", + "input": "0x", + "maxFeePerGas": "0x4c885df0", + "maxPriorityFeePerGas": "0x2588d8d1", + "nonce": "0xd4", + "r": "0xd130c8627f94d5fc6655556e7a2a4431f35a1f1c2d4513e401b5a08a44c77044", + "s": "0x528d66e37ccaac4a4b30186de4483879bb625bf8c11e62bc9d84d5d4e0139c82", + "to": "0xb9bd424575359fcc3d3c1538b2e11e37fb517fcf", + "transactionIndex": "0x20", + "type": "0x2", + "v": "0x1", + "value": "0x1141817eaf3e29a", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xaf31d6f4e3841b28c5b0581770ffaf2e1f558515", + "gas": "0x30d40", + "gasPrice": "0x4182b434", + "hash": "0x30c4df0d162a8e6b3a0677be57584d0a50da42677eff50c900f15f36ca1ad7a9", + "input": "0x8703a14049cde59eeb9733a488b963e44544990641bab848f807b8ccb680947fe318ac28dd993d7af5d9873f1127af77a360d4f3c1018b5a8782d75c7509fe8d383311432833c2c8a293f0a2a7b1bbcdbcc53df43624b7dea2c3eaa1e640bc5c", + "maxFeePerGas": "0x4bfef4c0", + "maxPriorityFeePerGas": "0x1db37460", + "nonce": "0x12", + "r": "0xf4c3510a1569fc094383d9c522a07506d021f1cee66fe364bf428b496f544a7f", + "s": "0x2047793252aabaf72b58eddcd7923d2b2c45ed4dd0ce508f4b238f66005b6f00", + "to": "0x0000bbddc7ce488642fb579f8b00f3a590007251", + "transactionIndex": "0x21", + "type": "0x2", + "v": "0x0", + "value": "0x1", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x70df61c20275d9088c4e50c12de9af6d23276e5c", + "gas": "0x11056", + "gasPrice": "0x5f6a09d4", + "hash": "0x315141d0a9a6f772f7a151235bdc319a32aed88e0ddd6ca34a94f903cdecd562", + "input": "0xa9059cbb00000000000000000000000069275b5c10143c8fd1cbdb2637348b1558c736600000000000000000000000000000000000000000000000000000000001312d00", + "maxFeePerGas": "0x6625e6dc", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0x9d", + "r": "0xb8bb48b4443aa7ac31be9a04bfc14052f538413cc573cc6d06966df1b5c07837", + "s": "0x6d225e5f06a50f60692de4fbc8c8fcdb0c2278ab06e011a41cfe961275baf414", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x22", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x10fdba297c8da9fa8904ffd699ce81de5615985c", + "gas": "0xf519", + "gasPrice": "0x3fce7f68", + "hash": "0xd208e85483ab2355d80676863ecac1a0c67f2455f8af2bcaa68e6cc9bbf92fe6", + "input": "0xa9059cbb00000000000000000000000025d772eb5e0c9dcd7229c7b9158b1e6cb73dadc100000000000000000000000000000000000000000000000000000007aef40a00", + "maxFeePerGas": "0x46071a12", + "maxPriorityFeePerGas": "0x1bff3f94", + "nonce": "0x8", + "r": "0x4aaf48f73a9e21f8c180597170b013ba09472d5c94c168851a83557570a36ac8", + "s": "0x1718671522544df411a23b8e0155ebf4ab12d38060127d061a80a6496415022b", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x23", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gas": "0x13015", + "gasPrice": "0xdc3a2c62", + "hash": "0x8e59ea830734462addb7c73571c2092c1d2bfcc0689987a2d08dd234827e5c5e", + "input": "0xa9059cbb000000000000000000000000a842ba73e0bfe9adeacd527570cc3ab2617de753000000000000000000000000000000000000000000000012f365a5d8850e0000", + "nonce": "0x1b5890", + "r": "0x74a40f16aa4c3630e4c3db8bd0e858dc928c724db0420b5b876bd098b9323db5", + "s": "0x3e34780bc8530e360c420a89fa6d7c1f2ebf88fd7eb002ac040cc85d10393cd9", + "to": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", + "transactionIndex": "0x24", + "type": "0x0", + "v": "0x26", + "value": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xb1b2d032aa2f52347fbcfd08e5c3cc55216e8404", + "gas": "0xea2c", + "gasPrice": "0x29c520d4", + "hash": "0xeb72be22b2d9521239741a245f8c90a561199b1df62649eea12f1d504fcf0511", + "input": "0xa9059cbb0000000000000000000000008e7dedd9b1a7fd101a08b1c95f3c602fe0d4b48600000000000000000000000000000000000000000000001fd4a70fe0b9180000", + "maxFeePerGas": "0x44978472", + "maxPriorityFeePerGas": "0x5f5e100", + "nonce": "0x1c5046", + "r": "0x7fa203846559204e74e4582bfd14c4d98956c8022e7a8d73b0b118c303ded8a", + "s": "0x332762ddece05a4bbc2a594955d7391791afcfcfdc36f9a8760c87ff8a396c60", + "to": "0xc52c326331e9ce41f04484d3b5e5648158028804", + "transactionIndex": "0x25", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x87fcc6982257de5bdaa679d08e56117aa0b5a5d1", + "gas": "0x40fc7", + "gasPrice": "0x251c128e", + "hash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "input": "0x791ac9470000000000000000000000000000000000000000000000000002dc9608740d6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000087fcc6982257de5bdaa679d08e56117aa0b5a5d10000000000000000000000000000000000000000000000000000000068a5ce8f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000cced7736d6781f2a3aa9c7a2a24fea935c9fa9f8000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "maxFeePerGas": "0x2ae72a17", + "maxPriorityFeePerGas": "0x14cd2ba", + "nonce": "0xa", + "r": "0x14a1376af91b40ed1ee0d2bbbc52fa168060bff14acf003ff760af7ea20d9a2a", + "s": "0x34f01622feaf1ef0d6d97056a19eb020a053e71f2ae08555a5dd3952b4815922", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionIndex": "0x26", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xf51710015536957a01f32558402902a2d9c35d82", + "gas": "0x15f90", + "gasPrice": "0x338a0fe7", + "hash": "0xf01b080912591defbcce2bb82770072f83b3a91a83ccf4bd7d54893f8cb9cbae", + "input": "0x", + "maxFeePerGas": "0x746a528800", + "maxPriorityFeePerGas": "0xfbad013", + "nonce": "0x6492b", + "r": "0x694607d920514e4044689d082d84e6bedbc5447613695e7b3c27e42bdcbdfe0e", + "s": "0x6c2b2f93ae2ff8d04a698cbf4f3bd1637a6206018e9e8b084d2f77fc7a0dcb9c", + "to": "0x6f4bb3d0625b2cfd4400c6834943fde26c057f7a", + "transactionIndex": "0x27", + "type": "0x2", + "v": "0x0", + "value": "0x635fb4242c74000", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x9696f59e4d72e237be84ffd425dcad154bf96976", + "gas": "0x32918", + "gasPrice": "0x29c520d4", + "hash": "0xfd26a9f8e2db5d764cf715384c0bfac63f02b7562b0e6f955709d4da06ef261c", + "input": "0x", + "maxFeePerGas": "0x17bfac7c00", + "maxPriorityFeePerGas": "0x5f5e100", + "nonce": "0x7b73f9", + "r": "0x401a4ceafae4577e72043c1a3bdaa91a648218e42e56db29fbde1021e3d52f0d", + "s": "0x2bfd49ed4fe208497ae427e0fc7e2a0c4326e0610b0d0e39a256b61f68fb0c8f", + "to": "0x19d315d10037a99d54d099a13e5e3a99a826ecae", + "transactionIndex": "0x28", + "type": "0x2", + "v": "0x1", + "value": "0xaf799de600c00", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x4976a4a02f38326660d17bf34b431dc6e2eb2327", + "gas": "0x32918", + "gasPrice": "0x29c520d4", + "hash": "0xea9ffed304d53fbaabf6114693e8bb852ce67b3246f6db6bf20e2bb63c606cb6", + "input": "0x", + "maxFeePerGas": "0x17bfac7c00", + "maxPriorityFeePerGas": "0x5f5e100", + "nonce": "0x4f278f", + "r": "0x436d711ad2dc2eaa545612cfcd02c7e8d6be2f26da4030cd8e98e9178a364c06", + "s": "0x41020c56073ae7c1132d74bea483d74dfefdc89e7f4a49c8fefbdc529d625f47", + "to": "0x7a9c7afb0673dfb0cacb2bfde0a55c873c59fe1c", + "transactionIndex": "0x29", + "type": "0x2", + "v": "0x1", + "value": "0x37e23e15c27000", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x6dce2424e724a02d231cbcf64edeee8d15bd9e4b", + "gas": "0x5208", + "gasPrice": "0x27e37c7e", + "hash": "0x6bbd906f6a605b46a4863de27fbd8497f1e320ddb54b8daf1c932fb25ecce27b", + "input": "0x", + "maxFeePerGas": "0x27e37c7e", + "maxPriorityFeePerGas": "0x27e37c7e", + "nonce": "0x9", + "r": "0x60a484d887401d328b4753991e25d50f90f651a136efb6cd1dad61fbc1db9c04", + "s": "0x55346221ba438e894b9d1a17d2bc1676c942d2966a1e0686afd19563ff72a5cb", + "to": "0xb386dff391830280763869d8f416206d16289e31", + "transactionIndex": "0x2a", + "type": "0x2", + "v": "0x0", + "value": "0xa9bb3d1574010", + "yParity": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x2d0d297c319be90844fab9b4ee070b8a81243163", + "gas": "0x1776d", + "gasPrice": "0x3b9aca00", + "hash": "0x3f164f5ef4d0c9cea6fd7defbda6abdfb3f6dd12957fe85f721d1443e8ac1998", + "input": "0xa9059cbb000000000000000000000000cff7b816bdcc412d3a8ee0461ba7a30a9b6a5cac00000000000000000000000000000000000000000000000000000000da054a19", + "nonce": "0x6", + "r": "0xa9c6d1ef65c0290498a2788c225c6602924359c000ee4e8ccdaccb6e199b696f", + "s": "0x157545cc15cdb06b6c67749fee395fda7c768ca23c43d5ef69059c7e3630eefa", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x2b", + "type": "0x0", + "v": "0x26", + "value": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xb5357b69181efcf8f6f45198b601e21e270a20ff", + "gas": "0x5208", + "gasPrice": "0x261331f8", + "hash": "0xe79c391b1b8ee215a67c818d1b3318872b9c8282d8ea3956349a831fa7fffbcd", + "input": "0x", + "maxFeePerGas": "0x261331f8", + "maxPriorityFeePerGas": "0x3861426", + "nonce": "0x18", + "r": "0xce1f442f77e65b6ed7442ec68b12e90cdd2213c39d2b05c1a0fdb0c3b8330104", + "s": "0x57c413c84e94dfce00d71ccbfaec6f812d4c543afc07b6f9a4f1eacbb3a07176", + "to": "0x7bf38c17a6519dd17842bc37044cc30b92b81dc5", + "transactionIndex": "0x2c", + "type": "0x2", + "v": "0x0", + "value": "0x38d7ea4c68000", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x2cff890f0378a11913b6129b2e97417a2c302680", + "gas": "0x5208", + "gasPrice": "0x23d0d9fc", + "hash": "0x124c9963d0414550d86a8c6d796b054f04ab221dfd4df6fc37135a5d2a33ed09", + "input": "0x", + "maxFeePerGas": "0x46e974ec", + "maxPriorityFeePerGas": "0x19a28", + "nonce": "0x43c8", + "r": "0xe3bbe13001aa15f6223d1b562aab56b9343279396285a4bd358c1a8d92b09135", + "s": "0x79575a6f819c568d1c72532d91978821fd0686d895431aab07410b608afa6f11", + "to": "0xa455eb2c7a4f4b90106cad96cc9c36e62cd46806", + "transactionIndex": "0x2d", + "type": "0x2", + "v": "0x1", + "value": "0xe337fe1d2d2a6", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x0da475ffc29623e805bbcf7216ea8a438209882c", + "gas": "0x7b0c", + "gasPrice": "0x23d0d9fc", + "hash": "0x4d99f405c49268e1d4a3845a46e54178c6b1becd3e2dacc512d18007f1be3076", + "input": "0x", + "maxFeePerGas": "0x32ef3ede", + "maxPriorityFeePerGas": "0x19a28", + "nonce": "0x5", + "r": "0xc6aa87874762cd830219c5dee3a2b40908e647cfcfce00c7ffff7ef2d10cb7be", + "s": "0x20a2562942cfadedc56e9caaf5de99d3486fe9fb0421e154c3bced4abde03c20", + "to": "0x4762631fdff1a1fed3eedf95a685d57007cf9b43", + "transactionIndex": "0x2e", + "type": "0x2", + "v": "0x0", + "value": "0x9ee5c3eb92dba", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x6f0a91ef8adeb54db0e63be507747ab9a31d3926", + "gas": "0x25fc3", + "gasPrice": "0xa3c4056e0", + "hash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", + "input": "0x122067ed0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0554a476a092703abdb3ef35c80e0d76d32939f000000000000000000000000000000000000000000000000672ed4843c7fdc000000000000000000000000000000000000000000000000000000000739cf796700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5ce6300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000014c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000", + "maxFeePerGas": "0xa3c4056e0", + "maxPriorityFeePerGas": "0xa3c4056e0", + "nonce": "0xcb4e", + "r": "0xfbcf5ebf202ea38778ea135d8b30a7f1ab7d94e93914d34c62135da9d27b9064", + "s": "0x65e245ab4abac1126c0157973bd49c52bfee4de99e517cad4877111987f12cab", + "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", + "transactionIndex": "0x2f", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xdada79040afa6ac7d7660e7e18f8a9b82c31f49a", + "gas": "0x5f3cb", + "gasPrice": "0xe53094a6", + "hash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "input": "0x6440a7b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d51a44d3fae010294c616388b506acda1bfaae460000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013464f00da49360000000000000000000000000000000000000000000000000000000001598ad015000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000068a5ce63", + "maxFeePerGas": "0xe53094a6", + "maxPriorityFeePerGas": "0xe53094a6", + "nonce": "0x10e63", + "r": "0x3857dd7e7abb2727d39efde59b70914a66843584afe2b957fd03c2e53d0daacb", + "s": "0x4e4936c5e78688096ce0b452f5c896b83587602b81f71c51c305a48c4e27d734", + "to": "0xec6fc9be2d5e505b40a2df8b0622cd25333823db", + "transactionIndex": "0x30", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xebedc8e9ff409b23dd251f87ccbffa8075f87255", + "gas": "0x3a4ff", + "gasPrice": "0x153bf91bc", + "hash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", + "input": "0xfb034fb200000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016c1d8e56b0900000000000000000000000000000000000000000000000000000000000197f33a5e", + "maxFeePerGas": "0x153bf91bc", + "maxPriorityFeePerGas": "0x153bf91bc", + "nonce": "0xccb6", + "r": "0xb816f82aef3895d4fd4645f077aaf5516a8e85b7a07b6747627b9d96067b97b", + "s": "0xd6e1b7c3b82321ec4cb1434197195f05296c32d6d0d83e921cad948c4e87ad3", + "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", + "transactionIndex": "0x31", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xac8b6e55c809e4dd83dc9943cf460c1caca84125", + "gas": "0x31759", + "gasPrice": "0x3a5d5e6a8d", + "hash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", + "input": "0x020bf14f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021c67e77068de97969ba93d4aab21826d33ca12b000000000000000000000000000000000000000000000002f58e79a84de88000000000000000000000000000000000000000000000000000000000350c4f7e6b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000068a5ce63", + "maxFeePerGas": "0x3a5d5e6a8d", + "maxPriorityFeePerGas": "0x3a5d5e6a8d", + "nonce": "0x176", + "r": "0x393387ba9ae21992ccf8f5e4a1a042309dabfed3b76816d801f33441850c8894", + "s": "0x907bb95211c9212ee648dcb3664d7112de73ca2d59c2eac0ae43e5a36b8e4d4", + "to": "0xba47cbfdd61029833841fcaa2ec2591ddfa87e51", + "transactionIndex": "0x32", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xeaa9ebddd373c4bd8bb92dfcc9c7e7fcdb268e51", + "gas": "0x26506", + "gasPrice": "0x182f2c39bc", + "hash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", + "input": "0x122067ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011b815efb8f581194ae79006d24e0d814b7697f6000000000000000000000000000000000000000000000000defc43c79ba7e0000000000000000000000000000000000000000000000000000000000f9cdd60a200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000068a5ce6300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000014c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000", + "maxFeePerGas": "0x182f2c39bc", + "maxPriorityFeePerGas": "0x182f2c39bc", + "nonce": "0xcbde", + "r": "0x8181bd9af20a0bb0dc4b72f4daf530e13834b91fa4e53859e2c2dc626944e04c", + "s": "0x67d290c1f08200040d2cb664791c6fe566f8e80369033eb170319a987b0bcfa4", + "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", + "transactionIndex": "0x33", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x45923a43492d0deb458cb97c4ca8b7ccb0a20c71", + "gas": "0x32150", + "gasPrice": "0xee6546334", + "hash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", + "input": "0x020bf14f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000072331fcb696b0151904c03584b66dc8365bc63f8000000000000000000000000000000000000000000000000b47a1942be73e8000000000000000000000000000000000000000000000000000000000ca2e6c8ca00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000068a5ce63", + "maxFeePerGas": "0xee6546334", + "maxPriorityFeePerGas": "0xee6546334", + "nonce": "0x175", + "r": "0x5ed24d08d0c52fef6c1561414763233453db75bf38c6756c1951eadf28cf29c6", + "s": "0x1fe1052938e1cc0e215aaccf274c3102e981eac2d9124e2d8fcf5f9c3e534ef8", + "to": "0xba47cbfdd61029833841fcaa2ec2591ddfa87e51", + "transactionIndex": "0x34", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x639b2d751e6436667b97fe350c0fed111fc33fb4", + "gas": "0x61a80", + "gasPrice": "0x23cf3fd5", + "hash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", + "input": "0xa41e223e0000000000000000000000000000000000000000000000000000000068a5ce5b000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cba739d65838c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043b8825a96b1a40000000000000000000000000000000000000000011e9a3cf9af7e9000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000001999000000000000000000000000000000000011e9691e21c02d00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x4a817c800", + "maxPriorityFeePerGas": "0x1", + "nonce": "0x2b2", + "r": "0xe5763e58ce01fe198e8df0167b1bf1394c174d79408e08a48f4038d608f445e9", + "s": "0x3eb7ffc7b76bee7f3e868de32bdee668c9817e88c6f29eb8afe2d475e61e2b0", + "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", + "transactionIndex": "0x35", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x5c132e26694e1f3bad52a4f55c9cfd0f181d7463", + "gas": "0x61a80", + "gasPrice": "0x23cf3fd5", + "hash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", + "input": "0x92928cad0000000000000000000000000000000000000000000000000000000068a5ce5b0000000000000000000000007df7c84f2f9dcef3c0813e539878b76b89a916f80000000000000000000000002dff88a56767223a5529ea5960da7a3f5f766406000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000007a9126f567e1700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000069c1adf3fbff1400000000000000000000000000000000000000000002b947d2d96c9ce0000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000011e92ef2bc10760000000000000000", + "maxFeePerGas": "0x4a817c800", + "maxPriorityFeePerGas": "0x1", + "nonce": "0x117", + "r": "0xd349d67cfc4e26f5bc84ef21edb19db953b8a83181d675d82dab505635fac148", + "s": "0x1ced1890562e403f87a2088313fd03db667a70bdf5dbd79a7e3f12725184a48b", + "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", + "transactionIndex": "0x36", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x69021e92840bd777cf2c495f3be516700e430a5b", + "gas": "0x61a80", + "gasPrice": "0x23cf3fd5", + "hash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", + "input": "0xa41e223e0000000000000000000000000000000000000000000000000000000068a5ce5b0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000004e20000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077ab64900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021ac6aeaccbcfc000000000000000000000000000000000000046c7cd6e0d4198000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000001999000000000000000000000000000000000011e9969a97d7b100000000000000000000000000000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x4a817c800", + "maxPriorityFeePerGas": "0x1", + "nonce": "0x180", + "r": "0x63e8f5ff5376e49a8606fb7f67d3d69fa71977edecd3355904b688f56cc8800c", + "s": "0x3ca634692b8971f2fdc0daf2e5b3685430045999b3a05f43802aa36f2ff889c8", + "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", + "transactionIndex": "0x37", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x545da54509ef233642343b8beac5ef4443e79d73", + "gas": "0x328da", + "gasPrice": "0x36eb8fdca", + "hash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", + "input": "0xd44db9b600000000000000000000000000000000000000000000000000000000000000000000000000000000000000006ca298d2983ab03aa1da7679389d955a4efee15c0000000000000000000000000000000000000000000000002680cb38d1649c0000000000000000000000000000000000000000000000000000000002b22a042c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000068a5ce6300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000014c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000", + "maxFeePerGas": "0x36eb8fdca", + "maxPriorityFeePerGas": "0x36eb8fdca", + "nonce": "0x4475", + "r": "0xf65b1a5097eb0d9af81ea0630d3df35c166ba0d6c7f8bda028cdefb07156793b", + "s": "0x5e2d06cbce62a0c8cbf6186014e4d99364d3c080f368fc38713ba5d969a031c1", + "to": "0x3b55732f6d3997a7d44a041b8496e1a60712a35f", + "transactionIndex": "0x38", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x448166a91e7bc50d0ac720c2fbed29e0963f5af8", + "gas": "0x668a0", + "gasPrice": "0x214369152", + "hash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "input": "0x000000cc000000000000000000000000836951eb21f3df98273517b7249dceff270d34bf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000007bde86a2e53bb9a600000000000000000000000000000000000000000000000000000008ac01b3f7", + "maxFeePerGas": "0x214369152", + "maxPriorityFeePerGas": "0x1f067517e", + "nonce": "0x6e984", + "r": "0x3c226a72302c824f086ba712b16b8171d20e02c3c66a46bfe1ef2221cadd7a19", + "s": "0x2521c3058f7ccfe4ea90fbdbd3e50e81074b0f942414946acea4c38e4eb984a3", + "to": "0xfbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "transactionIndex": "0x39", + "type": "0x2", + "v": "0x1", + "value": "0x161bd0f", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x7f982f64ee9dfd024acb8c2abb5884fef0b9d440", + "gas": "0x8a81d", + "gasPrice": "0x1ebd76860", + "hash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "input": "0x4a7cf36200000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000ab81f100000000000000000000000000000000000000000000000000000000000000040000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae900000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000c097ce7bc90715b34b9f1000000000000000000000000000000000009cd692d05830b8000000000000000000000000000000000000000000000000000000000000000000000002b5e3af16b188000000000000000000000000000000000000000000000000000000000003548cbd9800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000005236333ef2baa45b450689b69e4e4b277d84f9540000000000000000000000000000000000000000000000000000000354afaf87000000000000000000000000000000000000000000000002b5e3af16b18800000000000000000000000000000000000000000000000000000000000068a5d534c38ba9abdb3bfd3bd5af820b0f5294c179238e8bf49f66530d7ab4d942b1443200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000002b5e3af16b188000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041c06548f979488f40a5e67df89044c31cc8c09cdcddead87b922fdc90415dfdfd5333c8b7fcdd848988feada2c472c936aba57bbefb8d2240eadfaa62b84aa63c1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002644dcebcba0000000000000000000000000000000000000000000000000000000068a5ce720000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f000000000000000000000000000000000000000000000000000004c99ea11513000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9000000000000000000000000000000000000000000000000000000035413c376000000000000000000000000000000000000000000000002b5e3af16b18800000000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000041d9d399148666c7ec4ac0b54a5b579279768fb1b04c28207ac772116827972c98367096e6131fcc8dcd85a0b3c05fce18365c506f84823db8dfd8c6b0a42b94ad1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x1ebd76860", + "maxPriorityFeePerGas": "0x1ebd76860", + "nonce": "0xaa4", + "r": "0xe005032dc6a82456cf452e127796330c03d2409f751fa0d215fc97c7c025c65d", + "s": "0x2559d38504e632d1223adbee990aac226371a2f0161465a636135f5e3bf56d12", + "to": "0x4dd1be0cd607e5382dd2844fa61d3a17e3e83d56", + "transactionIndex": "0x3a", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x55823001c8cd87a6e86716ca768bce51f2d89c9c", + "gas": "0x33450", + "gasPrice": "0x9b04d3d4", + "hash": "0xbc730be36c276ca5a0a02eeaa192ed302cf87c7453ad567e22fc951a0bf8d7e8", + "input": "0xb61d27f6000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000ce5586f0fbe00a3efbfc8d2caa714fdbe6a052eb0000000000000000000000000000000000000000000000000000000129fc57bd00000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x74e1881c00", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0xe79", + "r": "0x61d71d5dae66567f1be32e4419e475498180c144f0f23186160aa19262689b35", + "s": "0x6b1165bed38ac44740c0197ba42d72935f886c0da4ddd1483c90c48638b9c081", + "to": "0xf7b52be96b229dc63e6301bea175a1b5f756c274", + "transactionIndex": "0x3b", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x8611abf54b7ad26ccbfe99a213c201ee60dba0e5", + "gas": "0x1200c5", + "gasPrice": "0x5f6a09d4", + "hash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "input": "0x6e553f6500000000000000000000000000000000000000000000000000000000000f42400000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5", + "maxFeePerGas": "0x6625e6dc", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0x1", + "r": "0xc15c3beb2643397b167f73e4208a1e18161f957666ff3af4f9d774f5ac4dd632", + "s": "0x326866003f73e568f94506656a79970bb45a753f003f0dda6c4edffc3fd4999a", + "to": "0x13a5a916356242879b9509fd12bf8e4760a3f438", + "transactionIndex": "0x3c", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gas": "0xc350", + "gasPrice": "0xdc3a2c62", + "hash": "0x6ae2f1fd6116d2b93223ae3548caf9d85e43d8fefec88814d36f38b916bab652", + "input": "0x", + "nonce": "0x1b5891", + "r": "0x2f2d6b2ee27fd239872543e343d55042c629adeefce711b422b1c052f637f634", + "s": "0x7ac630b345cde63c4a3a2bf0e82ec1792dfeabf9ad958abead10f53363ab7e36", + "to": "0x1b216d8b75a050041e59860ff7fda6e3411424f4", + "transactionIndex": "0x3d", + "type": "0x0", + "v": "0x25", + "value": "0x6b7dabf453000" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gas": "0xc350", + "gasPrice": "0xdc3a2c62", + "hash": "0x3991e33f52ae3cf5167bf1f07cc8d358caf226022c5128ad991fe279b702a27d", + "input": "0x", + "nonce": "0x1b5892", + "r": "0x9334bfd70e73391955cafbab1a4a3fe0d6f45cbf125612a582de6928ada229df", + "s": "0x47de964d62eb82bab8f037f3ec8bc0c62f8b4101e53e26ff7de95948bb351389", + "to": "0x2e17aa7437b4ac446e5750202ab1d48c7884f5d9", + "transactionIndex": "0x3e", + "type": "0x0", + "v": "0x25", + "value": "0x7fbdd3efbad000" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gas": "0x13015", + "gasPrice": "0xdc3a2c62", + "hash": "0xed80b011a517f5aab29dc7b79061fd54b68cc36c2023bfaff2812be53328e7fd", + "input": "0xa9059cbb000000000000000000000000a882df02283fa89d5659a870414e2c1803fd54ca00000000000000000000000000000000000000000000000ab407c9eb05200000", + "nonce": "0x1b5893", + "r": "0xd532b623026c3bb4d210427ab27abe9e2b6d6e9cfb0cabc64b8da3fcf3290d06", + "s": "0x7b26ad69f11e8a11058bcea370fbc2f80c5791293302501701dec3f3b3077784", + "to": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", + "transactionIndex": "0x3f", + "type": "0x0", + "v": "0x26", + "value": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gas": "0xc350", + "gasPrice": "0xdc3a2c62", + "hash": "0x06d504980fbacf359463537147c81348f5978476433367b067b185ad95be82e0", + "input": "0x", + "nonce": "0x1b5894", + "r": "0x2aee26e10d81bfccbb812d506a36f097ef5582d7b4101dd6139b745d92770772", + "s": "0x3a0dc1a108b95ac12d9ff8676a2ac200869477ee838219ec87daa4e8ad6996b6", + "to": "0x0b9b42d7edb6b669a24f50157f80e5d909cb6eb8", + "transactionIndex": "0x40", + "type": "0x0", + "v": "0x25", + "value": "0x6ed83c14fe000" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gas": "0xc350", + "gasPrice": "0xdc3a2c62", + "hash": "0xd33b517a15607a18d3c33ddc1f237aa61e9a3947b21287768ce3ba86d2495a03", + "input": "0x", + "nonce": "0x1b5895", + "r": "0xa1c92ec425dbb612821bbe6b1eb67efc61f1535216c020390d93fe208b75d06d", + "s": "0x60d70a99a9a6ed375cf0a27fb9b281efe0be46d57d66e87299bdaddaccaca679", + "to": "0x0f000db45a0f4320ac77c5ba21312ae52174326a", + "transactionIndex": "0x41", + "type": "0x0", + "v": "0x25", + "value": "0x24736a67654000" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x7586854ec236f3ef8e7e5c7cc55dd3b449feed98", + "gas": "0x11326", + "gasPrice": "0xd6455cd2", + "hash": "0x1827070bb19ea45e3bf9eec57ccc94690038337ada1bc618ab79eb21a8078dac", + "input": "0x095ea7b300000000000000000000000077edae6a5f332605720688c7fda7476476e8f83fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "nonce": "0x3ac", + "r": "0x56cc252d5c95397705254d0fddb0e8943f25c7871fe05ebfa46e364353f6f619", + "s": "0x22f9be91fbc204ec34d0a878e66bd5ea743cdcb1e5e591b91f2405f2a23c6b43", + "to": "0xfa417cd491632620a582851b07abf7e3447bba71", + "transactionIndex": "0x42", + "type": "0x0", + "v": "0x26", + "value": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x3fdd41c3622aa33227d42d87c6838aaa9dca0dcf", + "gas": "0x19e10", + "gasPrice": "0xd69f9dd4", + "hash": "0xc8d9083af83a6c8fa73051663d8a2c9d79195be21063c09066d39d562d1be993", + "input": "0xa9059cbb0000000000000000000000008476de5d91038c1015c73e6fec0a97d45d91ec180000000000000000000000000000000000000000000000000000000008ebb1c8", + "maxFeePerGas": "0x12a05f200", + "maxPriorityFeePerGas": "0xb2d05e00", + "nonce": "0xf41", + "r": "0x578055145aa121f1bd1b3c4b89ed6f1824fb80a474de8e59e1a6d8a5f2238fbb", + "s": "0x4ecba6e8255a8fb4cc0abad783836984608971cca76e37f7d77fcbedbe134bfd", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x43", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x93228d328c9c74c2bfe9f97638bbb5ef322f2bd5", + "gas": "0x15f90", + "gasPrice": "0x9b04d3d4", + "hash": "0x7e1bbe3049928a58a967ff5188615b894fc8093d92778abcdedbdbdf9957c052", + "input": "0xa9059cbb00000000000000000000000041ea4e72b88a8e84b83b739f4092339d721574cf000000000000000000000000000000000000000000000000000000000ac9d740", + "maxFeePerGas": "0x2e90edd000", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x1312", + "r": "0xe139af5d1da3060d9d2ab5c1d5dd5872bc18547ee11ee520ba9e76b97ac04cb0", + "s": "0x76094d40297c5046e7a0fd0174aaae8861f9fc55aadbb3832126749717b05ea7", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x44", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x8347cd390c696372aa5ac17865117d5521c5476a", + "gas": "0x19c6d", + "gasPrice": "0x7a4ab68f", + "hash": "0x75205100cde683dcb84a3b361f7320c0a0adad9f4c151a7088938db3a90c682b", + "input": "0x99e1d016000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000005c7bcd6e7de5423a257d81b442095a1a6ced35c50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001ad7b9392320000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a0000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000005120bce000000000000000000000000000000000000000000000000000000000511e68ef0000000000000000000000000000000000000000000000000000000000002105000000000000000000000000394311a6aaa0d8e3411d8b62de4578d41322d1bd0000000000000000000000000000000000000000000000000000000068a5cd170000000000000000000000000000000000000000000000000000000068a5fc010000000000000000000000000000000000000000000000000000000068a5ce73000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000001dc0de00410000000b00000000000000000000000000000000000000", + "maxFeePerGas": "0x7a4ab68f", + "maxPriorityFeePerGas": "0x56d6c92d", + "nonce": "0x1627", + "r": "0xf3b8b1720b9dfa3b1c0933702a14a51319d0f18801bf7e709ccabcb992ac2e3f", + "s": "0x492ca14316335f0c2ae6d0abcd537aba6eabce9697798c83ff524f3125b10c03", + "to": "0x8347cd390c696372aa5ac17865117d5521c5476a", + "transactionIndex": "0x45", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x91d40e4818f4d4c57b4578d9eca6afc92ac8debe", + "gas": "0x33450", + "gasPrice": "0x9b04d3d4", + "hash": "0x6a3001d1458aaae959847d930c1f1b4e813899c8702e5a3f7ea14123b633ee52", + "input": "0xa9059cbb000000000000000000000000124f9ec75369ea83cdfdb1d87c5874ca7f081107000000000000000000000000000000000000000000026d04ab7d750dfb350000", + "maxFeePerGas": "0x74e1881c00", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x47863", + "r": "0xa3cb3bb14756750d0afb69334bf38fcf9353693ab1e48e4bb349f71b8f7a965a", + "s": "0x4fd9ad5a80f6d2856721e68d490136a0ff7fb406f0187dcb19e4d0426270a0be", + "to": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "transactionIndex": "0x46", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [ + { + "address": "0xfc557ba572e71e4e2b7d63a5cf9c2f0d6420446d", + "storageKeys": [] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0x9ede93be0d8fc6a5eb9cf1c7345a85b7519d8487a727aef0c2f00ab966aa7716", + "0x75245230289a9f0bf73a6c59aef6651b98b3833a62a3c0bd9ab6b0dec8ed4d8f" + ] + }, + { + "address": "0x4585fe77225b41b697c938b018e2ac67ac5a20c0", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x702cd40275723fbecf854291f1eca58b5a0de7d378ea31ec006833fd99382dea", + "0x0000000000000000000000000000000000000000000000000000000000000049", + "0x000000000000000000000000000000000000000000000000000000000000004a" + ] + }, + { + "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0xdc276a4f120117ad5ae6415d1c724b4f3a0e81f0ee6466e1392ca121b63123f2", + "0x99713ceb4322a7b2d063a2b1e90a212070b8c507ea9c7afebed78f66997ae15e" + ] + } + ], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x0fc7cb62247151faf5e7a948471308145f020d2e", + "gas": "0x34bc0", + "gasPrice": "0x5f6a09d5", + "hash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", + "input": "0x78e111f6000000000000000000000000fc557ba572e71e4e2b7d63a5cf9c2f0d6420446d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c42f1c6b500000000000000000000000000000000000000000000000000e6292767661e2a9000000000000000000000000000000000000000000000000000d16039177aa27000000000000000000000000000000000007f2d493f8910d1c97ad14a25e09620000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000068a5ce5bff000000000000000000000000000000000000000000000000000000000104e300000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x7151a9bf", + "maxPriorityFeePerGas": "0x3b9aca01", + "nonce": "0x8c7d", + "r": "0xcbc30e8040bc68e164f289d4b06de9479faa3a606014d6c6f7ba457ae712f9b3", + "s": "0x6691860adf9831eef8da3264136d40b5bd9e8d99b4c79d514cda13f99da916c9", + "to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c", + "transactionIndex": "0x47", + "type": "0x2", + "v": "0x0", + "value": "0xad9c18", + "yParity": "0x0" + }, + { + "accessList": [ + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "storageKeys": [ + "0x995f3b129dd3291868ddb9cf202c75cd985227d50e309847fbab0f8da403b19c", + "0x35d7fb7665514f774d2c2df607e197eb8674b6e63d2638472758647a2e67406a" + ] + }, + { + "address": "0x60594a405d53811d3bc4766596efd80fd545a270", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x9ecf0b7b4087cf876a9696caf0f337e48f3ddf6a97759bd98730b0fb16d02a1e", + "0x0000000000000000000000000000000000000000000000000000000000000016", + "0x0000000000000000000000000000000000000000000000000000000000000017", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0xf762dfe765e313d39f5dd6e34e29a9ef0af51578e67f7f482bb4f8efd984976b", + "0x75245230289a9f0bf73a6c59aef6651b98b3833a62a3c0bd9ab6b0dec8ed4d8f" + ] + }, + { + "address": "0x846484c4cd32bdc8cd8e64a63b51219bdab4e1cc", + "storageKeys": [] + } + ], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x234de29cc82f9ce20cdc71b8b4baf6d51f4a1a64", + "gas": "0x33808", + "gasPrice": "0x5f6a09d5", + "hash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", + "input": "0x78e111f6000000000000000000000000846484c4cd32bdc8cd8e64a63b51219bdab4e1cc000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c42f1c6b50000000000000000000000000000000000000000000000000049bff3124b7bb060000000000000000000000000000000000000034a36bf0c2444e000000000000000000000000000000000000000000000000000003f690eab89b022908ec8ec30000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000068a5ce5bff0000000000000000000000000000000000000000000000000000000000fd5300000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x7151a9bf", + "maxPriorityFeePerGas": "0x3b9aca01", + "nonce": "0x837", + "r": "0x1734b5653d3f44712d66a208cba28c0424d8d35f9861a3d05f0fd2d13bb0de", + "s": "0x54d30c2c0f05495108e63fbe6a5a01d4d55dcdcf399b3f1bbc94ca5c1e7c1e6e", + "to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c", + "transactionIndex": "0x48", + "type": "0x2", + "v": "0x1", + "value": "0xc71c18", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x22b0351d445840db59b97df3808dd642dcb17e96", + "gas": "0x4be58", + "gasPrice": "0x3bb9cbd0", + "hash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", + "input": "0xa00000000000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d3600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000278f7f1db3b9b5e000000000000000000000000000000000000000000000000000000002c5a0de9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "maxFeePerGas": "0x3bb9cbd0", + "maxPriorityFeePerGas": "0x17ea8bfc", + "nonce": "0x119da", + "r": "0x69d3709a625e6f6e87b756ce39d54d1f17d33f1e05f3def4c878547b48bb608e", + "s": "0x45123039f3cbd282d6364ffe704db550477d7c5085a6fe0038c614cbde5fec1a", + "to": "0xfbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "transactionIndex": "0x49", + "type": "0x2", + "v": "0x1", + "value": "0x161bd0f", + "yParity": "0x1" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x46340b20830761efd32832a74d7169b29feb9758", + "gas": "0x55730", + "gasPrice": "0x77359400", + "hash": "0xa2a8edbe294afde748bf14aae5427b8af22a65d9e1ea8de5c410057d577a480e", + "input": "0xa9059cbb00000000000000000000000025637c1059b044c262cb1108c899cad44c8cd908000000000000000000000000000000000000000000000000000000001d34ce80", + "nonce": "0xec635b", + "r": "0x7f073b08dd1af9bfe6027f7cd4a6fc0e14a2af4ace9e492077701e1ede1e152a", + "s": "0x3faba817da0be1f93282cf3095c384f265d6d2d6ce3cbb8db72927933301ab9c", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x4a", + "type": "0x0", + "v": "0x25", + "value": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x1864d150aa60111fb312a1b8f4cf8e6dabd3094c", + "gas": "0x5208", + "gasPrice": "0xd69f9dd4", + "hash": "0x1de9ccef004f5f226c9468fb6abdc40755e1e5c7ddfcf1dd4ea2cbb708cc2165", + "input": "0x", + "maxFeePerGas": "0xe158605f", + "maxPriorityFeePerGas": "0xb2d05e00", + "nonce": "0x15", + "r": "0xdf2e9e34d4ccb274fedde20ba4227fc5b05acabc5dce11af046d327c0e57d3c0", + "s": "0x74067cf58df3cb918444561a387aaee5112279d9ad2d2e49bc485906c6f2b79e", + "to": "0x0abbc482fbd91dbf413e3d6cc5622e03552ac13a", + "transactionIndex": "0x4b", + "type": "0x2", + "v": "0x1", + "value": "0x2cba482deeeb28", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x5962604feb383ca4164107583d147b2aa1d86d54", + "gas": "0x5ca67", + "gasPrice": "0x5f6a09d4", + "hash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "input": "0x721c651300000000000000000000000000000000000000000000000000502072edbac1fa", + "maxFeePerGas": "0x6458e75e", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0x6", + "r": "0x669340e86385fcde0e093f926561a6deb41f9643c256562771700d17eed3ab86", + "s": "0x40c8fba726529149dddf62d9d71bf82016969557e857c4c6805a942da1fef178", + "to": "0x2401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", + "transactionIndex": "0x4c", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x663b7c32c90f6c3fee8e8eecced18c007d69193a", + "gas": "0x55730", + "gasPrice": "0x419ca4d4", + "hash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "input": "0x791ac94700000000000000000000000000000000000000000000eeba4b9f0d5bdd105a3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000663b7c32c90f6c3fee8e8eecced18c007d69193a0000000000000000000000000000000000000000000000000000000068a5ce5b000000000000000000000000000000000000000000000000000000000000000200000000000000000000000010ee9f68ee4e4d311e854ae14c53f5b25a917f85000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "maxFeePerGas": "0x64b53fc4", + "maxPriorityFeePerGas": "0x1dcd6500", + "nonce": "0xae", + "r": "0x7cc510f75dfe6f1ab9ff2d963e9a6091d28cb91c35755f6dac7e3f9d178fe5af", + "s": "0x2c9df5bd35d81991db51ced0de82755177ab4559f540bebbab7fc4baf7f81021", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionIndex": "0x4d", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xb6839dc14ace0934a2c422369aa34b39b8c534b1", + "gas": "0x5208", + "gasPrice": "0xb2d05e00", + "hash": "0x9ffbef1785c43203687d9ecebc2e1dc67bd4b69337d9576d9992039d328ba5c3", + "input": "0x", + "nonce": "0xc0c", + "r": "0xfb30b51d7e1efc3354c0f34c4f60c150ab3a2d02935fc2ae8940f8c5e1e02ccf", + "s": "0x66978516f6e11d371c3887861859eeb0bd2f43719ad2af2759550d9b480e6fbc", + "to": "0x2fd2ea3b0545bf12dd03ef6274aede12274da9a6", + "transactionIndex": "0x4e", + "type": "0x0", + "v": "0x25", + "value": "0x117723a0ec73170" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x91604f590d66ace8975eed6bd16cf55647d1c499", + "gas": "0x5208", + "gasPrice": "0xae1aec40", + "hash": "0x2cbad0ad9584888bb5ad6d856ea602fa2a3afe764252499f2de6afe2a69ffdae", + "input": "0x", + "nonce": "0x25c92", + "r": "0xb4fde1e62fb081477772b495f213f666d7c6357d790537aeba4312e5003f6806", + "s": "0x596dcc6cb828ad72d6883d5dc7625707c7117a947eaebc011e74d23f18bf15c1", + "to": "0xfbc09172b41c69aa617629847e5d80e35981932d", + "transactionIndex": "0x4f", + "type": "0x0", + "v": "0x26", + "value": "0x15830edf2a17f" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gas": "0x15f90", + "gasPrice": "0x9b04d3d4", + "hash": "0x88871027255d345a9f5887127c9acb33704c9a1db48142f8185eabceeab719e1", + "input": "0x", + "maxFeePerGas": "0x2e90edd000", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x23dba0", + "r": "0x407e491945a87a4ac61e7d868fcf6caf4e6ac689420938f655373fe139370ab2", + "s": "0xb0062b1dde70fc52b751679622f903866e940b7f0ca4cf38b7e66c33c40083e", + "to": "0xe47d43dcd14e9fcaf96c232dae3f84d81c1ac725", + "transactionIndex": "0x50", + "type": "0x2", + "v": "0x1", + "value": "0x3ff2e795f50000", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xa9ac43f5b5e38155a288d1a01d2cbc4478e14573", + "gas": "0x33450", + "gasPrice": "0x9b04d3d4", + "hash": "0x5803753b8b9f1a604f6590849d3a9cd2a7c0f6fb6334d02a01ba5d66206c450a", + "input": "0x", + "maxFeePerGas": "0x74e1881c00", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x484c8", + "r": "0x999edff33e2b883e82f520799806f32706a6c08e6bb69f540a92cb80f350a371", + "s": "0x341156f7150f3e6e095e9e2ae09d54cc2675428362d666502dccbc16aeecfa3b", + "to": "0xe337299f1d8f5a249147bf2e795d612b891ab90e", + "transactionIndex": "0x51", + "type": "0x2", + "v": "0x0", + "value": "0x247624e5547000", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xbe19155113cbfa0b0555d6c316b18133b10b312d", + "gas": "0x9e73a", + "gasPrice": "0x9b04d3d4", + "hash": "0x09ebf2e04dbaab1d0ad74c275b776c6398084d5558290d804063d0a6f477c61e", + "input": "0xe63d38ed000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005600000000000000000000000000000000000000000000000000000000000000028000000000000000000000000f05cd1707fe94f3228296aa26247bae9be7fead6000000000000000000000000bfd5d536458507c5f911493dba9e88badc96321b000000000000000000000000d30dbe4c7860a731275ad989da2c172ddfaa1607000000000000000000000000bc79eaaa52ce243036c8d0a0356f19d5bdf8c169000000000000000000000000efadeab0116e40d6d73817cd4f6a127c4bae31c8000000000000000000000000c462622ee05fe15e0b7ea4023b98af160962d9fa000000000000000000000000364e11071689ca8b51ec67b8095047609272fb4700000000000000000000000022fc139c1801a3fb34c10ff9bf847c99669a51d7000000000000000000000000cd9a2ee841649898664debac0371b76977c8d4460000000000000000000000000ed66c88c463c26099e97c4a07754f7d2b5bcd8200000000000000000000000058d80fa6ff132b316aedf9d6e3cd5697ee068ed6000000000000000000000000526ca4eb907f9dbceb79d34aa2bb7ea7760d58e300000000000000000000000011fcc097ba2414b9f7246eaa582c259326738c78000000000000000000000000fec18ccf7b4f3ae8461e16d1b406575a351037700000000000000000000000000e17d638bcc412ff787b7889a410ac9096d18490000000000000000000000000aac4df958bab3b1ec483120620ad93106c0bed6a000000000000000000000000f4a2a04bad3209c98eed8ab3be7a5cccc1f32148000000000000000000000000760e40919aa8e26a98e9c68086ef84080d3bec4f000000000000000000000000d46117ca6716960e52df84bc4e45a0ca1bcdc63900000000000000000000000061ec939e331e2de8529d25911f21060685ba3e43000000000000000000000000ef4dc27fe6a0701fab7de0762b4c81db90a2b783000000000000000000000000252a9e7f3b79d611620504c8cacf7a882b80d5830000000000000000000000006a4846613810406b426cedc3afdb00dd8e838cbb000000000000000000000000d2c2275d30f35a821b51a7a2399100a65c6449a70000000000000000000000000447f6e60aa071cca64081b76cede63e7f0ad6d40000000000000000000000001291eba10a206c59cf188aa8967905ac2bc9caee000000000000000000000000fefce0d7581dc91dab6cbfbdd9eb673af2e796b8000000000000000000000000d9208a1803dff14cc05f64c42c8c4d4fb1cbecaf00000000000000000000000010dca1e9f47dca5fe0152025e0d2757ae5ee50ac0000000000000000000000002f29bc446409e8ee5b29b9542b2e56a6fd07d04b000000000000000000000000ba68312ba97084a9ab6fe926bcc5ffdec37646fa0000000000000000000000008e296c68e4fda7ea1a54f50fd9a23513c80c5b75000000000000000000000000d8f5e763d0bac8c138d174c2d3db7d8b32f87ea2000000000000000000000000d8305c41b5e1bb19c1ea24e67bfebb4b9e207d4100000000000000000000000070b13b1045202734269f8a3ce34279d8e06ea7660000000000000000000000001c8969bb448abb87a722c57b6bbc76cf0de71b1d000000000000000000000000cda768814f3285c224dfce613d82b6e0bb1a7c42000000000000000000000000792132869978e58d372d5f5c30e2ebd1cac192b6000000000000000000000000af87358a5a9600afcfccc745b4e81a75f6cb7d610000000000000000000000008bbf3b5d640f89c6e07d1b081ecb8662f022c45f000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb92000000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000030d98d59a960000000000000000000000000000000000000000000000000000030d98d59a960000000000000000000000000000000000000000000000000000030d98d59a9600000000000000000000000000000000000000000000000000000354a6ba7a1800000000000000000000000000000000000000000000000000000354a6ba7a180000000000000000000000000000000000000000000000000000039bb49f599a0000000000000000000000000000000000000000000000000000039bb49f599a000000000000000000000000000000000000000000000000000003e2c284391c00000000000000000000000000000000000000000000000000000429d069189e00000000000000000000000000000000000000000000000000000429d069189e00000000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000004fefa17b7240000000000000000000000000000000000000000000000000000054607fc96a60000000000000000000000000000000000000000000000000000058d15e176280000000000000000000000000000000000000000000000000000061b31ab352c000000000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000000000000000000000000000853a0d2313c000000000000000000000000000000000000000000000000000009b6e64a8ec6000000000000000000000000000000000000000000000000000009b6e64a8ec600000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000000de0b6b3a7640000", + "maxFeePerGas": "0xa7c2cc55", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x663", + "r": "0xe58fbd871ef95c343a9ffb66333c54cd37adbd44948669c48060a41c432ec119", + "s": "0x1596b5c1246cf247ff386cd0b60002929768e4ef326c95a2e49287cdde2d3d51", + "to": "0xd152f549545093347a162dce210e7293f1452150", + "transactionIndex": "0x52", + "type": "0x2", + "v": "0x0", + "value": "0xafb15aeca8720000", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gas": "0x5208", + "gasPrice": "0x23cf3fd4", + "hash": "0xd20af84c937b6bfb1cbd0dbcde686c9bbdd6a3904257523bba99bd50e879f8a1", + "input": "0x", + "maxFeePerGas": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "nonce": "0x2c5cdd", + "r": "0xf1a1330a93e743c1af959f8ab5f6d8ad96271533389cf78a024757f925d09524", + "s": "0x7e735935043383326086dd91d60b08c7790338d940b229ef2ad139b75b1353b7", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionIndex": "0x53", + "type": "0x2", + "v": "0x1", + "value": "0x2d852ce936f60", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x7d7e377ee0168ddb578ef10661827cf1f71a6712", + "gas": "0xb491", + "gasPrice": "0x5f6a09d4", + "hash": "0xef162cf825f7bd785fd8229e52972e62855b7d44dcdd3038990fd95625a9dc56", + "input": "0xa9059cbb000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43000000000000000000000000000000000000000000000000000000002fb9b660", + "maxFeePerGas": "0x9502f900", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0x0", + "r": "0xd49644b179f2d9aac7beed64ce8ceb08603db6e0ac461ad29a8c1c5cf4d3d824", + "s": "0x3d11453483e0a2995a34010a69ec280547607b598b91fc82491ff9cbad3d949c", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x54", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xf8ae00151ae5c2b5d430ab4e9dab01a770c1fca9", + "gas": "0xb485", + "gasPrice": "0x5f6a09d4", + "hash": "0x6f4c0ef6cf1c52b0261982d2c8bdfc3f9073dd8af06ffdd253d5b3e49d3152cf", + "input": "0xa9059cbb000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43000000000000000000000000000000000000000000000000000000001dcd6500", + "maxFeePerGas": "0x9502f900", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0xb", + "r": "0xa12d01cb9fa007e26d0bd14e0a0023adbce3266b9c41345a2cab935bd5f1125d", + "s": "0x4abc115b7602f5a366827b7d646f582b418cf55d79c82447bbb269c141d8ec93", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x55", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x01884eb29311cf4fbbf59465aff0fbd123f84713", + "gas": "0xb485", + "gasPrice": "0x5f6a09d4", + "hash": "0x31109524218b0f4e2f747b5163bd532e63521b998bff69fb07fa44cb68a09298", + "input": "0xa9059cbb000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43000000000000000000000000000000000000000000000000000000000c1f0700", + "maxFeePerGas": "0x9502f900", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0x0", + "r": "0x58ea7af68f5bba2fa3a2541668f7d03e8f465cd584359ca163535b63d18fe176", + "s": "0x329bc5cf61a603dc4a36b51ff69d2bd9de531fc9f666dac13e1f25ea64e1c80d", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x56", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xeb5fb7ce4528ee42bf2c7765ae70ca1deb2ef09c", + "gas": "0xfde8", + "gasPrice": "0x4fb1722d", + "hash": "0x74f20b477ad72c790aa0a5742daf4aeadb1fbbd0edcfd74490f4ea9ec32d9a29", + "input": "0xa9059cbb000000000000000000000000203ff9f3e2af2ceb4dd62914af2bdf8ebfc5326400000000000000000000000000000000000000000000000000000000b2eb3a55", + "nonce": "0x0", + "r": "0x4e3a9dd3a0ecdf4aee14e25901da20fee27cc09df1308fa404483fcf51f8534b", + "s": "0x2ece62b2787333df6fbcc117335d7f35487fff5fe8a5b883156e349f980286a3", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x57", + "type": "0x0", + "v": "0x25", + "value": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x0e71589abe9d1215535dc94c85482fe5954fdac9", + "gas": "0x5208", + "gasPrice": "0x77359400", + "hash": "0x9cc25ee19cb4404d4bbeb96d4f9e9ceefe81ba8245f0f7c01a266900f9b4e745", + "input": "0x", + "nonce": "0x0", + "r": "0xbd8ec8a907255d6a3f36f0c12649e7921067b90bcfb07ddb889bdde4d73ed0dd", + "s": "0x68404b6c46df8c56d373c68f35c09e2543113a83afc1bc5abfed607ca5028820", + "to": "0x0b7342a7af6bf6cc0ff8909ba1d70770863c74b5", + "transactionIndex": "0x58", + "type": "0x0", + "v": "0x25", + "value": "0x5d55309626b000" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x21f2f76af55060df2a0fba013d4dd9d9f8ab2dea", + "gas": "0x4460a", + "gasPrice": "0x5f6a09d4", + "hash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "input": "0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000068a5d551000000000000000000000000000000000000000000000000000000000000000309050c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000006f4cc3821aa200000000000000000000000000000000000000000000000560a5b0a95e8d74b5ce300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bc2ecbe2195114b82f03680ed4270fa7008f3be0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000fee13a103a10d593b9ae06b3e05f2e7e1c000000000000000000000000000000000000000000000000000470de4df82000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000021f2f76af55060df2a0fba013d4dd9d9f8ab2dea00000000000000000000000000000000000000000000000006f05b59d3b200000c", + "maxFeePerGas": "0x6458e75e", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0x11", + "r": "0xacd0dd0c3dccb80ba925acf6772dff577c648476339758a60ccff48e2e272eed", + "s": "0x11a0782ff70ef6e3eb0e27c9c006a6610d42b5fbb514bc0def5d349d7dcd1540", + "to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", + "transactionIndex": "0x59", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x930a46935042d35cc4393ff5f9b9bf9f2e3afd09", + "gas": "0x5dc47", + "gasPrice": "0x2824a9d9", + "hash": "0xb903093efd1a45a2869f91f0169c3113ccc44fc9a70268af055392b6f4a6dece", + "input": "0x501d976c000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000013000000000000000000000000967bdfb1dd57308eb3e6910fe4357178eb6c6c6000000000000000000000000035ea699b892e9ce7ebfbcd2bbfaaedb2f17a5ad1000000000000000000000000ae650050e4264e3462df71c1f9d3be9afe311009000000000000000000000000a34e4aee609c09cef1e414a8a7123d1027451c8b0000000000000000000000004fb5e5ef3a1b036a49557fedcdefee373d831f9600000000000000000000000050d83e000fbb2bcd539125a7efc85fbca69c3550000000000000000000000000c30b83c943e25639102e6a5c982f1d572aa7c437000000000000000000000000fedfd8dc267cab022b9eec1c7d523454c9cd3ca3000000000000000000000000647d7d88cc316900642f45c080dc046edd5b113f000000000000000000000000816f3011bf8f3bf8412f5618b3627151bd126893000000000000000000000000683684277e66c5425af1d94ed3d90f8098267934000000000000000000000000d8ca026ad2d3cc48b06176c8c12f7d208794dbbc000000000000000000000000efa955acfef6a649f0a97bba849b0524f4dab49f0000000000000000000000001b01bc11993c567b7c0326620a6d36a55c8cc2280000000000000000000000007f1dcbe37bdb8c870c239f6cbc3f1c46de1b23e70000000000000000000000003ed076bbe73ca46670ad067e435d25c7709d6cbe00000000000000000000000093a495092b48db8b4e67d5b1020cc84fe67a7813000000000000000000000000da62185fe293c5a1dfd5ac315808b2de69cc88590000000000000000000000005183993ca2258547043ca96e41d3be2e4d1aeb38000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000001f54c17737c0fa60000000000000000000000000000000000000000000000000065e28cbf2c4eeb0000000000000000000000000000000000000000000000000008ee87c9450eeb0000000000000000000000000000000000000000000000000011121f3e25500000000000000000000000000000000000000000000000000000ae01f88295b7b400000000000000000000000000000000000000000000000000a1b48f9398c0000000000000000000000000000000000000000000000000000de0aa289343389400000000000000000000000000000000000000000000000000f412811f4a949700000000000000000000000000000000000000000000000002297e4b42c9397a0000000000000000000000000000000000000000000000000100cd90b2a953d20000000000000000000000000000000000000000000000000032fb70a4763390000000000000000000000000000000000000000000000000069ec1e4be1d781f000000000000000000000000000000000000000000000000015414782ca3d3e8000000000000000000000000000000000000000000000000034f026815219ee10000000000000000000000000000000000000000000000001449c67e0c5ed81f00000000000000000000000000000000000000000000000000769645a87bfaca000000000000000000000000000000000000000000000000000f4cce904020d00000000000000000000000000000000000000000000000000083734dd0b0800000000000000000000000000000000000000000000000000000a7553350ebc000", + "maxFeePerGas": "0x2a9e4d18", + "maxPriorityFeePerGas": "0x4556a05", + "nonce": "0xad1b", + "r": "0x2ff3eb498dca54f79bc122c1a38befb0ae7d726298b24b53134f5d90e0ad15c9", + "s": "0xda0884bfea67619d8760ff5967980e3760d7d8ac49eb9a5a0694c66cd3b5738", + "to": "0x5b14db1af7101ec1dafa828eaa774e13161efb53", + "transactionIndex": "0x5a", + "type": "0x2", + "v": "0x0", + "value": "0x373334a20351e1d8", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x25b944a4dc81077e483bf59f618974e177627593", + "gas": "0x5e56", + "gasPrice": "0x71ebcf1c", + "hash": "0x18663217afb22c7ab2918545d837875df6d98706ac7227a8a08b4b0cc850c9d8", + "input": "0x", + "maxFeePerGas": "0x774fd708", + "maxPriorityFeePerGas": "0x4e1c8f48", + "nonce": "0x4c", + "r": "0x33e08a09416167ed9542187ce13dde704e119ae4a3cf36b6c45c2cf70989a329", + "s": "0x7944ce143460d2a5805ce7db21bb4aa9e2563d10197928e1c1a6758dde65a674", + "to": "0x910ac37b45718838b35ba569dd926904274b682e", + "transactionIndex": "0x5b", + "type": "0x2", + "v": "0x1", + "value": "0x168478c61f0fcc8", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x896cdba2559cfdeec8a2356bb36c92fab614a4cd", + "gas": "0x11056", + "gasPrice": "0x47094b30", + "hash": "0x889b19404fe581f2b094bc9d159d0d1599870ad9cf39cb330e68a2777fb91d5e", + "input": "0xa9059cbb0000000000000000000000009ba8071de40b13c3b4807c57c2b554fb3b9e0b2b0000000000000000000000000000000000000000000000000000000004c4b400", + "maxFeePerGas": "0x510fec66", + "maxPriorityFeePerGas": "0x233a0b5c", + "nonce": "0x23", + "r": "0xb4284dd3d709cf625a29e1a18fc95f8cca80c9ab5cfd8a2b1fcf4b9f03f1b38a", + "s": "0x534e996d0a8b3067d516944f466b38b566fe81c62c9a9fc2975aa1306cf01766", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x5c", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x9b03a65530b8f9584beabe8c6d64d3d4bcadd3af", + "gas": "0x11056", + "gasPrice": "0x47094b30", + "hash": "0x0f6c5aec4835ffbfab3db13c5a4fdd44e96b7185df23626e8ea1cba5739c6649", + "input": "0xa9059cbb00000000000000000000000054519c53bc21bc7739464850268f1b7d2b3317a00000000000000000000000000000000000000000000000000000000000048c10", + "maxFeePerGas": "0x510fec66", + "maxPriorityFeePerGas": "0x233a0b5c", + "nonce": "0x0", + "r": "0x1d33b9aea3bbb9d42fc88c647b6c3dc299a1ad39f255c0a16ed491607f6a5f59", + "s": "0x383d0213b811e26df102533477c7381311b800d72cae99852ba10bae83801258", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x5d", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x7a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e", + "gas": "0x72808", + "gasPrice": "0x9b04d3d4", + "hash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "input": "0x846a1bc6000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000e35fa931a0000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000068000000000000000000000000000000000000000000000000000000000000006c0000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000007600000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000e35fa931a00000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000004d0e30db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b300000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d6660000000000000000000000000000000000000000000000000000e35fa931a00000000000000000000000000000000000000000000000000000000000000fcc980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000455534443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009696d6d757461626c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a307863653136463639333735353230616230313337376365374238386635424138433438463844363636000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c5000000000000000000000000000000000000000000000000000000000000000400000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000005a0000000000000000000000000000000000000000000000000000000000000072000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000ac000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000104414bf389000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d20000000000000000000000000000000000000000000000000000000000000064000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f400000000000000000000000000000000000000000000000000000198c7cbc2de00000000000000000000000000000000000000000000000000000000000fe77800000000000000000000000000000000000000000000000000000000000fc60c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000104414bf3890000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d20000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d0000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f400000000000000000000000000000000000000000000000000000198c7cbc2e000000000000000000000000000000000000000000000000000000000000fe7d80000000000000000000000000000000000000000000000001a80ae654dafe92d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000010000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000242e1a7d4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000000c509b86228a6c23bbba872ac4345d5a000000000000000000000000000000000c509b86228a6c23bbba872ac4345d5a0", + "maxFeePerGas": "0xa4203ac4", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x5", + "r": "0x88364d0c78f354f57143abba2c2356e291537d4dbdafc8399e8fc1d8885f9ab", + "s": "0x521d5fc4b4fdd533014b933805667adba546dd8cf1136d9d84e195298964e308", + "to": "0xce16f69375520ab01377ce7b88f5ba8c48f8d666", + "transactionIndex": "0x5e", + "type": "0x2", + "v": "0x1", + "value": "0xf886307c8cb7", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gas": "0x5208", + "gasPrice": "0x23cf3fd4", + "hash": "0x09bee4a68da1a0248abcb8b48ef7bd15bdf4c81e2183503d5d4de68b5f558a08", + "input": "0x", + "maxFeePerGas": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "nonce": "0x2c5cde", + "r": "0xe3742c154d013763c273cb775b968d1d4ba5e1a9ff1f72be6e44ad9c9f73794", + "s": "0x1867c5d750f11b533790699e71af9245d522bc241605f8bb33cb213cdbda058c", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionIndex": "0x5f", + "type": "0x2", + "v": "0x1", + "value": "0x1d54a4fb28b60", + "yParity": "0x1" + }, + { + "accessList": [ + { + "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", + "storageKeys": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xcb9bc6901b8328baa93d5336681aa8492517a2cac8a3fd7c32ab3c0d6bafd571" + ] + }, + { + "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x037199b0744c1ed84f0f7ae52d5760694aa3b29cff7b52bc1088ada5714d2980", + "0x057b09ddd84d79cc63e69fb06535985afb771ee7afe4ea34abc9ef7c96980d3a", + "0x0e1b053921947bb61bee9f4bdc68bd6cab8cd39676a3cd25cbd3106515a600eb", + "0x455834699c5564190d48058e2d2e544a0b4e2838253a203e6be1389c54aae4f5", + "0x47e689df7d1790c4c0e3b3e7a7038d6249f247630a93895e36180f067cbef1c4", + "0x64ac251e964da0f5b6d07d47428fa7c41487ff293e1deb77eb407c15028dab0c", + "0xee4d6b3f5bff5ce92442e4d4a360ae064af5d0d67d9b4da1508bc4e462eae046" + ] + }, + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "storageKeys": [ + "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", + "0x825c54d62ddb4b2cdc677f01a756014816eb6f8131b86522cfc1169bfa29047b" + ] + }, + { + "address": "0x6c063a6e8cd45869b5eb75291e65a3de298f3aa8", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000030", + "0x75f96ab15d697e93042dc45b5c896c4b27e89bb6eaf39475c5c371cb2513f7d2" + ] + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x5e0e0bf7c6a341550890f20eb2bee1f1fdc1279dc3d08bf94ec14b58b56d0145", + "0xa650ff812770bfb6adf143a5d896d2d2729208a6475246e58dfc98228ced296d" + ] + }, + { + "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", + "storageKeys": [] + }, + { + "address": "0xa43fe16908251ee70ef74718545e4fe6c5ccec9f", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000000c" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0x68e65bda2915772569224994d285f0b459d64f53fd952966225bf9b4df32f338", + "0x6fb7173931c795313ec7b4fe9a203cf03726c329ceab0d00c114fca68d3c6ff9", + "0x7eb73af6c6f0a8c693c0b4dad74e68b9f2946a2cdbe741b0448caf20325be06f" + ] + }, + { + "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", + "storageKeys": [] + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x1f7a81d2f1f4a077ecb92cebd9b046a5c533ba2337c06dbba67afa748fca415a", + "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", + "0x825c54d62ddb4b2cdc677f01a756014816eb6f8131b86522cfc1169bfa29047b", + "0xcc5b58d8f9820bb78bf36fd49ecd41d77319a6d68107afe17a8af7d504d30666" + ] + }, + { + "address": "0xe28b3b32b6c345a34ff64674606124dd5aceca30", + "storageKeys": [ + "0x618059526d7d1bb5608c8e3a0740d1f656fa8a764ecca600a8e0e3e0c313ce66", + "0xa44b731602b5f99009ea5bf8fe3e732f61d79da751ded1d6123bb19e45289151", + "0xa5a0ef7d3eef8b32f68dbfdaa69010f4ab6b591bbccd25e4966c64af9ad30500" + ] + }, + { + "address": "0xf3fe03cd60d1f138ebc106ce9575475100ebfc9a", + "storageKeys": [] + } + ], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xc7899ff6a3ac2ff59261bd960a8c880df06e1041", + "gas": "0xb59e4", + "gasPrice": "0x2816807a", + "hash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "input": "0x13d79a0b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000006e000000000000000000000000000000000000000000000000000000000000000080000000000000000000000006982508145454ce325ddbe47a25d4ec3d23119330000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca30000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca3000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000092ee6eb40000000000000000000000000000000000000000000000000000d71eadcb709d000000000000000000000000000000000000000000c481865574c0da3bcecb0f000000000000000000000000000000000000000000000000000b723f9c9a2a34000000000000000000000000000000000000000000000037483622c9d325650b000000000000000000000000000000000000000000000000000000003ca941af000000000000000000000000000000000000000000000008b50bca4aa290943d000000000000000000000000000000000000000000adb53acfa41aee1200000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000005000000000000000000000000511cc062c4257664427654b232dc636a424e4382000000000000000000000000000000000000000000000000000000003ca941af0000000000000000000000000000000000000000000000372bc6cdded5e5ef9c0000000000000000000000000000000000000000000000000000000068a5e7abf3ef4e1477de213e3c0a9dcc25112f3c62d65283db00bab8de61147b78f9a07b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000003ca941af00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041ef90ab93bc9a3ed02a462614a87353a5b4a8329b96bc1cf81b082f2f355ccad61945dcdad942a02c1feede9d3b9d720762200aea92f2d11e6815fcdbe3f5e9301c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758000000000000000000000000000000000000000000adb53acfa41aee12000000000000000000000000000000000000000000000000000008ab9a59eb804c280b0000000000000000000000000000000000000000000000000000000068a5d54238ea81af132723b40e895ea753af184bec74662c1e007e1a1225186b4f0d280100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000adb53acfa41aee120000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000004104517b883e0c24b47bd264a734f0b6986db0dd8f6790f5fa4d146b9d226018ab28d316b0da91f7e21d241ffbdd5fa79a018410548b909a46974b3e1c834b6de51c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001200000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000a43fe16908251ee70ef74718545e4fe6c5ccec9f000000000000000000000000000000000000000000ada5ce2d2204f16ed6fa3000000000000000000000000000000000000000000000000000000000000000000000000000000000f3fe03cd60d1f138ebc106ce9575475100ebfc9a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000284d41aacaf00000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001e4128acb080000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000724b20e5c768e2f00000000000000000000000000000000000000000000000000000001000276a400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001040000000000000000000000000000000000000000000000089f58be7673e97ea0000000000000000000000000a43fe16908251ee70ef74718545e4fe6c5ccec9f00000000000000000000a404c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2022c0d9f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000724b20e5c768e2f0000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa80000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", + "maxFeePerGas": "0x992e25a8", + "maxPriorityFeePerGas": "0x44740a6", + "nonce": "0x386a0", + "r": "0x9aed6526234382282b198649baed64ad50fdc5b96f003b0d64648e133dff7b8c", + "s": "0x573c5764c88d615469182b32d6438d130b5cbcdd6f4f50c777bbd309a829ca26", + "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "transactionIndex": "0x60", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x2f091462316f650ca24dea5b8e90f9657af6915d", + "gas": "0xfb2e", + "gasPrice": "0x479285d4", + "hash": "0xbfbbdc3e43e8e7a9629b2d3e2a7c5c998451d31542b92bab59a2de5aeefefea9", + "input": "0xa9059cbb000000000000000000000000559432e18b281731c054cd703d4b49872be4ed530000000000000000000000000000000000000000000000000000000021ca5c30", + "maxFeePerGas": "0x16b969d00", + "maxPriorityFeePerGas": "0x23c34600", + "nonce": "0x180", + "r": "0x959faf52c8891f468fbe2608b9dd9657d1a3acd95cc4e626318d2590b2b52e38", + "s": "0x49a8f64312ffc980c822ecd050914e048f8cd8fbe34c3cbcf3081299d4376c81", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x61", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x317d2da746d1360f4c113e7962a33394db2a1a4e", + "gas": "0x5cbfe", + "gasPrice": "0x9b04d3d4", + "hash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "input": "0xc7c7f5b300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000116c5c2e85990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e0000000000000000000000000000000000000000000000000000000000007596000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e0000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000004563918244f4000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000030d400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0xa7c2cc55", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x26", + "r": "0x62320ac2b00cedf98d4968904cdc425a6277e01b007c6bb4d499ecc443d75c36", + "s": "0x6a642d33dce74b308bced5d8a4aad693257f70bdb067c44821956aa7c345b82f", + "to": "0x1958853a8be062dc4f401750eb233f5850f0d0d2", + "transactionIndex": "0x62", + "type": "0x2", + "v": "0x1", + "value": "0x116c5c2e8599", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gas": "0x5208", + "gasPrice": "0x23cf3fd4", + "hash": "0x854a247acfde5a5346f137d645aafce7266476f1ca57bbc56ff4d451686990d1", + "input": "0x", + "maxFeePerGas": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "nonce": "0x2c5cdf", + "r": "0x9b3abd0ede8ec80593ae00236ddfc40f156754c88c35c6adb60d561400b67b35", + "s": "0x60f6718fce2ffd2f654a098555b5f6bb1e94c4089803827fe6b9a72bd320617d", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionIndex": "0x63", + "type": "0x2", + "v": "0x1", + "value": "0x19a881fe60260", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x3908f89b206af269cd10520a39683d3e9b709a0c", + "gas": "0xf77e", + "gasPrice": "0x47094b30", + "hash": "0x34c4b2585880bbbfd2bd41d407ab91c487ab3ea1d740bb10051a2d94eae979b7", + "input": "0xa9059cbb0000000000000000000000008fa4103428737fc17ba6566285492b19f4a42c3300000000000000000000000000000000000000000000069420a776ba5cab0000", + "maxFeePerGas": "0x510fec66", + "maxPriorityFeePerGas": "0x233a0b5c", + "nonce": "0x635", + "r": "0x6e89dceefc3e5721f20af7ecf0c3bc94b13c87f1f554c28d9f77d58d261fbabd", + "s": "0x699fc9f6e49f9c7c3015c6edcea72fb07bca3ced8f9a2a13dc01b42ff5c82051", + "to": "0x699ccf919c1dfdfa4c374292f42cadc9899bf753", + "transactionIndex": "0x64", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "gas": "0x19a28", + "gasPrice": "0x5f6b1b44", + "hash": "0x881dde515af25e26e76a9f4fd56f92172e576868db77f8d0edb19546d055a6ff", + "input": "0x", + "maxFeePerGas": "0x943dace5", + "maxPriorityFeePerGas": "0x3b9bdb70", + "nonce": "0x80d17a", + "r": "0x1d8001a2513b593efe3683fddc8b2039db609193993ac6449c2c1d8f122d7138", + "s": "0x109c7a8fff5c9eead57bd75a61494ffa68d0ea132ab8890aa23c395630e4f8dc", + "to": "0x5c872bc1cdb41bc1467960e2c3b59a09cc93da05", + "transactionIndex": "0x65", + "type": "0x2", + "v": "0x0", + "value": "0x15104a419790400", + "yParity": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xfb19ffd1ff9316b7f5bba076ef4b78e4bbedf4e1", + "gas": "0xb5ea", + "gasPrice": "0x3b9aca00", + "hash": "0x7603ff263930ac4706dfc190bfa96bba194ec04561f686515626428442cfc3bc", + "input": "0xa9059cbb000000000000000000000000e76392fd5215a3e6bd794d7a31a3c8294c1eb18c0000000000000000000000000000000000000000000000000000000006359235", + "nonce": "0x4c8d8", + "r": "0xde668d1e6aa59075da47060db6d56f942bf17d48578cf8e0bce27c8037acf285", + "s": "0x40518e51eb91cfb7647820407194b60be480da4a6c0679c9f90a0dee872edb51", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x66", + "type": "0x0", + "v": "0x25", + "value": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x3814e8720156e8259aeef2803eb3fbb3cdddc549", + "gas": "0xfa1f", + "gasPrice": "0x9aa98162", + "hash": "0x7e99dbbc2acdc35b5ba4d4d460849fb57bb4fe43e62d47b34c18a922e5b9afac", + "input": "0xa9059cbb0000000000000000000000008ab12dde8535538cc1759f011ebb45856f0a8acb000000000000000000000000000000000000000000000000000000000aba9500", + "maxFeePerGas": "0x9aa98162", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x0", + "r": "0x6e1cbedf81a45effcd2bde0686bab46aba7d1d7d3eaf400550c83fbede6f6016", + "s": "0x3e0560385c9b7fc8fe6dcee8b8eb04b38de32b75e3bcd1cb18c50c40a09fc172", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x67", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x2a008273cf9c4276e3f85311ebab58b7b74fa1bb", + "gas": "0x493e0", + "gasPrice": "0x2c523e86", + "hash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "input": "0x7ff36ab5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000002a008273cf9c4276e3f85311ebab58b7b74fa1bb0000000000000000000000000000000000000000000000000000000068a5dc660000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e0265346277ad201609308b506e901b520150a08", + "nonce": "0x3", + "r": "0x5788b4da5ca6c26f8db8c29e054f1305484ba1c45b06dd4c7e948d170a3f7c4b", + "s": "0x22b7a34fb63d89a1ddb1cf033c9f6a3bc90ce9aa23908b65dd0aeb7db8699689", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionIndex": "0x68", + "type": "0x0", + "v": "0x26", + "value": "0x740c1005bbd2a5" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xd04691fada4d78e62f74d51b77c3fab05dd5e656", + "gas": "0x5208", + "gasPrice": "0x4c762185", + "hash": "0x9cc229f51b3398a71370ab7ee4d775f9fc617c40c9379b786e03070e52fcd357", + "input": "0x", + "maxFeePerGas": "0x4dffd1f2", + "maxPriorityFeePerGas": "0x28a6e1b1", + "nonce": "0x0", + "r": "0xa6d2bb45252b7e9884132de3ea83e622d2be3cdd8fa88782f2764ab66e4f45d7", + "s": "0x5c68ff0d8a4ed88bf7da396862da303b68a7dbcd7eef2f74aab5616613fd7ab2", + "to": "0xc00313c93a1dc6befa0d4b50697ec1ef11b5967e", + "transactionIndex": "0x69", + "type": "0x2", + "v": "0x1", + "value": "0x5309d8d77f14000", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x051ad444b2c9a1678c7f4632885851c0c08285fd", + "gas": "0x47694", + "gasPrice": "0x2884b194", + "hash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "input": "0x0d5f0e3b000000000000000000019afd051ad444b2c9a1678c7f4632885851c0c08285fd00000000000000000000000000000000000000000000000000000000004ba428000000000000000000000000000000000000000000000000000429b0d307836000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec73ca20afc2aaa00000081b3202cffed5d56eb6a17662756ca0fdf350e732c9818", + "maxFeePerGas": "0x4d7c6d00", + "maxPriorityFeePerGas": "0x4b571c0", + "nonce": "0x7", + "r": "0x812fb4b40c56bcb2f83428115e393b8a07c88778b59649f3fd3535c83c159c", + "s": "0x1b3befc4c53338b4447f0f2ef9a18a8f50542e9630859f860d34a2bbd8fe6eae", + "to": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", + "transactionIndex": "0x6a", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x1e8b52ea011a678a888cf7b4e7aa667170f192ca", + "gas": "0x77281", + "gasPrice": "0x5f6a09d4", + "hash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "input": "0x2213bc0b000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000129e5915326ed86f831b0e035acda34b209633d500000000000000000000000000000000000000000000000000002d79883d2000000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000006a41fff991f0000000000000000000000001e8b52ea011a678a888cf7b4e7aa667170f192ca000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000019d6036900000000000000000000000000000000000000000000000000000000000000a065e8b85d871ee28632d7b5be0f15b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000000e4c1fb425e0000000000000000000000009c76dd6b5b200690fc9fb061a99b0a48e9a94325000000000000000000000000129e5915326ed86f831b0e035acda34b209633d500000000000000000000000000000000000000000000000000002d79883d200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5cf5b00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4103b48be000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000129e5915326ed86f831b0e035acda34b209633d500000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c76dd6b5b200690fc9fb061a99b0a48e9a943250000000000000000000000000000000000000000000000000000000000001e0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e48d68a156000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cc02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000064dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064c876d21d000000000000000000000000f5c4f3dc02c3fb9279495a8fef7b0741da956157000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000001b1a9a8400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012438c9c147000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000046000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000ad01c20d5886137e056775af56915de824c8fce50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x64e6e088", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0xdb", + "r": "0x6e904ba20f4d9d72e5f4c071be68d877617d759619a28b8cdfd79dc01ddecffc", + "s": "0x3f02dd94c35eb1ee184ec53b4381fa3c767251ca584bb3031c03e5cdf98f5492", + "to": "0x0000000000001ff3684f28c67538d4d072c22734", + "transactionIndex": "0x6b", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x97fe8b7ba616945b5031e146229b9e727830f131", + "gas": "0x35a94", + "gasPrice": "0x9b04d3d4", + "hash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", + "input": "0xa64dfa75000000000000000000000000be5f6232d8ed5a4057f33a28915bc1a8ab01335b000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000000054000000000000000000000000000000000000000000000000000000000000005600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097fe8b7ba616945b5031e146229b9e727830f131000000000000000000000000000000000000000000000000000000000000058000000000000000000000000000000000000000000000000000000000000005c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000003a697066733a2f2f516d586733513741314e386b4535394b54324d76756f6d4a41547466774e3848456d3257543647697831544578462f7b69647d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001", + "maxFeePerGas": "0xa7c2cc55", + "maxPriorityFeePerGas": "0x77359400", + "nonce": "0x3e7", + "r": "0x63642b4de7c95e847d1f75ad695f93c417f3528715a4d1e2548ba1647dcddfc7", + "s": "0x3103e58f7ad2723b1cfaa1a22066ebd2bc732306f10f914a2200a00189d66509", + "to": "0x864baa13e01d8f9e26549dc91b458cd15e34eb7c", + "transactionIndex": "0x6c", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gas": "0x5208", + "gasPrice": "0x23cf3fd4", + "hash": "0xd36572df8b853ee2b6cab95a988ca7065b03d00fc8b2c1411301cadf49343092", + "input": "0x", + "maxFeePerGas": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "nonce": "0x2c5ce0", + "r": "0x3c240ef59ec96ca4e3eac84f6bd5dd6bf07e1926f93391df1d54334989c26528", + "s": "0x59cb9097d1dd02d9e3939c5b14fb4b490c190e06937dfd51b9fafed5c302196e", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionIndex": "0x6d", + "type": "0x2", + "v": "0x0", + "value": "0xedbdd761ba60", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xe93685f3bba03016f02bd1828badd6195988d950", + "gas": "0x8b660", + "gasPrice": "0x2dde0f0d", + "hash": "0x5cbc170410348d6fdc873705eff0fe6e22f82115fa66a032cacaf14b00d3fd73", + "input": "0x0894edf1000000000000000000000000000000000000000000000000000000000000004036e7b0f7494af14e92055752ad7efac6d5d62065da6b772b7bb98d7127e4495d000000000000000000000000000000000000000000000000000000000000005101000000000000111000007683000000000000000000000000cab283e4bb527aa9b157bae7180fef19e2aaa71a00007595000000000000000000000000f2b2bbdc9975cf680324de62a30a31bc3ab8a4d5000000000000000000000000000000", + "maxFeePerGas": "0x35078237", + "maxPriorityFeePerGas": "0xa0ecf39", + "nonce": "0x250aa2", + "r": "0xe4879c5f426e5b8b7d3b41b17f5a614cdcc78ba669d6ab6182f862e18444066c", + "s": "0x2ef31d6b3adedbaef6a1738d4d6c6d124bc48d085044104b81d8e0298f208b2d", + "to": "0xc02ab410f0734efa3f14628780e6e695156024c2", + "transactionIndex": "0x6e", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xe6767c337d50e51241257059d58508fd8fba91a1", + "gas": "0x1772f", + "gasPrice": "0x6b55cbd4", + "hash": "0x885b570f51838e21d3ee6f7635b9019859c9dc284b61a10e597428521779a514", + "input": "0xa9059cbb0000000000000000000000003732c23fe8422fa1dc7759e2f34515de41bf268b000000000000000000000000000000000000000000000000000000001c9c3800", + "maxFeePerGas": "0x792d1e40", + "maxPriorityFeePerGas": "0x47868c00", + "nonce": "0x62", + "r": "0xf1f4a5531fcd333695b2e7417fdae4e3ddcb708e3654f9c1867506eb6572399", + "s": "0x4cc7b9087b477cdc8ba54ddba333d85082f78fa79ee941911673ee58ff9e2c4d", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x6f", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x4cf7d1f09d73d05538b701c2ccd071298569b18b", + "gas": "0x5208", + "gasPrice": "0x47094b30", + "hash": "0x6dc512f88c8907da511443523a0ce1f9d83b9590fb25470b40a5c7dabecb9cb0", + "input": "0x", + "maxFeePerGas": "0x510fec66", + "maxPriorityFeePerGas": "0x233a0b5c", + "nonce": "0x1", + "r": "0x797d9e07782c1a7570722138d950c8633aef9809eeaeb8fbdb036971011f793c", + "s": "0x1708f6394868c6821120e4ce8ffbbefc2aafdd564fc7e5c11f9b2267229ef5ee", + "to": "0x4cf7d1f09d73d05538b701c2ccd071298569b18b", + "transactionIndex": "0x70", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x1a6bf7734a87c9fb327162eed8cff7b1982e7e5e", + "gas": "0x5208", + "gasPrice": "0x47094b30", + "hash": "0x293dfc29e6d24ec039d5da89eca31f7874ab0f73485242b24472991bbc4a81ac", + "input": "0x", + "maxFeePerGas": "0x510fec66", + "maxPriorityFeePerGas": "0x233a0b5c", + "nonce": "0x5", + "r": "0x2028d41e9a0141761d433e4cfc7884adef975420a963487fad220cf7d2b8a1de", + "s": "0x50eb5b6b9ffa49a76c96c444aee674f28f0dd3f8f04d3a2b39308617780f5fd1", + "to": "0xdc3a5dcd4d2299bdd8a9345169029088f4b0e0c2", + "transactionIndex": "0x71", + "type": "0x2", + "v": "0x0", + "value": "0xcb8a708304c0", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xa2d9d10acece8512a99a3048c88fa274ba59e2cf", + "gas": "0x5208", + "gasPrice": "0x47094b30", + "hash": "0x3199c465ca839a4561420e9ae7a22247c0faf5f3b8b22675e9d280871b018d5e", + "input": "0x", + "maxFeePerGas": "0x4da16a23", + "maxPriorityFeePerGas": "0x233a0b5c", + "nonce": "0x184", + "r": "0x9c93f4bd79ccb99d1be47372b5aaccfc208982f979bafc1da3b32590f373663", + "s": "0x612088c93597b86f051f32154119e30b10d7d6d503d22becefdd1ebda48ce67e", + "to": "0xf051193691fc11600e1228ca27ede7663c4de189", + "transactionIndex": "0x72", + "type": "0x2", + "v": "0x1", + "value": "0x886c98b76000", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xb0bfdffa1c53912c9d6a1f7250d2bac0f6fb0373", + "gas": "0x5208", + "gasPrice": "0x47094b30", + "hash": "0x6cb4300ccb17a849f57e47bf2e950fc2ff88e1536d19e413b23ff3c321c11e8c", + "input": "0x", + "maxFeePerGas": "0x510fec66", + "maxPriorityFeePerGas": "0x233a0b5c", + "nonce": "0x0", + "r": "0x720690819dbcd99ec4fcd2a5c6050b5688a8f9dafc0dbf6f29aef638f4bc6f52", + "s": "0x5ae4c4f5c0722b19eb4eb959e6f071b169c6838e9e0dce0e52f8980215b872c1", + "to": "0x02ca45d242a1e2cd80f860a265e42a048c67b712", + "transactionIndex": "0x73", + "type": "0x2", + "v": "0x0", + "value": "0xb1a2bc2ec50000", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x9502954fba7ca26abdefc7ef4c9dd59b8b54f03f", + "gas": "0x5208", + "gasPrice": "0x47094b30", + "hash": "0x5dd9f8f7e9b3c71c4e4c00191f358b82e5438d0ee6bbbe841d945089e2df8cba", + "input": "0x", + "maxFeePerGas": "0x4da16a23", + "maxPriorityFeePerGas": "0x233a0b5c", + "nonce": "0x0", + "r": "0xfe29aaa1afa27064570a2be9bb914bbf81fa756fa237a6cc1d5aff31e7664602", + "s": "0x63c6b6167df7e2ee0306a02786b2964541d018146c9b27d71c586842ff8707b5", + "to": "0x9502954fba7ca26abdefc7ef4c9dd59b8b54f03f", + "transactionIndex": "0x74", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }, + { + "accessList": [], + "authorizationList": [ + { + "address": "0xd2e28229f6f2c235e57de2ebc727025a1d0530fb", + "chainId": "0x1", + "nonce": "0x0", + "r": "0x62ffcce54b35a2c7c0cf41ae86c22d90d0ea9fe274a3e06e51f34078552e3356", + "s": "0x1ae7c6e429c48dcb05e3b22cf8588439c94109951186c1a6c55e32b6649bcafe", + "yParity": "0x1" + } + ], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x173449e23b2768042a7acbbf00a2b32d262b3a4b", + "gas": "0x6dd33", + "gasPrice": "0x26ca3054", + "hash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "input": "0x765e827f0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000173449e23b2768042a7acbbf00a2b32d262b3a4b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000124f800000000000000000000000000014df90000000000000000000000000000000000000000000000000000000000017fbc000000000000000000000000039387000000000000000000000000003751c5e500000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024426da7d880000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000007d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac0000000000000000000000000000000000000000000000000000000000180d1400000000000000000000000000000000000000000000000000000000000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000000e8495d95270c688473e88f02bb3101a3f7cec73000000000000000000000000000000000000000000000000000000000f60c480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b57d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac000000000000000000000000000061a800000000000000000000000000005daa000068a5cf6d000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000e98ea4bb7fa8f191b0588c1709ab2c1b038a113d42b76391e187187df085a48a654303c10f44cd3e9c226fed8d202651f301fca3d84052cdd089a84ed15afc22cc55b1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000004170cd8c9a9c00e848c3a93a47f52e71aedc923e3ccc6421729ab51d0d9278adb53ea1c0a4f2234e1312ac4c744a3b950dd879a387b10593570903e6e9a40081951c00000000000000000000000000000000000000000000000000000000000000", + "maxFeePerGas": "0x3075589a", + "maxPriorityFeePerGas": "0x2faf080", + "nonce": "0x4b5", + "r": "0xb8d4b1baed6404be7fcb4358fe8497a15f78bd761f0b7e62d19a077c302cc004", + "s": "0x2791874c668c0458b2fa7e0e2248d6251a40a09aad38869d7de62e93a1ee4b9f", + "to": "0x0000000071727de22e5e9d8baf0edac6f37da032", + "transactionIndex": "0x75", + "type": "0x4", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0xfcc46ea12aec1f62c3d58803fe94aa8f768f2636", + "gas": "0x171ab", + "gasPrice": "0x5f6a09d4", + "hash": "0x971833c61c63e80e90a69edadce6cf052ed708c0b89a52714e3de65174e501d2", + "input": "0xa9059cbb000000000000000000000000552549d39c22c1e55e4f91318d41f5422d204c4e00000000000000000000000000000000000000000000000000000000017d7840", + "maxFeePerGas": "0x6625e6dc", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0xf5", + "r": "0xe5d335bf550c364ffcee7c8460c803222a041c0cd746127373fd0b9729de9299", + "s": "0x4056279be100eaab0f391c8a464bd009b5b0883b7fc9fddb9965a5d1766e78c8", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x76", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x52f1e1001c28f6807530470b67a83a348040e31b", + "gas": "0x1740a", + "gasPrice": "0x6458e75e", + "hash": "0x9ea42c0b70a8feb646683ef29551a4f1e35aa5c52ff4e92d41885fddc062eee3", + "input": "0xa9059cbb00000000000000000000000043e19182b2f68d8a83d56a7304665ce0ea3fb3e3000000000000000000000000000000000000000000000000000000002e4686e2", + "maxFeePerGas": "0x6458e75e", + "maxPriorityFeePerGas": "0x6458e75e", + "nonce": "0x6", + "r": "0xbf11a33a31fa408edd4e23b563e2b2baed6c6d5d7dcc425d9b2c717971bdb7e", + "s": "0x4228f38b07269ccc79ec419e5321492a7fad4a6ce9d9853021f638f9a2db166c", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x77", + "type": "0x2", + "v": "0x1", + "value": "0x0", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x242ad3fac0e6820f50ce520117fe8774f21b5f9f", + "gas": "0x5208", + "gasPrice": "0x419ca4d4", + "hash": "0xa7e4c653d8b4852c0fc96106be40980b66a3bb81a9730f4c5bdd8010851faabd", + "input": "0x", + "maxFeePerGas": "0x4234f3e1", + "maxPriorityFeePerGas": "0x1dcd6500", + "nonce": "0x0", + "r": "0x6a0ad5377b1db6a5daa1475af73d72f39f15fb610af3d33c5613be5fcee0e617", + "s": "0x4b674ea61ebfb2716ed38393d86562740a9db80f43f3880d5b0c9776e17c4fc6", + "to": "0x094d77550b654f1fceb33f405ae0415c4cbcb0f1", + "transactionIndex": "0x78", + "type": "0x2", + "v": "0x0", + "value": "0x9e92c7881c800", + "yParity": "0x0" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x9f256a5703a493cac86a09fa84473517ace6ca81", + "gas": "0x45405", + "gasPrice": "0x5f6a09d4", + "hash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "input": "0x209178e800000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000570154115e4e30000000000000000000000000000000000000000000000000000000068a5cece0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000161bd0e0000000000000000000000000000000000000000000000000000000068a5ce4f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000fa417cd491632620a582851b07abf7e3447bba71", + "maxFeePerGas": "0x685dd9c9", + "maxPriorityFeePerGas": "0x3b9aca00", + "nonce": "0x17e5", + "r": "0x3c5a0e76f5ef8d2ea21a0eac730ce97565091a0b1a959bf95a328d06d1de9fc", + "s": "0x704b1d8f5b320e9f6bd49565962c7ed287063f8c9da91d0dcaa4d06e2c32ae0b", + "to": "0x055c48651015cf5b21599a4ded8c402fdc718058", + "transactionIndex": "0x79", + "type": "0x2", + "v": "0x1", + "value": "0x6a94d74f430000", + "yParity": "0x1" + }, + { + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gas": "0x565f", + "gasPrice": "0x23cf3fd4", + "hash": "0x2c522d01183e9ed70caaf75c940ba9908d573cfc9996b3e7adc90313798279c8", + "input": "0x", + "maxFeePerGas": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "nonce": "0x2c5ce1", + "r": "0x4a5703e4d8daf045f021cb32897a25b17d61b9ab629a59f0731ef4cce63f93d6", + "s": "0x711812237c1fed6aaf08e9f47fc47e547fdaceba9ab7507e62af29a945354fb6", + "to": "0x388c818ca8b9251b393131c08a736a67ccb19297", + "transactionIndex": "0x7a", + "type": "0x2", + "v": "0x0", + "value": "0x12bf92aae0c2e70", + "yParity": "0x0" + } + ], + "transactionsRoot": "0xca2e7e6ebe1b08030fe5b9efabee82b95e62f07cff5a4298354002c46b41a216", + "uncles": [], + "withdrawals": [ + { + "address": "0x5b3e2bb0fc7cad985c1461fec254a9cc162ff168", + "amount": "0x12417c4", + "index": "0x5dce3db", + "validatorIndex": "0x1dd01a" + }, + { + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x1213ae3", + "index": "0x5dce3dc", + "validatorIndex": "0x1dd01b" + }, + { + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x120e5a4", + "index": "0x5dce3dd", + "validatorIndex": "0x1dd01c" + }, + { + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x120df02", + "index": "0x5dce3de", + "validatorIndex": "0x1dd01d" + }, + { + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x1210d63", + "index": "0x5dce3df", + "validatorIndex": "0x1dd01e" + }, + { + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x120d70e", + "index": "0x5dce3e0", + "validatorIndex": "0x1dd01f" + }, + { + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x120491b", + "index": "0x5dce3e1", + "validatorIndex": "0x1dd020" + }, + { + "address": "0xa554965fcd0d9493313e2eafa27eef5b058336f4", + "amount": "0x121f4c4", + "index": "0x5dce3e2", + "validatorIndex": "0x1dd021" + }, + { + "address": "0xa554965fcd0d9493313e2eafa27eef5b058336f4", + "amount": "0x1215726", + "index": "0x5dce3e3", + "validatorIndex": "0x1dd022" + }, + { + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x120ae6a", + "index": "0x5dce3e4", + "validatorIndex": "0x1dd023" + }, + { + "address": "0xd29b9bb69a1890232382e5936aa195031eae1577", + "amount": "0x124a7fd", + "index": "0x5dce3e5", + "validatorIndex": "0x1dd024" + }, + { + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x12123cb", + "index": "0x5dce3e6", + "validatorIndex": "0x1dd025" + }, + { + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x120be70", + "index": "0x5dce3e7", + "validatorIndex": "0x1dd026" + }, + { + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x121f5d1", + "index": "0x5dce3e8", + "validatorIndex": "0x1dd027" + }, + { + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x1215cfe", + "index": "0x5dce3e9", + "validatorIndex": "0x1dd028" + }, + { + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x12198a4", + "index": "0x5dce3ea", + "validatorIndex": "0x1dd029" + } + ], + "withdrawalsRoot": "0x7a3ad42fdb774c0e662597141f52a81210ffec9ce0db9dfcd841f747b0909010" +} diff --git a/substrate/frame/revive/test-assets/ethereum_receipts.json b/substrate/frame/revive/test-assets/ethereum_receipts.json new file mode 100644 index 0000000000000..dea646889a014 --- /dev/null +++ b/substrate/frame/revive/test-assets/ethereum_receipts.json @@ -0,0 +1,7779 @@ +[ + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x3e5a5", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x693ca5c6852a7d212dabc98b28e15257465c11f3", + "gasUsed": "0x3e5a5", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" + ], + "data": "0x000000000000000000000000000000000000000000000000000000035c9618f6", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x0", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" + ], + "data": "0x0000000000000000000000000000000000000000000000000001528fd550bc9a", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" + ], + "data": "0x000000000000000000000000000000000000000000000000000000005c0c965e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0xe500210c7ea6bfd9f69dce044b09ef384ec2b34832f132baec3b418208e3a657", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" + ], + "data": "0x000000000000000000000000000000000000000000000000000000035c9618f6ffffffffffffffffffffffffffffffffffffffffffffffffd0061697905954000000000000000000000000000000000000003c76c3128ad6b3eb40ac1d9f90e600000000000000000000000000000000000000000000000004caaa5ba8029c92000000000000000000000000000000000000000000000000000000000002f1ba0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3", + "removed": false + }, + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0x90078845bceb849b171873cfbc92db8540e9c803ff57d9d21b1215ec158e79b3", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffadce6399e224f9a000000000000000000000000000000000000000000000000000000005c0c965e000000000000000000000000000000000000000000043b148c07fa0e7487fde1000000000000000000000000000000000000000000000000005049606b676761fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e360000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000073d53553ee552c1f2a9722e6407d43e41e19593f", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" + ], + "data": "0x0000000000000000000000000000000000000000000000002ff9e9686fa6ac00", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4", + "0x00000000000000000000000073d53553ee552c1f2a9722e6407d43e41e19593f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000035c16902a", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90" + ], + "data": "0x000000000000000000000000000000000000000000000000351e55bea6d51900", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7", + "removed": false + }, + { + "address": "0x0000000aa232009084bd71a5797d089aa4edfad4", + "topics": [], + "data": "0xe34cc98d396db0ad165915ad7ee8e27580670d53d2de88e52db6258aea02ab6e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8", + "removed": false + } + ], + "logsBloom": "0x000000000000000004000000000000000000000000000000000000000000000000000000200000000010000000000100020000000c0000000000000002000002000000000000000009000108000000000000000000000020000000000000000000000000000000000000000000000000000000000000020000000010000000000000040840000000000000000000000000000000010000000000000000100000400000000000200000000080100000000000000000000000000000000000000000000802000000000000000000000000000000400000004000000000000001000000200000000000004000000080000000001000000800080000000000000000", + "status": "0x1", + "to": "0x0000000aa232009084bd71a5797d089aa4edfad4", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x87f43", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0xc445a471debbc8ef54dbfd90af406b6a682313e3", + "gasUsed": "0x4999e", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259" + ], + "data": "0x0000000000000000000000000000000000000000000000000000004d163ab3f6", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9", + "removed": false + }, + { + "address": "0x4342b77fe3417bcb09d0a4383301b0dc733c755b", + "topics": [ + "0x9b97792d4bc68bb4ac03fb65cd7d887197ae9100c1afea4383f9700cf8637cfb", + "0xd82c2736ad6fe23474357b319e12205803b760f7f9d1e419ad91e64f09f99c74" + ], + "data": "0x00000000000000000000000000000000000000000000460cdc7e35644d59cff70000000000000000000000000000000000000000000000044cca9748c816200e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa", + "removed": false + }, + { + "address": "0xd315a9c38ec871068fec378e4ce78af528c76293", + "topics": [ + "0x2170c741c41531aec20e7c107c24eecfdd15e69c9bb0a8dd37b1840b9e0b207b", + "0x4342b77fe3417bcb09d0a4383301b0dc733c755b000200000000000000000002", + "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000004d0563b78d0000000000000000000000000000000000000000000000044cca9748c816200e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259", + "0x000000000000000000000000d315a9c38ec871068fec378e4ce78af528c76293" + ], + "data": "0x0000000000000000000000000000000000000000000000000000004d0563b78d", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000d315a9c38ec871068fec378e4ce78af528c76293", + "0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640" + ], + "data": "0x0000000000000000000000000000000000000000000000044cca9748c816200e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd", + "removed": false + }, + { + "address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffb2e9c54c0a0000000000000000000000000000000000000000000000044cca9748c816200e0000000000000000000000000000000000003c7922239c6e6f4650809908a91600000000000000000000000000000000000000000000000051b0f41e60a05433000000000000000000000000000000000000000000000000000000000002f1bd", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe", + "removed": false + } + ], + "logsBloom": "0x0000000001000000000000000000400000000000800000000000000004000020000000200000000000000a000000000002080000080020002000000100400000000000000000200808000008000820804000000000000000000000000000000000000000000000004000000000000000000000400000000000000010000800000000800000000000002000400000000200000000210000000000001000000000000000000000200000000000000000000000000000000000002800000008000000000002000000000000200000080000000000000004000100000000000000000000200000000000000010000000000004000000002000040000000000000000", + "status": "0x1", + "to": "0xc90d7c41974397cb8b260238ec9ecb6bbd965259", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xcb6de", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x8361a4786bd2081acbf4a0802aab618d6aa1c674", + "gasUsed": "0x4379b", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000f14ae20b1", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf", + "removed": false + }, + { + "address": "0x315a892a4d02c5c1169d5f0e4f7cb4130cc0d138", + "topics": [ + "0x9b97792d4bc68bb4ac03fb65cd7d887197ae9100c1afea4383f9700cf8637cfb", + "0x9b65abd5af36b457eec7bcae8438283bfdee71c23b6129a9b75b63f758674743" + ], + "data": "0x000000000000000000000000000000000000000000000db439926f2897826ffd000000000000000000000000000000000000000000000000d763281af8acbffc", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10", + "removed": false + }, + { + "address": "0xd315a9c38ec871068fec378e4ce78af528c76293", + "topics": [ + "0x2170c741c41531aec20e7c107c24eecfdd15e69c9bb0a8dd37b1840b9e0b207b", + "0x315a892a4d02c5c1169d5f0e4f7cb4130cc0d138000200000000000000000009", + "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7", + "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000f115584f7000000000000000000000000000000000000000000000000d763281af8acbffc", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259", + "0x000000000000000000000000d315a9c38ec871068fec378e4ce78af528c76293" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000f115584f7", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000d315a9c38ec871068fec378e4ce78af528c76293", + "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b" + ], + "data": "0x000000000000000000000000000000000000000000000000d763281af8acbffc", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13", + "removed": false + }, + { + "address": "0xc7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259" + ], + "data": "0x000000000000000000000000000000000000000000000000d763281af8acbffcfffffffffffffffffffffffffffffffffffffffffffffffffffffff0eb51df4f000000000000000000000000000000000000000000043b6637f8c724bd98d5df0000000000000000000000000000000000000000000000000f7eaa8ee01d5748fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e3c", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14", + "removed": false + } + ], + "logsBloom": "0x10000040000000000000000002004000000000000000000000000000000000200000002000000000000000000000010002000000080020000080000100000000000010000000200800000208000820804000001000000000000000000000000000000000002000000000000000000000000000600000000000000010000800000000000800000000002000400000000000000000200000000000001000100000000000000000000000000080200000000000000000000000000800000000004000002002000008000000000000080800000000020004000000000000000000030000200000000000000000000000000000000000002000000000000000000000", + "status": "0x1", + "to": "0xc90d7c41974397cb8b260238ec9ecb6bbd965259", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x12a596", + "effectiveGasPrice": "0x2d2a4df1", + "from": "0x6b063481f8216b5624ec496dd72376bef00faffd", + "gasUsed": "0x5eeb8", + "logs": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" + ], + "data": "0x00000000000000000000000084ca8bc7997272c7cfb4d0cd3d55cd942b3c9419000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000230ec810de9c63d000000000000000000000000000000000000000000000000000000000001ae32af8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000003829475008131557bbcd760e6b5f8e8ff5e2160f6082c1a62fa964054a6ff448ac89b537d4e0de035303dc1bdae18394f7a6c15c3668a5cea00000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x0000000000000000000000000000000000000000000000230ec810de9c63d000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", + "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffecc9a02e668c0ffc70606", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000b60b34d830f26c5a11c47ddb1e0a1f31d90a78b1", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x00000000000000000000000000000000000000000000000000d3c631f934190e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x18", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000b60b34d830f26c5a11c47ddb1e0a1f31d90a78b1" + ], + "data": "0x0000000000000000000000000000000000000000000000134f6e6f97fa338eb8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x19", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" + ], + "data": "0x0000000000000000000000000000000000000000ffffff2b13d40994899ed471", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1a", + "removed": false + }, + { + "address": "0xb60b34d830f26c5a11c47ddb1e0a1f31d90a78b1", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x0000000000000000000000000000000000000000000000134f6e6f97fa338eb8ffffffffffffffffffffffffffffffffffffffffffffffffff2c39ce06cbe6f20000000000000000000000000000000000000000035057e9b5ae5c4a4943b8de0000000000000000000000000000000000000000000000953a360f14392059effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeac5e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1b", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a14afc841a2742cbd52587b705f00f322309580e", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000c09061f", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1c", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000a14afc841a2742cbd52587b705f00f322309580e" + ], + "data": "0x00000000000000000000000000000000000000000000000fa7469b560e451907", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1d", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" + ], + "data": "0x0000000000000000000000000000000000000000ffffff1b6c8d6e3e7b59bb6a", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1e", + "removed": false + }, + { + "address": "0xa14afc841a2742cbd52587b705f00f322309580e", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x00000000000000000000000000000000000000000000000fa7469b560e451907fffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f6f9e1000000000000000000000000000000000000000000000e0a911b42c1dd6fb73a000000000000000000000000000000000000000000000000028436a16f2261c2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbbab3", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1f", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007858e59e0c01ea06df3af3d20ac7b0003275d4bf", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000eda6b92", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x20", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000007858e59e0c01ea06df3af3d20ac7b0003275d4bf" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000edb15d4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x21", + "removed": false + }, + { + "address": "0x7858e59e0c01ea06df3af3d20ac7b0003275d4bf", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffff125946e000000000000000000000000000000000000000000000000000000000edb15d40000000000000000000000000000000000000000fff55b68b5f9b667ec39892600000000000000000000000000000000000000000000000000022514b6f71388fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x22", + "removed": false + }, + { + "address": "0x2db07a3a657b6e16999b67d48500486a1cb0d649", + "topics": [ + "0xd7cf88e4bcca455701f69cc774034a649b16dcf4c3607676ea5f556353332623" + ], + "data": "0x000000000000000000000000000000000020471041ccf0884a74288beb780000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x23", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000047a4a98900000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x24", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001ae32af8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x25", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", + "0x000000000000000000000000a9d635ef85bc37eb9ff9d6165481ea230ed32392" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x26", + "removed": false + } + ], + "logsBloom": "0x00401000000000000000040000001000004000000000000000010000000000002000000800440000000000006000010002000040080420000000000000200c00000400000000000808180008000000000000000900000000000000000000000000000000000000000000804000100000000200002000000010004010008800000000000000000040000000008000000000848000c50000000000000000100000020000600000200000000080000000000000001000000000010000000000000000000002000800200001000000000000000020000000840000000000000000000010202000000000000002000104000000204000000000100000000000000000", + "status": "0x1", + "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x12fc80", + "effectiveGasPrice": "0x38cc2a7c", + "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", + "gasUsed": "0x56ea", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xfbd6acca70a8632061593f1a07056affb7965ac3", + "transactionHash": "0xa655290cbb744571dd7455dacd45109cb3c7adce13392aa7ed3f2f64f5b644e4", + "transactionIndex": "0x4", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x135e15", + "effectiveGasPrice": "0x6b55cbd4", + "from": "0x6d478cb16317680a517ff89253f82032efdc31ba", + "gasUsed": "0x6195", + "logs": [ + { + "address": "0x3b50805453023a91a8bf641e279401a0b23fa6f9", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000006d478cb16317680a517ff89253f82032efdc31ba", + "0x000000000000000000000000111111125421ca6dc452d289314280a0f8842a65" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xfeee6a0b16850d3300339f32be2765355e301689b0f430b9f7db1695806ace46", + "transactionIndex": "0x5", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x27", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000100000000000000000000000000000000000001000000000000000000000002000000000000000000000000000000200000000000000000000000400000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000004000000000020000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000010000000000000000000000000000000080000000000000000000000000000", + "status": "0x1", + "to": "0x3b50805453023a91a8bf641e279401a0b23fa6f9", + "transactionHash": "0xfeee6a0b16850d3300339f32be2765355e301689b0f430b9f7db1695806ace46", + "transactionIndex": "0x5", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x18616d", + "effectiveGasPrice": "0x708ad4a2", + "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", + "gasUsed": "0x50358", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef", + "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001185c2f9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x28", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "0x0000000000000000000000000000000000001ff3684f28c67538d4d072c22734" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001185c2f9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x29", + "removed": false + }, + { + "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "topics": [ + "0x93485dcd31a905e3ffd7b012abe3438fa8fa77f98ddc9f50e879d3fa7ccdc324" + ], + "data": "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000000000000000001ff3684f28c67538d4d072c22734000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2a", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001185c2f9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2b", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001185c2f9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2c", + "removed": false + }, + { + "address": "0x163f8c2467924be0ae7b5347228cabf260318753", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff" + ], + "data": "0x0000000000000000000000000000000000000000000054407b5110567d6a792f", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2d", + "removed": false + }, + { + "address": "0x163f8c2467924be0ae7b5347228cabf260318753", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" + ], + "data": "0x0000000000000000000000000000000000000000000000114bfd68823e680000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2e", + "removed": false + }, + { + "address": "0xdef1c0ded9bec7f1a1670819833240f027b25eff", + "topics": [ + "0xac75f773e3a92f1a02b12134d65e1f47f8a14eabe4eaf1e24624918e6a8b269f" + ], + "data": "0x6d6c1b356c6aa0fa097186ea2b390cafdb337780b03f47be9cfcfd204a3e633200000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000163f8c2467924be0ae7b5347228cabf260318753000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000114bfd68823e680000000000000000000000000000000000000000000000000000000000001185c2f9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2f", + "removed": false + }, + { + "address": "0x163f8c2467924be0ae7b5347228cabf260318753", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222" + ], + "data": "0x0000000000000000000000000000000000000000000000114bfd68823e680000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x30", + "removed": false + }, + { + "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "topics": [ + "0x93485dcd31a905e3ffd7b012abe3438fa8fa77f98ddc9f50e879d3fa7ccdc324" + ], + "data": "0x0000000000000000000000000000000000001ff3684f28c67538d4d072c227340000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c42213bc0b000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f9000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004e41fff991f000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222000000000000000000000000163f8c2467924be0ae7b5347228cabf26031875300000000000000000000000000000000000000000000001135683983035c6d9000000000000000000000000000000000000000000000000000000000000000a09ec76e970eebf8e87ffa04210af43c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e4c1fb425e000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5cf7d00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028438c9c147000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000002710000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001a4dac748d4000000000000000000000000163f8c2467924be0ae7b5347228cabf260318753000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000114bfd68823e680000000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef0000000068a5ce8e000000000000000000000000000000000000000068a5ce520000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001c308445be1fba35529ad765babeb7d04e657d10b1e885929e9088fb8de4e8a73137377dc9e14ddb6b6209e77701b660572de494c7eab10db93d7249805bba87eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x31", + "removed": false + }, + { + "address": "0x163f8c2467924be0ae7b5347228cabf260318753", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "0x000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c3" + ], + "data": "0x0000000000000000000000000000000000000000000000114bfd68823e680000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x32", + "removed": false + }, + { + "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "topics": [ + "0x93485dcd31a905e3ffd7b012abe3438fa8fa77f98ddc9f50e879d3fa7ccdc324" + ], + "data": "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e2220000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001243b2253c8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000163f8c2467924be0ae7b5347228cabf2603187530000000000000000000000000000000000000000000000000000000000000001000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c30000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x33", + "removed": false + } + ], + "logsBloom": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000008000000000010000000000000000000080008004020020000000000000000000200800000800000000000004020004100000000000000000000001000080000040000000000800044000004000000000000000001000000000000000001000000000000000000000000000000001000000000000000000000002800000000020000000408202000002000000000000000000400000000000400100008a000000000800000000008000000000000400000000000000000008000090000000000000000000000000000000000000000000000800000000000000", + "status": "0x1", + "to": "0xbbbfd134e9b44bfb5123898ba36b01de7ab93d98", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x1d9f55", + "effectiveGasPrice": "0x65045d54", + "from": "0x6bf97afe2d2c790999cded2a8523009eb8a0823f", + "gasUsed": "0x53de8", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554", + "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x34", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x00000000000000000000000060bf78233f48ec42ee3f101b9a05ec7878728006" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000760f2a0b00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x35", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554" + ], + "data": "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000899d774e0f8e14810d628db63e65dfacea682343000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000006b06fe010314e3e0681000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000380bae44426440f171dbd7817d8375281635d1209ebc616a66fab075a25cef1271366aa56191e89d219ac36b33406fce85da1e755468a5d4fb0000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x36", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000bebc200", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x37", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff86" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000bebc200", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x38", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff86", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x00000000000000000000000000000000000000000000000000aa03ac85e927d0", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x39", + "removed": false + }, + { + "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", + "topics": [ + "0xadd7095becdaa725f0f33243630938c861b0bba83dfd217d4055701aa768ec2e", + "0x000000000000000000000000000000006d9aa07971bc4e6731b47ed80776c574" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3a", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000004dcebcba00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3b", + "removed": false + }, + { + "address": "0x899d774e0f8e14810d628db63e65dfacea682343", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001346d1ee3fb1b65fecfcb65c149ca0702c286f53", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x0000000000000000000000000000000000000000000006c52e602622b8b3a20b", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3c", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000001346d1ee3fb1b65fecfcb65c149ca0702c286f53" + ], + "data": "0x00000000000000000000000000000000000000000000000000aa03ac85e927d0", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3d", + "removed": false + }, + { + "address": "0x1346d1ee3fb1b65fecfcb65c149ca0702c286f53", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffff93ad19fd9dd474c5df500000000000000000000000000000000000000000000000000aa03ac85e927d000000000000000000000000000000000000000000059466393d63f7ecd2357870000000000000000000000000000000000000000000000095bc56c6d693f8780fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfc74", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3e", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000004e45aaf00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3f", + "removed": false + }, + { + "address": "0x899d774e0f8e14810d628db63e65dfacea682343", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554" + ], + "data": "0x0000000000000000000000000000000000000000000006b06fe010314e3e0681", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x40", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", + "0x0000000000000000000000006bf97afe2d2c790999cded2a8523009eb8a0823f" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x41", + "removed": false + } + ], + "logsBloom": "0x0000100000000000000000002000100000400000000008000000000000000000000000004040000040000000000000000200004008102000000000408020000200040000008000082800000c000000400800000100008000000000000000000200000000080000000000800000000000000002000000200010004010000818000000080000000000000900000000002000000000410000000000000000000400020000600000200000000000000000000004000000000000010000000000000100004002000800000008000000000000400020002000000000000100000000020410200000000000000002000000080000004000000000000000000000000010", + "status": "0x1", + "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x20ea7d", + "effectiveGasPrice": "0x2d50b891", + "from": "0xc8ad355c8291cbd52e738ed1df1f5ccbbbbf00ee", + "gasUsed": "0x34b28", + "logs": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x000000000000000000000000ee007a00b876742c33491454447a40bc63d3d468" + ], + "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f4308b0263723b121056938c2172868e408079d00000000000000000000000000000000000000000000000000000000002160ec0000000000000000000000000000000000000000000000001a0d9ab1774735d13000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000038f5de8823a77b47687c9ff654873353ee47ab098b384a1bc844eb441aef6277a9ee007a00b876742c33491454447a40bc63d3d46868a5d50f0000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x42", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ee007a00b876742c33491454447a40bc63d3d468", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000002160ec0", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x43", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff86" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000020b32aa", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x44", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff86", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000001d27419875a766", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x45", + "removed": false + }, + { + "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", + "topics": [ + "0xadd7095becdaa725f0f33243630938c861b0bba83dfd217d4055701aa768ec2e", + "0x000000000000000000000000000000003eeca8e9088f6bdbdb18cf6634723120" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x46", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000004dcebcba00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x47", + "removed": false + }, + { + "address": "0xf4308b0263723b121056938c2172868e408079d0", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000ee007a00b876742c33491454447a40bc63d3d468" + ], + "data": "0x000000000000000000000000000000000000000000000001a0d9ab1774735d13", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x48", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", + "0x000000000000000000000000a9d635ef85bc37eb9ff9d6165481ea230ed32392" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x49", + "removed": false + } + ], + "logsBloom": "0x00001000000000000000000000001000004000000200000000000000000000000000000000040000000000004000010002000000080000000000004000000002000000000000000020000008000000400000000100200000000000000000002202000000080000000000800000000000000000000000000010004010000010000000080000000000000000000000002000000000400000000000000008100000000000600000000000000080000000000010002000000000010000000000000100000002000800200008000000000000000020000000000000000000000000000000200000000000000002000004000000084000000000000000000000000010", + "status": "0x1", + "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x284fcd", + "effectiveGasPrice": "0x2d50b891", + "from": "0x943810707e090f1bdc486c4c990d43da3b162e52", + "gasUsed": "0x76550", + "logs": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" + ], + "data": "0x000000000000000000000000f5581dfefd8fb0e4aec526be659cfab1f8c781da000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000318d845d95db27be800000000000000000000000000000000000000000000000000000000003c18ecd8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000383f4edaedae765e7131d494e6fca613763c52f46aef71574f2190c6b20724dbdf89b537d4e0de035303dc1bdae18394f7a6c15c3668a5ce8d0000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4a", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0x06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", + "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000318d845d95db27be8000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4b", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000318d845d95db27be800", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4c", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", + "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffec5e7ea7a67c21739266ba", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4d", + "removed": false + }, + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000087986ae1e99f99da1f955d16930dc8914ffbed56", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000030c83b065345ecd3f5", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4e", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0x06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000087986ae1e99f99da1f955d16930dc8914ffbed56" + ], + "data": "0x0000000000000000000000000000000000000000000002c2b9c5fcc62d5453390000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4f", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000087986ae1e99f99da1f955d16930dc8914ffbed56" + ], + "data": "0x0000000000000000000000000000000000000000000002c2b9c5fcc62d545339", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x50", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" + ], + "data": "0x0000000000000000000000000000000000000000ffffd59a39059bc5a28618a8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x51", + "removed": false + }, + { + "address": "0x87986ae1e99f99da1f955d16930dc8914ffbed56", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffcf37c4f9acba132c0b0000000000000000000000000000000000000000000002c2b9c5fcc62d5453390000000000000000000000000000000000000003ce3e190a8a5ab790bdc2670a000000000000000000000000000000000000000000010d01c59477b71ba1ad1f000000000000000000000000000000000000000000000000000000000000686a", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x52", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0x06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000092c2fc5f306405eab0ff0958f6d85d7f8892cf4d" + ], + "data": "0x000000000000000000000000000000000000000000000054e9ab31a1339be5930000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x53", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000092c2fc5f306405eab0ff0958f6d85d7f8892cf4d" + ], + "data": "0x000000000000000000000000000000000000000000000054e9ab31a1339be593", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x54", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" + ], + "data": "0x0000000000000000000000000000000000000000ffffd5454f5a6a246eea3315", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x55", + "removed": false + }, + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000092c2fc5f306405eab0ff0958f6d85d7f8892cf4d", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000005e0bb5fb57e3f0b03", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x56", + "removed": false + }, + { + "address": "0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x00000000000000000000000000000000000000000000040e2b05566d40762733000000000000000000000000000000000000000000003abd82aa5833b3997cd7", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x57", + "removed": false + }, + { + "address": "0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054e9ab31a1339be593000000000000000000000000000000000000000000000005e0bb5fb57e3f0b030000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x58", + "removed": false + }, + { + "address": "0x2db07a3a657b6e16999b67d48500486a1cb0d649", + "topics": [ + "0xd7cf88e4bcca455701f69cc774034a649b16dcf4c3607676ea5f556353332623" + ], + "data": "0x00000000000000000000000000000000002e7bdc06b21b40b0cc17df2b421598", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x59", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000047a4a98900000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5a", + "removed": false + }, + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000f6e72db5454dd049d0788e411b06cfaf16853042" + ], + "data": "0x000000000000000000000000000000000000000000000036a8f6d6fbd1977000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5b", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000037305b1cd40574e4c5ce33f8e8306be057fd7341", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000000000003c196d47", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5c", + "removed": false + }, + { + "address": "0xf6e72db5454dd049d0788e411b06cfaf16853042", + "topics": [ + "0x085d06ecf4c34b237767a31c0888e121d89546a77f186f1987c6b8715e1a8caa", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000000000003c196d470000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5d", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x000000000000000000000000f6e72db5454dd049d0788e411b06cfaf16853042" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000008d7ef9bb00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5e", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" + ], + "data": "0x000000000000000000000000000000000000000000000000000000003c18ecd8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5f", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", + "0x000000000000000000000000a9d635ef85bc37eb9ff9d6165481ea230ed32392" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x60", + "removed": false + } + ], + "logsBloom": "0x0060100000000020000000008000108002400000001000200000000000000020000000000044000000000000c000000800000040000420000000000080200400000400001000000808000008000000210000000100000000000010200000000010000000000000000000804000000000000200402000000010004010000800000000000000000000000000008000000000040000450001080800004200000000020000680100200000000000000000000000008000000000010000000000000000000002000800600001040000000020000022080000041000002008000000400010002000000000000002000004000000104000000000000000010000000000", + "status": "0x1", + "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x2947ba", + "effectiveGasPrice": "0x708ad4a2", + "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", + "gasUsed": "0xf7ed", + "logs": [ + { + "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "topics": [ + "0xd35467972d1fda5b63c735f59d3974fa51785a41a92aa3ed1b70832836f8dba6" + ], + "data": "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e2220000000000000000000000000000000000000000000000000304e4108473ed6d", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", + "transactionIndex": "0xa", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x61", + "removed": false + }, + { + "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "topics": [ + "0x93485dcd31a905e3ffd7b012abe3438fa8fa77f98ddc9f50e879d3fa7ccdc324" + ], + "data": "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e22200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000304e4108473ed6d0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", + "transactionIndex": "0xa", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x62", + "removed": false + }, + { + "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "topics": [ + "0xd35467972d1fda5b63c735f59d3974fa51785a41a92aa3ed1b70832836f8dba6" + ], + "data": "0x000000000000000000000000ae1a530128950b1735674a975e1622872e556b590000000000000000000000000000000000000000000000000304e4108473ed6d", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", + "transactionIndex": "0xa", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x63", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000080000000000000000000000000000000000000000000000000040000000000000000000000000000004000000000000000000000000000000040000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000080000000000000000000000000000000000000000000000800000000000000", + "status": "0x1", + "to": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "transactionHash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", + "transactionIndex": "0xa", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x2b1f0f", + "effectiveGasPrice": "0x2c523e86", + "from": "0x80c700683ec017a190b132a4ce042beeb7c6b821", + "gasUsed": "0x1d755", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000000621b921b80f2af", + "blockNumber": "0x161bd0f", + "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "transactionIndex": "0xb", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x64", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x0000000000000000000000006f9f435fa79e30e34f7679211904fcabc87ad924" + ], + "data": "0x00000000000000000000000000000000000000000000000000621b921b80f2af", + "blockNumber": "0x161bd0f", + "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "transactionIndex": "0xb", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x65", + "removed": false + }, + { + "address": "0xe0265346277ad201609308b506e901b520150a08", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000006f9f435fa79e30e34f7679211904fcabc87ad924", + "0x00000000000000000000000080c700683ec017a190b132a4ce042beeb7c6b821" + ], + "data": "0x00000000000000000000000000000000000000000000fcc9f4e9bd2d304d8e56", + "blockNumber": "0x161bd0f", + "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "transactionIndex": "0xb", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x66", + "removed": false + }, + { + "address": "0x6f9f435fa79e30e34f7679211904fcabc87ad924", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000000000154aea80178ffe200000000000000000000000000000000000000000003609cc562e12cf568499f7", + "blockNumber": "0x161bd0f", + "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "transactionIndex": "0xb", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x67", + "removed": false + }, + { + "address": "0x6f9f435fa79e30e34f7679211904fcabc87ad924", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x00000000000000000000000080c700683ec017a190b132a4ce042beeb7c6b821" + ], + "data": "0x00000000000000000000000000000000000000000000000000621b921b80f2af0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcc9f4e9bd2d304d8e56", + "blockNumber": "0x161bd0f", + "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "transactionIndex": "0xb", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x68", + "removed": false + } + ], + "logsBloom": "0x00200000000000000000000080000000000000000000000000010000000000000100000000000000000000000000000002000000080000000000000000000000000000000000000000000008080000a00000000000000000000000008001000010000000000000000000000008000000000000000000000000000010000000000000000000000000004000000000000000000001000000080000004000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000004004000080000000000000000001000000000100020000000200000000000000000000000000000000000000001400000000001000000", + "status": "0x1", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "transactionIndex": "0xb", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x2e78ec", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x7830c87c02e56aff27fa8ab1241711331fa86f43", + "gasUsed": "0x359dd", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "transactionHash": "0x65dfef793509b00a864042275789801fd0c89fe3fe1d67648c4bba8148fd511c", + "transactionIndex": "0xc", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x3119a3", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x078430ebd8db8288fd056d137e0e11cf67fb8fc1", + "gasUsed": "0x2a0b7", + "logs": [ + { + "address": "0xb1911d8ffcc2d8ca6c5ea4f4f18be6ea675c1ce7", + "topics": [ + "0x6bae97ad4b952cdee3720ed0ea228b5eb79d5adb4475c05d9f3f6539627d8e2a", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c540000000000000000000000000000000000000000000000000000000068a5ce5b", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x69", + "removed": false + }, + { + "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000b1911d8ffcc2d8ca6c5ea4f4f18be6ea675c1ce7", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6a", + "removed": false + }, + { + "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1", + "0x00000000000000000000000032c1f663919102dc032dc3c22fe434af686f3b15" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6b", + "removed": false + }, + { + "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1", + "0x00000000000000000000000032c1f663919102dc032dc3c22fe434af686f3b15" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6c", + "removed": false + }, + { + "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1", + "0x00000000000000000000000071a41517fe65890fe835d67fce17a9747112696c" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6d", + "removed": false + }, + { + "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000071a41517fe65890fe835d67fce17a9747112696c", + "0x000000000000000000000000c059a531b4234d05e9ef4ac51028f7e6156e2cce" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6e", + "removed": false + }, + { + "address": "0xc059a531b4234d05e9ef4ac51028f7e6156e2cce", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6f", + "removed": false + }, + { + "address": "0xc059a531b4234d05e9ef4ac51028f7e6156e2cce", + "topics": [ + "0x1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c540000000000000000000000000000000000000000000000000000000068a5ce5b", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x70", + "removed": false + }, + { + "address": "0x71a41517fe65890fe835d67fce17a9747112696c", + "topics": [ + "0x1d667fd3a2b3ff56d86b9f53a15185be64f72321819599d0f059e609581169ba", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c540000000000000000000000000000000000000000000000000000000068a5ce5b", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x71", + "removed": false + } + ], + "logsBloom": "0x000000000040000000000000000008000008000000000000001000000002000000000080000004000200020000040000000010800000000000000000002000000002000900008000000000080000000000000000000000200000000000000000000000000200000001000200000008000000000000000000000000100000000000001000000002000000020000000000044000004000000000000000000100000200002000100000000c00000000000000000000000000000000000000000040000000020001000000000000000000000000000000000000000000000008200000100000000000000000000000008000c0000000000000000000000000000000", + "status": "0x1", + "to": "0x71a41517fe65890fe835d67fce17a9747112696c", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x39a5c0", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x7830c87c02e56aff27fa8ab1241711331fa86f43", + "gasUsed": "0x88c1d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000004fa31bbbb0729c76ca3fb7c5d466c1b30764749b" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000015476340", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x72", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000008e1e9185870f026be6b59219f673fe84481a329a" + ], + "data": "0x000000000000000000000000000000000000000000000000000000002d27ecbb", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x73", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x00000000000000000000000060c531e7594102a7a9be19197c969639bebf5fae" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001cf8f755", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x74", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x000000000000000000000000f8b2374fc5335176857aa83f8a37be8afdf8bac7" + ], + "data": "0x000000000000000000000000000000000000000000000000000000002113fe2a", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x75", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x00000000000000000000000088a857dfc3ed7b4e326adbbe79224de634982235" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000e4e1c00", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x76", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x000000000000000000000000f668293ea8362fe9dccd4499c23fcb0025919613" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000002a9f1f7", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x77", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x00000000000000000000000026b23da6eb7d863bef139feb51ba027ec2f0769a" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000002faf080", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x78", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x000000000000000000000000de396526ede4218a67327cec9658e7571a0eac5c" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000017f2b8d", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x79", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x000000000000000000000000f5261acdfbe5b46b6c79271ea86d933603236899" + ], + "data": "0x000000000000000000000000000000000000000000000000000000014437f0cd", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7a", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000006de7232e53fd11e218842e5506577837134a1171" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000311d3e0", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7b", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000006de7232e53fd11e218842e5506577837134a1171" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000077e07a0", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7c", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x000000000000000000000000d5b12d6651b94d6340699077258feb3314d6b1ae" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000004661940", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7d", + "removed": false + }, + { + "address": "0xbe9895146f7af43049ca1c1ae358b0541ea49704", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x000000000000000000000000000000000000000000000002ec03212a197a0c00", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7e", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" + ], + "data": "0x0000000000000000000000000000000000000000000000230ec810de9c63d000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7f", + "removed": false + }, + { + "address": "0x0d8775f648430679a709e98d2b0cb6250d2887ef", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000007c06dfc7576ef157e111d80cd8ce98f8ab60feaf" + ], + "data": "0x0000000000000000000000000000000000000000000000008b95e9381c0e2400", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x80", + "removed": false + }, + { + "address": "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x00000000000000000000000006fd4ba7973a0d39a91734bbc35bc2bcaa99e3b0" + ], + "data": "0x0000000000000000000000000000000000000000000000334af9bea1f4c02c00", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x81", + "removed": false + }, + { + "address": "0x4a220e6096b25eadb88358cb44068a3248254675", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000009f3b333f36069244901885d5e520ffee722a4585" + ], + "data": "0x000000000000000000000000000000000000000000000000106df6c44af68000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x82", + "removed": false + }, + { + "address": "0xfaba6f8e4a5e8ab82f62fe7c39859fa577269be3", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x000000000000000000000000c3bf801d58a4c0418d96eda0164fb743ad065aca" + ], + "data": "0x0000000000000000000000000000000000000000000000016d4f128775330000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x83", + "removed": false + }, + { + "address": "0x6c3ea9036406852006290770bedfcaba0e23a0e8", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000002c8b4fba3b3706827c96f3e4ccbc0d1442dcd074" + ], + "data": "0x00000000000000000000000000000000000000000000000000000016e43d727e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x84", + "removed": false + } + ], + "logsBloom": "0x00000000200001000000000060000000000000010000000400000000000000800000004000000000000000100000011000000028040000000080040000020600000000000000020008000008100000000000200000040000000100000000000008000000000000008400000000000800000000400000000000a80030018402200000000000000000008000000000200000000100010000200001000200122000000000800000204010000080000000000000000420000000000080000000000000000003000000002401400408001000002000000442040000000400000800000000000000000000000200000102000000000000002000900000200000000100", + "status": "0x1", + "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x3adc08", + "effectiveGasPrice": "0xa6f095d4", + "from": "0xa03400e098f4421b34a3a44a1b4e571419517687", + "gasUsed": "0x13648", + "logs": [ + { + "address": "0xf8ebf4849f1fa4faf0dff2106a173d3a6cb2eb3a", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a03400e098f4421b34a3a44a1b4e571419517687", + "0x0000000000000000000000000fac5094987a848754db82a7db870e635f126939" + ], + "data": "0x00000000000000000000000000000000000000006d06bff6e90832e72f68a000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x706cc7072418792c08feb0ace7ba254538265f6bfdb6282584f936160791d8e1", + "transactionIndex": "0xf", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x85", + "removed": false + } + ], + "logsBloom": "0x00004000000000000000402000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000002008000000000000000000000000000000002000000000000000000000000180000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xf8ebf4849f1fa4faf0dff2106a173d3a6cb2eb3a", + "transactionHash": "0x706cc7072418792c08feb0ace7ba254538265f6bfdb6282584f936160791d8e1", + "transactionIndex": "0xf", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x3e8c4b", + "effectiveGasPrice": "0x2f779f57", + "from": "0xae2fc483527b8ef99eb5d9b44875f005ba1fae13", + "gasUsed": "0x3b043", + "logs": [ + { + "address": "0x615987d46003cc37387dbe544ff4f16fa1200077", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000dd6e1a4e35d307497da8d5d4052173410951b3d5", + "0x0000000000000000000000006c618dd1040a79923cd74113ef0ed07c07d2b0e7" + ], + "data": "0x000000000000000000000000000000000000000000000000000010d97cfd0001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x86", + "removed": false + }, + { + "address": "0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007c706586679af2ba6d1a9fc2da9c6af59883fdd3", + "0x000000000000000000000000dd6e1a4e35d307497da8d5d4052173410951b3d5" + ], + "data": "0x00000000000000000000000000000000000000000000000000000001456521ca", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x87", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", + "0x0000000000000000000000007c706586679af2ba6d1a9fc2da9c6af59883fdd3" + ], + "data": "0x000000000000000000000000000000000000000000000000003deea5386727c3", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x88", + "removed": false + }, + { + "address": "0x7c706586679af2ba6d1a9fc2da9c6af59883fdd3", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", + "0x000000000000000000000000dd6e1a4e35d307497da8d5d4052173410951b3d5" + ], + "data": "0x000000000000000000000000000000000000000000000000003deea5386727c3fffffffffffffffffffffffffffffffffffffffffffffffffffffffeba9ade3600000000000000000000000000000000000000000024babbbd70e20d3f4fd5180000000000000000000000000000000000000000000000000567142df5d24d20fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdb710", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x89", + "removed": false + }, + { + "address": "0xdd6e1a4e35d307497da8d5d4052173410951b3d5", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", + "0x0000000000000000000000006c618dd1040a79923cd74113ef0ed07c07d2b0e7" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffef268302ffff00000000000000000000000000000000000000000000000000000001456521ca000000000000000000000000000000000000000004654a0d63ff5dd89c18ba8400000000000000000000000000000000000000000000000000001b39705b4ba0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec270", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8a", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000006c618dd1040a79923cd74113ef0ed07c07d2b0e7", + "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387" + ], + "data": "0x000000000000000000000000000000000000000000000000003e9e4299000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8b", + "removed": false + }, + { + "address": "0x6c618dd1040a79923cd74113ef0ed07c07d2b0e7", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000000000009ca8a393168f4300000000000000000000000000000000000000000000000247b2f0cb40170fc5", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8c", + "removed": false + }, + { + "address": "0x6c618dd1040a79923cd74113ef0ed07c07d2b0e7", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", + "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387" + ], + "data": "0x000000000000000000000000000000000000000000000000000010d97cfd000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e9e4299000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8d", + "removed": false + } + ], + "logsBloom": "0x002000000000000000000000800000010000000000000000000000000000000000000000000000000000020020000008020000040800200000000000000000000000000000000008000000080000002000000000000000000400000400000800000000000000000000000204000000000000008000000010008000100008000020000000000000000000000000000000000000000000000c0000004080000000040000000400001000000000000000004000000010000000000000000000000000004002000000000000000000000000000c00000000001000000000000000000000202000000000000000000000000000400000000000000000000000000000", + "status": "0x1", + "to": "0x1f2f10d1c40777ae1da742455c65828ff36df387", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x3ede53", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa5ccd022e4b4ac431deadb329e20aa76c4a80f5a", + "transactionHash": "0x341b093276998eaf55ba531d7cb2be1ff32f44a398c85b60d4180791cdadf218", + "transactionIndex": "0x11", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x3f7fbc", + "effectiveGasPrice": "0x4fb1722d", + "from": "0xd24b2b3f3420cda82d40e0c8584b88ce7ec386e8", + "gasUsed": "0xa169", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000d24b2b3f3420cda82d40e0c8584b88ce7ec386e8", + "0x0000000000000000000000005626213e557182a6d19048d29b535b5d7f5408be" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000129d00963", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa7c324afd989fec33f0436d148f3e9ef90f7159b55075827aab7b72d6840a977", + "transactionIndex": "0x12", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8e", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000801000000000000000000000000000000000010000000000000000000000000000000000000000001000000020000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000002000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0xa7c324afd989fec33f0436d148f3e9ef90f7159b55075827aab7b72d6840a977", + "transactionIndex": "0x12", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x403018", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x260b364fe0d3d37e6fd3cda0fa50926a06c54cea", + "gasUsed": "0xb05c", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000260b364fe0d3d37e6fd3cda0fa50926a06c54cea", + "0x0000000000000000000000005a617641788bc9c3a91696eda1bb66c60034c9b6" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000042636c39", + "blockNumber": "0x161bd0f", + "transactionHash": "0xe5cb77f931850a0890a14d4ae7f73fe1bad375114d0ccf680c7c744d1f73a045", + "transactionIndex": "0x13", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8f", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000200000000000000000000000000000000000000000000000200000001002000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000040000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0xe5cb77f931850a0890a14d4ae7f73fe1bad375114d0ccf680c7c744d1f73a045", + "transactionIndex": "0x13", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x42847e", + "effectiveGasPrice": "0x6b55cbd4", + "from": "0x5000afd95cbc51054caf4c5330342890ead87b70", + "gasUsed": "0x25466", + "logs": [ + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0x00b9edc1583bf6ef09ff3a09f6c23ecb57fd7d0bb75625717ec81eed181e22d7", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffecae9f6008a80000000000000000000000000000000000000000000000000000000000015a9d16e000000000000000000000000000000000000000000043c6e58a0426bb3e170af0000000000000000000000000000000000000000000000000601e4d79975daecfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e4f0000000000000000000000000000000000000000000000000000000000000064", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", + "transactionIndex": "0x14", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x90", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000015a9d16e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", + "transactionIndex": "0x14", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x91", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af", + "0x00000000000000000000000027213e28d7fda5c57fe9e5dd923818dbccf71c47" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000ddd52", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", + "transactionIndex": "0x14", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x92", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af", + "0x0000000000000000000000005000afd95cbc51054caf4c5330342890ead87b70" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000159bf41c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", + "transactionIndex": "0x14", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x93", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000001000000000000020080000001000000000000000000000040000000000000000000000000000000000000008000008004000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000010000000000008000800000000400000000000000000000000010000000008000000000000000000000000200000000000100000000000000000000000000000000000000200000882400020000000001000000000000400400000000000000000000000000000000000000000004000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", + "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", + "transactionIndex": "0x14", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x43552f", + "effectiveGasPrice": "0x2c523e86", + "from": "0xc35fb86f962ea955751a793a007b5cdd44f798d7", + "gasUsed": "0xd0b1", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007d7990b713c3497937fac4331176c127710b97d5", + "0x00000000000000000000000016fbc59070699f26c094fa8716b743561e0c53d3" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000148b1abe", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8af00935a2db3f2e066c91359011f9e29093f62a7616e816413f2710dbfc4b41", + "transactionIndex": "0x15", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x94", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000008000004000000000000000000000000000000000000000000000000000000000000010000010000000000000000000000000000000000000000000010000000000000000000000000000000000200000000000000000000000800000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000008000000002000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0x8af00935a2db3f2e066c91359011f9e29093f62a7616e816413f2710dbfc4b41", + "transactionIndex": "0x15", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x43a737", + "effectiveGasPrice": "0x330fb22a", + "from": "0x5de41533c43766bb1181de4826a7f8f2e4e64549", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0c8aa5263afde3c43a0fe88aed2b10ade922e666", + "transactionHash": "0x7c406076c4f872219370ca69e2e9dfb8096c47f514615aecda99577551b8cba1", + "transactionIndex": "0x16", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x445793", + "effectiveGasPrice": "0x14bfac694", + "from": "0x3ffa6671d869ae0d923a17505e633e700fb8e35a", + "gasUsed": "0xb05c", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000003ffa6671d869ae0d923a17505e633e700fb8e35a", + "0x000000000000000000000000842264311e492fdb425e8430472b6f9a4f660483" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000001ed2a0", + "blockNumber": "0x161bd0f", + "transactionHash": "0xef7c2d4ba0dbc86ccfd07a62ca7f843ea8cdc1587011fd8c14ba640f1535ac79", + "transactionIndex": "0x17", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x95", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000010000000000000000002000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000010000000000000000000000000000000000000000000200000010000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000040000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0xef7c2d4ba0dbc86ccfd07a62ca7f843ea8cdc1587011fd8c14ba640f1535ac79", + "transactionIndex": "0x17", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x44a99b", + "effectiveGasPrice": "0xd69f9dd4", + "from": "0x552fe7e19ecd9789e57131c09712977b4d075cbe", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x76eeb4c8b149738a9b198d866c80e8087a0a4f17", + "transactionHash": "0xac88e9bd517db66ea5eebd8caba9d5c33ddfce1f779eef3e6821e15510f4c864", + "transactionIndex": "0x18", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x453a97", + "effectiveGasPrice": "0x6a5efc76", + "from": "0x4791eb2224d272655e8d5da171bb07dd5a805ff6", + "gasUsed": "0x90fc", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x62b53c45305d29bbe4b1bfa49dd78766b2f1e624", + "transactionHash": "0xda8bc5dc5617758c6af0681d71642f68ce679bb92df4d8cf48493f0cfad14e20", + "transactionIndex": "0x19", + "type": "0x4" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x458c9f", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xe401a6a38024d8f5ab88f1b08cad476ccaca45e8", + "transactionHash": "0xd7938913fd206fc1ef384e45dada725badd5a3ff87a793d9c432b70488a7bcdb", + "transactionIndex": "0x1a", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x45dea7", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x3b26af33b78b1414e40c83be39a6f1b924b1e08a", + "transactionHash": "0x80c2402d4dbfadb46899b4ceb48f3851c8be0d08eb399608b6966f401653e60d", + "transactionIndex": "0x1b", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x4fac28", + "effectiveGasPrice": "0x23d05144", + "from": "0x2c61206798f1ab3bce5833ecdd4a78aeba2e6b36", + "gasUsed": "0x9cd81", + "logs": [ + { + "address": "0xb167d99000cec6232e3b27f7f01d2b41c60f7fdc", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000073ada7d3ce2c1dcf9bb4100b650196ccc2ccdfa6", + "0x000000000000000000000000000000000000000000000000000000000000dead" + ], + "data": "0x000000000000000000000000000000000000000000002c70a2a249e16480990e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x96", + "removed": false + }, + { + "address": "0x73ada7d3ce2c1dcf9bb4100b650196ccc2ccdfa6", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x00000000000000000000000000000000000000000045438d7af1264ba46e8e420000000000000000000000000000000000000000000000000bb6892df1dc2d88", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x97", + "removed": false + }, + { + "address": "0xb167d99000cec6232e3b27f7f01d2b41c60f7fdc", + "topics": [ + "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x98", + "removed": false + }, + { + "address": "0xb167d99000cec6232e3b27f7f01d2b41c60f7fdc", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", + "0x00000000000000000000000073ada7d3ce2c1dcf9bb4100b650196ccc2ccdfa6" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x99", + "removed": false + }, + { + "address": "0x3b9c214a501b2ae33ab1793b57b09879a754f2ef", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000df37c5d3eea96515faa286c30e8f6b05640cad00", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x000000000000000000000000000000000000000000001f9f41f9e900fbd8e19c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9a", + "removed": false + }, + { + "address": "0xdf37c5d3eea96515faa286c30e8f6b05640cad00", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000314937d48228888707a2d90000000000000000000000000000000000000000000000001e8e8ddba5bec78b", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9b", + "removed": false + }, + { + "address": "0x3b9c214a501b2ae33ab1793b57b09879a754f2ef", + "topics": [ + "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9c", + "removed": false + }, + { + "address": "0x3b9c214a501b2ae33ab1793b57b09879a754f2ef", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", + "0x000000000000000000000000df37c5d3eea96515faa286c30e8f6b05640cad00" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9d", + "removed": false + }, + { + "address": "0xc5327f8a6f6ea98928ff6a893d74a5cbc743f170", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000b21cef20389f300cdc7b2572f0a9a1afe62f4479", + "0x000000000000000000000000000000000000000000000000000000000000dead" + ], + "data": "0x000000000000000000000000000000000000000163e01624a3721a46e1ad41a4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9e", + "removed": false + }, + { + "address": "0xb21cef20389f300cdc7b2572f0a9a1afe62f4479", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x0000000000000000000000000000000000000000000000000db819c1093f63c1000000000000000000000000000000000000022aaa42831abed6f479bd094fbd", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9f", + "removed": false + }, + { + "address": "0xc5327f8a6f6ea98928ff6a893d74a5cbc743f170", + "topics": [ + "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa0", + "removed": false + }, + { + "address": "0xc5327f8a6f6ea98928ff6a893d74a5cbc743f170", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", + "0x000000000000000000000000b21cef20389f300cdc7b2572f0a9a1afe62f4479" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa1", + "removed": false + }, + { + "address": "0xf92c421115b1f11203abcfce78eed1aadad3e0a5", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f1edbdf579ad83cc86064bd089300b6b9362f084", + "0x000000000000000000000000000000000000000000000000000000000000dead" + ], + "data": "0x00000000000000000000000000000000000000000089245c8e692932e3213cf6", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa2", + "removed": false + }, + { + "address": "0xf1edbdf579ad83cc86064bd089300b6b9362f084", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000000000134aeb69c5d6d9290000000000000000000000000000000000000000d5bfac41f5e7365000ce0402", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa3", + "removed": false + }, + { + "address": "0xf92c421115b1f11203abcfce78eed1aadad3e0a5", + "topics": [ + "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa4", + "removed": false + }, + { + "address": "0xf92c421115b1f11203abcfce78eed1aadad3e0a5", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", + "0x000000000000000000000000f1edbdf579ad83cc86064bd089300b6b9362f084" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa5", + "removed": false + }, + { + "address": "0xf801db2654e911e922665c4cb885d8cca4c155bf", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000321166c624541dde00025d2d916d117410ba8421", + "0x000000000000000000000000000000000000000000000000000000000000dead" + ], + "data": "0x0000000000000000000000000000000000000000000013d075815ec17b746f4c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa6", + "removed": false + }, + { + "address": "0x321166c624541dde00025d2d916d117410ba8421", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x00000000000000000000000000000000000000000000000010d3766833cb24380000000000000000000000000000000000000000001ee1e724a2af8f6a797837", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa7", + "removed": false + }, + { + "address": "0xf801db2654e911e922665c4cb885d8cca4c155bf", + "topics": [ + "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa8", + "removed": false + }, + { + "address": "0xf801db2654e911e922665c4cb885d8cca4c155bf", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", + "0x000000000000000000000000321166c624541dde00025d2d916d117410ba8421" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa9", + "removed": false + }, + { + "address": "0xc7e957681720875f3a2143f1afb72e7fb6ffdd78", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000e1e82ee891f469897a815b0bfcc34dd5d597f76a", + "0x000000000000000000000000000000000000000000000000000000000000dead" + ], + "data": "0x000000000000000000000000000000000000000000005e5d99029678a6debc2e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xaa", + "removed": false + }, + { + "address": "0xe1e82ee891f469897a815b0bfcc34dd5d597f76a", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000000000165e66cb28b490a20000000000000000000000000000000000000000009313e17b08860c15274d0f", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xab", + "removed": false + }, + { + "address": "0xc7e957681720875f3a2143f1afb72e7fb6ffdd78", + "topics": [ + "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xac", + "removed": false + }, + { + "address": "0xc7e957681720875f3a2143f1afb72e7fb6ffdd78", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", + "0x000000000000000000000000e1e82ee891f469897a815b0bfcc34dd5d597f76a" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xad", + "removed": false + } + ], + "logsBloom": "0x000810000000100000400000804000000000802800000000000000000000000000000000000000000240040000000040008200000000000800200020000200002000001000000000081000a800004000000002014000000002000000000002000000000002000000000000000000080040000100080000000000001004000000000000000000400000000400000000000200000004000008080000002000200080000000010020050000001000000800000000000800000000000000000000000800040a200000000000000000000000000010000000001000000000000020000000000004000000202000002000000020000000000001000000000008000100", + "status": "0x1", + "to": "0xceb550db4b2f889782936bbedfe42ab406e8243d", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x51fb32", + "effectiveGasPrice": "0x6b55cbd4", + "from": "0xaf8648ea8cecb238158b6fdf3fd3faf57f7e5828", + "gasUsed": "0x24f0a", + "logs": [ + { + "address": "0x0000000000000068f116a894984e2db1123eb395", + "topics": [ + "0x6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d", + "0x000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0xe3e0fb0a038bc3551a6478b42b4afe222d3b9ee58ccab68dabb1768a550cbfb0", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", + "transactionIndex": "0x1d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xae", + "removed": false + }, + { + "address": "0x0000000000000068f116a894984e2db1123eb395", + "topics": [ + "0x6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d", + "0x000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x4b4dfcc04791d09879f5d1f22ca4507605c8f30e1892892a740ca1d2a0da73df", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", + "transactionIndex": "0x1d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xaf", + "removed": false + }, + { + "address": "0x0000000000000068f116a894984e2db1123eb395", + "topics": [ + "0x6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d", + "0x000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0xec28195d952db26d0c13238998280ed9bac737582347b18e92b7df7bdc8279d1", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", + "transactionIndex": "0x1d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb0", + "removed": false + }, + { + "address": "0x0000000000000068f116a894984e2db1123eb395", + "topics": [ + "0x6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d", + "0x000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0xf9a5a3ac5d66d04c588fe7308aa48021df65decd1ae3024cc267b23e5382b3dc", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", + "transactionIndex": "0x1d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb1", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000008000000000000000000020000000000800000000800002000000000000000000000000000010200000200000000000000000000000000000000000000000000000000000000000000010010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0000000000000068f116a894984e2db1123eb395", + "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", + "transactionIndex": "0x1d", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x529c8f", + "effectiveGasPrice": "0x4fb1722d", + "from": "0xe75de7c288e72bb44ce46d4a795bb794bd19664b", + "gasUsed": "0xa15d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000e75de7c288e72bb44ce46d4a795bb794bd19664b", + "0x000000000000000000000000408cb2bb16d073f0b6d4785fdab75b184e59e41e" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000831967dc", + "blockNumber": "0x161bd0f", + "transactionHash": "0xffe56e6ac055509a585cbce2c45f16125695652d5214c2d06b0c4a1646780b0e", + "transactionIndex": "0x1e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb2", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000200000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000010000000002000000000000000000000000000000000088000000000000200000000000000000000000000000000000000000000000000000000000040000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0xffe56e6ac055509a585cbce2c45f16125695652d5214c2d06b0c4a1646780b0e", + "transactionIndex": "0x1e", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x57572f", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x1cca465c62fb70741dd181ee86b53974db7d4122", + "gasUsed": "0x4baa0", + "logs": [ + { + "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001cca465c62fb70741dd181ee86b53974db7d4122", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a" + ], + "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca49", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb3", + "removed": false + }, + { + "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000001cca465c62fb70741dd181ee86b53974db7d4122", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffff905d7d1052a9f197aad6f249", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb4", + "removed": false + }, + { + "address": "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "topics": [ + "0x42bd73ea702d7cf4505c06a7ac02a171536177d9cc2c7665443151ec91cc43fc", + "0x0000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "0x0000000000000000000000001cca465c62fb70741dd181ee86b53974db7d4122" + ], + "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb5", + "removed": false + }, + { + "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb6", + "removed": false + }, + { + "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" + ], + "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca49", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb7", + "removed": false + }, + { + "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "0x000000000000000000000000bf16540c857b4e32ce6c37d2f7725c8eec869b8b" + ], + "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca49", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb8", + "removed": false + }, + { + "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb9", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000bf16540c857b4e32ce6c37d2f7725c8eec869b8b", + "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" + ], + "data": "0x00000000000000000000000000000000000000000000000002c4c470058b00c2", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xba", + "removed": false + }, + { + "address": "0xbf16540c857b4e32ce6c37d2f7725c8eec869b8b", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000013bc94e104376a8b240900c19ee00000000000000000000000000000000000000000000000bfdd04708f7656da8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xbb", + "removed": false + }, + { + "address": "0xbf16540c857b4e32ce6c37d2f7725c8eec869b8b", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000005141b82f5ffda4c6fe1e372978f1c5427640a190", + "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" + ], + "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c4c470058b00c2", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xbc", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a" + ], + "data": "0x00000000000000000000000000000000000000000000000002c4c470058b00c2", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xbd", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "0x000000000000000000000000965dc72531bc322cab5537d432bb14451cabb30d" + ], + "data": "0x0000000000000000000000000000000000000000000000000004f61c6ea17c2a", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xbe", + "removed": false + }, + { + "address": "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "topics": [ + "0xfc431937278b84c6fa5b23bcc58f673c647fea974d3656e766b22d8c1412e544", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + ], + "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000002bfce5396e9849800000000000000000000000000000000000000000000000002b477372c53d6800000000000000000000000000000000000000000000000000004f61c6ea17c2a00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000022812aa3caf0000000000000000000000005141b82f5ffda4c6fe1e372978f1c5427640a1900000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000bf16540c857b4e32ce6c37d2f7725c8eec869b8b000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000002b477372c53d6800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008500000000000000000000000000000000000000000000000000000000006700206ae40711b8002dc6c0bf16540c857b4e32ce6c37d2f7725c8eec869b8b1111111254eeb25477b68fb85ed929f73a96058200000000000000000000000000000000000000000000000002b477372c53d6803ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000000000000000000000000000000000c4e3736f000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xbf", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a" + ], + "data": "0x00000000000000000000000000000000000000000000000002bfce5396e98498", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc0", + "removed": false + }, + { + "address": "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "topics": [ + "0xb4d99315c288c112a1d49da08c3fa85f78e2c83392f63f0a8964418f96aa24ed" + ], + "data": "0x00000000000000000000000000000000000000000000000002bfce5396e9849800000000000000000000000000000000000000000000000002bfce5396e9849800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc1", + "removed": false + }, + { + "address": "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "topics": [ + "0x33be7eabd8ed368ca1aa14ce2ad1e90a0c9bf21edbb3820d5591546e4eb84157", + "0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", + "0x0000000000000000000000001cca465c62fb70741dd181ee86b53974db7d4122" + ], + "data": "0x00000000000000000000000000000000000000000000000002bfce5396e98498000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc2", + "removed": false + }, + { + "address": "0x3c11f6265ddec22f4d049dde480615735f451646", + "topics": [ + "0x68f46c45a243a0e9065a97649faf9a5afe1692f2679e650c2f853b9cd734cc0e" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc3", + "removed": false + } + ], + "logsBloom": "0x002000000000010000000000800000000000000004000000008c0000000000000040000000000000000020000100080002004000080000200010004000200000000000000000080000000008000000a00000000020600000000004000000020008000000040000000000000000080000000004000000040002000010000000000000000000000080000000400000000000004000000000080000004000020080020000000100081000400000008004000000040000000000002000200000002010020002800000000000001000380000000000109000001000000002000000001110200000000020000400000040000000002000000800000000000000000000", + "status": "0x1", + "to": "0x3c11f6265ddec22f4d049dde480615735f451646", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x57a937", + "effectiveGasPrice": "0x495818a5", + "from": "0x776e7ad582e7ccc660f628774c54dd5aad1f14a1", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xb9bd424575359fcc3d3c1538b2e11e37fb517fcf", + "transactionHash": "0x0230cf61b59c8ac739a7cced4477df1611842ca8faeadeab19307145889782a7", + "transactionIndex": "0x20", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x58f4f1", + "effectiveGasPrice": "0x4182b434", + "from": "0xaf31d6f4e3841b28c5b0581770ffaf2e1f558515", + "gasUsed": "0x14bba", + "logs": [ + { + "address": "0x0000bbddc7ce488642fb579f8b00f3a590007251", + "topics": [], + "data": "0xaf31d6f4e3841b28c5b0581770ffaf2e1f5585158703a14049cde59eeb9733a488b963e44544990641bab848f807b8ccb680947fe318ac28dd993d7af5d9873f1127af77a360d4f3c1018b5a8782d75c7509fe8d383311432833c2c8a293f0a2a7b1bbcdbcc53df43624b7dea2c3eaa1e640bc5c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x30c4df0d162a8e6b3a0677be57584d0a50da42677eff50c900f15f36ca1ad7a9", + "transactionIndex": "0x21", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc4", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0000bbddc7ce488642fb579f8b00f3a590007251", + "transactionHash": "0x30c4df0d162a8e6b3a0677be57584d0a50da42677eff50c900f15f36ca1ad7a9", + "transactionIndex": "0x21", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x59a902", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x70df61c20275d9088c4e50c12de9af6d23276e5c", + "gasUsed": "0xb411", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000070df61c20275d9088c4e50c12de9af6d23276e5c", + "0x00000000000000000000000069275b5c10143c8fd1cbdb2637348b1558c73660" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000001312d00", + "blockNumber": "0x161bd0f", + "transactionHash": "0x315141d0a9a6f772f7a151235bdc319a32aed88e0ddd6ca34a94f903cdecd562", + "transactionIndex": "0x22", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc5", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000200000400000000000000000000000000000000000000000000008000004000000000000000000000000000200000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000400000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x315141d0a9a6f772f7a151235bdc319a32aed88e0ddd6ca34a94f903cdecd562", + "transactionIndex": "0x22", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5a9c36", + "effectiveGasPrice": "0x3fce7f68", + "from": "0x10fdba297c8da9fa8904ffd699ce81de5615985c", + "gasUsed": "0xf334", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000010fdba297c8da9fa8904ffd699ce81de5615985c", + "0x00000000000000000000000025d772eb5e0c9dcd7229c7b9158b1e6cb73dadc1" + ], + "data": "0x00000000000000000000000000000000000000000000000000000007aef40a00", + "blockNumber": "0x161bd0f", + "transactionHash": "0xd208e85483ab2355d80676863ecac1a0c67f2455f8af2bcaa68e6cc9bbf92fe6", + "transactionIndex": "0x23", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc6", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000008000008000008000000000000000020000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000200000000000000000040000000000000000000000004000000000000002000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0xd208e85483ab2355d80676863ecac1a0c67f2455f8af2bcaa68e6cc9bbf92fe6", + "transactionIndex": "0x23", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5b655a", + "effectiveGasPrice": "0xdc3a2c62", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gasUsed": "0xc924", + "logs": [ + { + "address": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009642b23ed1e01df1092b92641051881a322f5d4e", + "0x000000000000000000000000a842ba73e0bfe9adeacd527570cc3ab2617de753" + ], + "data": "0x000000000000000000000000000000000000000000000012f365a5d8850e0000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8e59ea830734462addb7c73571c2092c1d2bfcc0689987a2d08dd234827e5c5e", + "transactionIndex": "0x24", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc7", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000010000000000000000000800000000000000000000000000000000000000000000000000000000000020000000000000800000000000000000000000000000000000000000000000002000000000000000000000000000000000000400000208000000000000000000000000000000000800000000000000000000000000000000000000010", + "status": "0x1", + "to": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", + "transactionHash": "0x8e59ea830734462addb7c73571c2092c1d2bfcc0689987a2d08dd234827e5c5e", + "transactionIndex": "0x24", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5c4c54", + "effectiveGasPrice": "0x29c520d4", + "from": "0xb1b2d032aa2f52347fbcfd08e5c3cc55216e8404", + "gasUsed": "0xe6fa", + "logs": [ + { + "address": "0xc52c326331e9ce41f04484d3b5e5648158028804", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000b1b2d032aa2f52347fbcfd08e5c3cc55216e8404", + "0x0000000000000000000000008e7dedd9b1a7fd101a08b1c95f3c602fe0d4b486" + ], + "data": "0x00000000000000000000000000000000000000000000001fd4a70fe0b9180000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xeb72be22b2d9521239741a245f8c90a561199b1df62649eea12f1d504fcf0511", + "transactionIndex": "0x25", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc8", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000008000200000000000000000000000000000100000000000000000000000000000000002000000000000000000800000010000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000008000000000000000000000000000002000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xc52c326331e9ce41f04484d3b5e5648158028804", + "transactionHash": "0xeb72be22b2d9521239741a245f8c90a561199b1df62649eea12f1d504fcf0511", + "transactionIndex": "0x25", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5e876a", + "effectiveGasPrice": "0x251c128e", + "from": "0x87fcc6982257de5bdaa679d08e56117aa0b5a5d1", + "gasUsed": "0x23b16", + "logs": [ + { + "address": "0xcced7736d6781f2a3aa9c7a2a24fea935c9fa9f8", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000087fcc6982257de5bdaa679d08e56117aa0b5a5d1", + "0x00000000000000000000000016da6c5883387edeb9e701efecd9ef9f8b902605" + ], + "data": "0x0000000000000000000000000000000000000000000000000002dc9608740d6e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc9", + "removed": false + }, + { + "address": "0xcced7736d6781f2a3aa9c7a2a24fea935c9fa9f8", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x00000000000000000000000087fcc6982257de5bdaa679d08e56117aa0b5a5d1", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x0000000000000000000000000000000000000000000000000dd7807d23929f5c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xca", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000016da6c5883387edeb9e701efecd9ef9f8b902605", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000007ed690ca0ae0f23", + "blockNumber": "0x161bd0f", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xcb", + "removed": false + }, + { + "address": "0x16da6c5883387edeb9e701efecd9ef9f8b902605", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000000001cc51093ba644c15e00000000000000000000000000000000000000000000000000a887c79105ea90", + "blockNumber": "0x161bd0f", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xcc", + "removed": false + }, + { + "address": "0x16da6c5883387edeb9e701efecd9ef9f8b902605", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002dc9608740d6e00000000000000000000000000000000000000000000000007ed690ca0ae0f230000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xcd", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000007ed690ca0ae0f23", + "blockNumber": "0x161bd0f", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xce", + "removed": false + } + ], + "logsBloom": "0x00200000000000000000000080000000000000000000000000010000000000000000000000000000000000000000000002000000080000000000000000204000200000000000000000000008000000200000000000400000000080000000000008000000000000000000000000000000000000000000040000000110000000000000040000000000004000000000000000000100000000080000004000000000020008000000000800000000000000000800000000000000000000000000000000000002000000000000000000000000000000000000001000040002000020000010200000000000000000000000000000000000000000080000000000000000", + "status": "0x1", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5ee957", + "effectiveGasPrice": "0x338a0fe7", + "from": "0xf51710015536957a01f32558402902a2d9c35d82", + "gasUsed": "0x61ed", + "logs": [ + { + "address": "0x6f4bb3d0625b2cfd4400c6834943fde26c057f7a", + "topics": [ + "0xa419615bc8fda4c87663805ee2a3597a6d71c1d476911d9892f340d965bc7bf1" + ], + "data": "0x000000000000000000000000f51710015536957a01f32558402902a2d9c35d820000000000000000000000000000000000000000000000000635fb4242c74000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf01b080912591defbcce2bb82770072f83b3a91a83ccf4bd7d54893f8cb9cbae", + "transactionIndex": "0x27", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xcf", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000", + "status": "0x1", + "to": "0x6f4bb3d0625b2cfd4400c6834943fde26c057f7a", + "transactionHash": "0xf01b080912591defbcce2bb82770072f83b3a91a83ccf4bd7d54893f8cb9cbae", + "transactionIndex": "0x27", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5f3b5f", + "effectiveGasPrice": "0x29c520d4", + "from": "0x9696f59e4d72e237be84ffd425dcad154bf96976", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x19d315d10037a99d54d099a13e5e3a99a826ecae", + "transactionHash": "0xfd26a9f8e2db5d764cf715384c0bfac63f02b7562b0e6f955709d4da06ef261c", + "transactionIndex": "0x28", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5f8d67", + "effectiveGasPrice": "0x29c520d4", + "from": "0x4976a4a02f38326660d17bf34b431dc6e2eb2327", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x7a9c7afb0673dfb0cacb2bfde0a55c873c59fe1c", + "transactionHash": "0xea9ffed304d53fbaabf6114693e8bb852ce67b3246f6db6bf20e2bb63c606cb6", + "transactionIndex": "0x29", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5fdf6f", + "effectiveGasPrice": "0x27e37c7e", + "from": "0x6dce2424e724a02d231cbcf64edeee8d15bd9e4b", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xb386dff391830280763869d8f416206d16289e31", + "transactionHash": "0x6bbd906f6a605b46a4863de27fbd8497f1e320ddb54b8daf1c932fb25ecce27b", + "transactionIndex": "0x2a", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x60938c", + "effectiveGasPrice": "0x3b9aca00", + "from": "0x2d0d297c319be90844fab9b4ee070b8a81243163", + "gasUsed": "0xb41d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000002d0d297c319be90844fab9b4ee070b8a81243163", + "0x000000000000000000000000cff7b816bdcc412d3a8ee0461ba7a30a9b6a5cac" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000da054a19", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3f164f5ef4d0c9cea6fd7defbda6abdfb3f6dd12957fe85f721d1443e8ac1998", + "transactionIndex": "0x2b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000010000000000000000000000000001000040000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000008000000000000000000800000000000100000000000000000000000000080000000000000000000000000000000000000000000000002010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x3f164f5ef4d0c9cea6fd7defbda6abdfb3f6dd12957fe85f721d1443e8ac1998", + "transactionIndex": "0x2b", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x60e594", + "effectiveGasPrice": "0x261331f8", + "from": "0xb5357b69181efcf8f6f45198b601e21e270a20ff", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x7bf38c17a6519dd17842bc37044cc30b92b81dc5", + "transactionHash": "0xe79c391b1b8ee215a67c818d1b3318872b9c8282d8ea3956349a831fa7fffbcd", + "transactionIndex": "0x2c", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x61379c", + "effectiveGasPrice": "0x23d0d9fc", + "from": "0x2cff890f0378a11913b6129b2e97417a2c302680", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa455eb2c7a4f4b90106cad96cc9c36e62cd46806", + "transactionHash": "0x124c9963d0414550d86a8c6d796b054f04ab221dfd4df6fc37135a5d2a33ed09", + "transactionIndex": "0x2d", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x6189a4", + "effectiveGasPrice": "0x23d0d9fc", + "from": "0x0da475ffc29623e805bbcf7216ea8a438209882c", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x4762631fdff1a1fed3eedf95a685d57007cf9b43", + "transactionHash": "0x4d99f405c49268e1d4a3845a46e54178c6b1becd3e2dacc512d18007f1be3076", + "transactionIndex": "0x2e", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x635d27", + "effectiveGasPrice": "0xa3c4056e0", + "from": "0x6f0a91ef8adeb54db0e63be507747ab9a31d3926", + "gasUsed": "0x1d383", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000e0554a476a092703abdb3ef35c80e0d76d32939f", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000739d1d714", + "blockNumber": "0x161bd0f", + "transactionHash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", + "transactionIndex": "0x2f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd1", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x000000000000000000000000e0554a476a092703abdb3ef35c80e0d76d32939f" + ], + "data": "0x000000000000000000000000000000000000000000000000672ed4843c7fdc00", + "blockNumber": "0x161bd0f", + "transactionHash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", + "transactionIndex": "0x2f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd2", + "removed": false + }, + { + "address": "0xe0554a476a092703abdb3ef35c80e0d76d32939f", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffff8c62e28ec000000000000000000000000000000000000000000000000672ed4843c7fdc000000000000000000000000000000000000003c7b65443ee3c32ab7469f75cd270000000000000000000000000000000000000000000000000893bb9df6efdc72000000000000000000000000000000000000000000000000000000000002f1c0", + "blockNumber": "0x161bd0f", + "transactionHash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", + "transactionIndex": "0x2f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd3", + "removed": false + } + ], + "logsBloom": "0x00000000000000002000000000000000010000000400000000000000000000000000000000000000000000000000000002000000080020000000040000000000000000000000000808000008000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000010000800000000000000000000000000000000000000000000010000000020000000000000000000000000200000000000000000000000000400000000000000000000000000000002000000000000000000000000000000000400000000000000000000000000200000000000000000000000000001000000000000000000000000000000", + "status": "0x1", + "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", + "transactionHash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", + "transactionIndex": "0x2f", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x67f3da", + "effectiveGasPrice": "0xe53094a6", + "from": "0xdada79040afa6ac7d7660e7e18f8a9b82c31f49a", + "gasUsed": "0x496b3", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db" + ], + "data": "0x00000000000000000000000000000000000000000000000013464f00da493600", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "transactionIndex": "0x30", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd4", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db", + "0x000000000000000000000000d51a44d3fae010294c616388b506acda1bfaae46" + ], + "data": "0x00000000000000000000000000000000000000000000000013464f00da493600", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "transactionIndex": "0x30", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd5", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000d51a44d3fae010294c616388b506acda1bfaae46", + "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db" + ], + "data": "0x00000000000000000000000000000000000000000000000000000001598b4135", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "transactionIndex": "0x30", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd6", + "removed": false + }, + { + "address": "0xd51a44d3fae010294c616388b506acda1bfaae46", + "topics": [ + "0xb2e76ae99761dc136e598d4a629bb347eccb9532a5f8bbd72e18467c3c34cc98", + "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000013464f00da493600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001598b4135", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "transactionIndex": "0x30", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd7", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000001598b4135", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "transactionIndex": "0x30", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd8", + "removed": false + } + ], + "logsBloom": "0x00000000000000800000000000000000000000000000000020000000000000000000000000000000000000000000010002000000080000000040040000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000000000000040000000000010000000000000000000000000000000000000000000000000000000000000000002100000000080000000000000000080000000000080000000000000000000000000000000000002000000000040000000000000000000000400001000000000000000000000200001000000000000000020000000000000000000000000000000000000", + "status": "0x1", + "to": "0xec6fc9be2d5e505b40a2df8b0622cd25333823db", + "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "transactionIndex": "0x30", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x6ac18b", + "effectiveGasPrice": "0x153bf91bc", + "from": "0xebedc8e9ff409b23dd251f87ccbffa8075f87255", + "gasUsed": "0x2cdb1", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x0000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b" + ], + "data": "0x00000000000000000000000000000000000000000000000016c1d8e56b090000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", + "transactionIndex": "0x31", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd9", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x0000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b" + ], + "data": "0x00000000000000000000000000000000000000000000000016c1d8e56b090000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", + "transactionIndex": "0x31", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xda", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000197f3bff3", + "blockNumber": "0x161bd0f", + "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", + "transactionIndex": "0x31", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xdb", + "removed": false + }, + { + "address": "0x7f86bf177dd4f3494b841a37e810a34dd56c829b", + "topics": [ + "0x143f1f8e861fbdeddd5b46e844b7d3ac7b86a122f36e8c463859ee6811b1f29c", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000016c1d8e56b09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000197f3bff3000000000000000000000000000000000000000000000000000000000031dbf900000000000000e1a52b2444049dac570000000000001802d2bd63425c10da74", + "blockNumber": "0x161bd0f", + "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", + "transactionIndex": "0x31", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xdc", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000002000100080000000000040000000000000000000000000008000008000000000000002000440000001000000000000000000000000000000000000000000000000000000000040000000010000000000000000000000000000040000000000000010004010000000000000000000000000000000000201000000000000000000000000000000000000000000000000000000002000000000000020000000000000000000400000000000002000000000000200000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", + "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", + "transactionIndex": "0x31", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x6d2246", + "effectiveGasPrice": "0x3a5d5e6a8d", + "from": "0xac8b6e55c809e4dd83dc9943cf460c1caca84125", + "gasUsed": "0x260bb", + "logs": [ + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0x21c67e77068de97969ba93d4aab21826d33ca12bb9f565d8496e8fda8a82ca27", + "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffd0a718657b2178000000000000000000000000000000000000000000000000000000000350c60dcb5000000000000000000000000000000000000000000043bb7248357b1b91f72f70000000000000000000000000000000000000000000000003a6da3f97343c983fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e4200000000000000000000000000000000000000000000000000000000000001f4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", + "transactionIndex": "0x32", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xdd", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" + ], + "data": "0x000000000000000000000000000000000000000000000002f58e79a84de88000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", + "transactionIndex": "0x32", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xde", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" + ], + "data": "0x000000000000000000000000000000000000000000000002f58e79a84de88000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", + "transactionIndex": "0x32", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xdf", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000350c60dcb5", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", + "transactionIndex": "0x32", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe0", + "removed": false + } + ], + "logsBloom": "0x000000000000020000000000000000000000000000000000000000080000000000000000200000000010000000000000020000000c0000000000040000000000000000000000000008000008000000000000000000440020000000000000000000000000000000000000000000000000000000000000040000000010000000000000000800000000000002000000000000000000010000000000000000000000080008000000200000000000100000000000000000000000000000000000000000000802000000000000000000000000000000400400000000000002000000000000200000000000004000000000000000000000000000000000000000004000", + "status": "0x1", + "to": "0xba47cbfdd61029833841fcaa2ec2591ddfa87e51", + "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", + "transactionIndex": "0x32", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x6ef9d5", + "effectiveGasPrice": "0x182f2c39bc", + "from": "0xeaa9ebddd373c4bd8bb92dfcc9c7e7fcdb268e51", + "gasUsed": "0x1d78f", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000011b815efb8f581194ae79006d24e0d814b7697f6", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000f9ce27d34", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", + "transactionIndex": "0x33", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe1", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x00000000000000000000000011b815efb8f581194ae79006d24e0d814b7697f6" + ], + "data": "0x000000000000000000000000000000000000000000000000defc43c79ba7e000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", + "transactionIndex": "0x33", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe2", + "removed": false + }, + { + "address": "0x11b815efb8f581194ae79006d24e0d814b7697f6", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x000000000000000000000000000000000000000000000000defc43c79ba7e000fffffffffffffffffffffffffffffffffffffffffffffffffffffff0631d82cc000000000000000000000000000000000000000000043ba34777dac0e090457c00000000000000000000000000000000000000000000000010b912988f66a1bafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e41", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", + "transactionIndex": "0x33", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe3", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010002000000080020000000040000000000000000000000000800000008000000000000000000040000000010000000000000000000000000000000000000000000000000000000000000000090000800000000000000000000000000000000000000000000000000000400000000100000000000000000000000000080000000000000000000000000000004000000000000000002000000000000000000000000000000000400000000000000000000000000200000000000000000000000000000000000000000000008001000000000", + "status": "0x1", + "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", + "transactionHash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", + "transactionIndex": "0x33", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x71623a", + "effectiveGasPrice": "0xee6546334", + "from": "0x45923a43492d0deb458cb97c4ca8b7ccb0a20c71", + "gasUsed": "0x26865", + "logs": [ + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0x72331fcb696b0151904c03584b66dc8365bc63f8a144d89a773384e3a579ca73", + "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffff4b85e6bd418c18000000000000000000000000000000000000000000000000000000000ca2eaebe7000000000000000000000000000000000000000000043ba347af94015f704a750000000000000000000000000000000000000000000000000dac0e6095949700fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e4100000000000000000000000000000000000000000000000000000000000001f4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", + "transactionIndex": "0x34", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe4", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" + ], + "data": "0x000000000000000000000000000000000000000000000000b47a1942be73e800", + "blockNumber": "0x161bd0f", + "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", + "transactionIndex": "0x34", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe5", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" + ], + "data": "0x000000000000000000000000000000000000000000000000b47a1942be73e800", + "blockNumber": "0x161bd0f", + "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", + "transactionIndex": "0x34", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe6", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000ca2eaebe7", + "blockNumber": "0x161bd0f", + "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", + "transactionIndex": "0x34", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe7", + "removed": false + } + ], + "logsBloom": "0x000000000000020000000000000000000000000000000000000000000000000000000000200000000010000000000100020000000c0000000000040000000000000000000000000000000008000000000020000000440020000000000000000000000000000000000000000000000000000000000000040000000010000000000000000800000000000002000000000000000000000000000000080000100000000008000000000000000080100000000000000000000000000000000000000000000802100000000000000000000000000000400400000000000002000000000000200000000000004000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xba47cbfdd61029833841fcaa2ec2591ddfa87e51", + "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", + "transactionIndex": "0x34", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x736cc5", + "effectiveGasPrice": "0x23cf3fd5", + "from": "0x639b2d751e6436667b97fe350c0fed111fc33fb4", + "gasUsed": "0x20a8b", + "logs": [ + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0x00b9edc1583bf6ef09ff3a09f6c23ecb57fd7d0bb75625717ec81eed181e22d7", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffb2dc9c126573b1060000000000000000000000000000000000000000000000000000000566e5c345000000000000000000000000000000000000000000043b8825a96b1a400000000000000000000000000000000000000000000000000000000601e4d79975daecfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e3f0000000000000000000000000000000000000000000000000000000000000064", + "blockNumber": "0x161bd0f", + "transactionHash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", + "transactionIndex": "0x35", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe8", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000566e5c345", + "blockNumber": "0x161bd0f", + "transactionHash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", + "transactionIndex": "0x35", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe9", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0x0000000000000000000000000000000000000000000000004d2363ed9a8c4efa", + "blockNumber": "0x161bd0f", + "transactionHash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", + "transactionIndex": "0x35", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xea", + "removed": false + } + ], + "logsBloom": "0x000000000000000000000000000000000000000000000000000000000000000000000000200000000010000000000000020000000c0000000000000000000000000000000000000008000008000000000000000000520020000000000000000000000000000000000000000000000000000000000000040000000010000000000000000800000000400000000000000000000000010000000000000000000000000000000000200000000000100000000000000000000000000000000000000000000802400000000000001000000000000000400000000000000002000000000000200000000000004000000100000000000000000000000000000000000000", + "status": "0x1", + "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", + "transactionHash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", + "transactionIndex": "0x35", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x75a487", + "effectiveGasPrice": "0x23cf3fd5", + "from": "0x5c132e26694e1f3bad52a4f55c9cfd0f181d7463", + "gasUsed": "0x237c2", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007df7c84f2f9dcef3c0813e539878b76b89a916f8", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000013ee400b", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", + "transactionIndex": "0x36", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xeb", + "removed": false + }, + { + "address": "0x2dff88a56767223a5529ea5960da7a3f5f766406", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167", + "0x0000000000000000000000007df7c84f2f9dcef3c0813e539878b76b89a916f8" + ], + "data": "0x000000000000000000000000000000000000000000000074e8b8f27fc31243d9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", + "transactionIndex": "0x36", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xec", + "removed": false + }, + { + "address": "0x7df7c84f2f9dcef3c0813e539878b76b89a916f8", + "topics": [ + "0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0x000000000000000000000000000000000000000000000074e8b8f27fc31243d9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffec11bff500000000000000000000000000000000000000000000069c1adf3fbff1400000000000000000000000000000000000000000000000000000082a8a4ae870e18dfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7fd500000000000000000000000000000000000000000000000017f16700ebe17fd90000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", + "transactionIndex": "0x36", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xed", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000002000002000000000000000000008800400000000000040000000040000008000008000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000040200000000002000000000000000000000000000000000000000000000002000000020000000000000000000000000000000000000000000000000008000000000000000000000100000000100000000000000000000000000000", + "status": "0x1", + "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", + "transactionHash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", + "transactionIndex": "0x36", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x77af0a", + "effectiveGasPrice": "0x23cf3fd5", + "from": "0x69021e92840bd777cf2c495f3be516700e430a5b", + "gasUsed": "0x20a83", + "logs": [ + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0x1e58170b9bd63a7394ddb486ed8e94d2255568a7913fb02a24f30e079f4e0e9a", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb2a5900000000000000000000000000000000000000000000000000000000156908bb0000000000000000000000000000000000000021ac6aeaccbcfc000000000000000000000000000000000000000000000000000000000000000000024894324700000000000000000000000000000000000000000000000000000000000112c100000000000000000000000000000000000000000000000000000000000004e2", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", + "transactionIndex": "0x37", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xee", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000156908bb", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", + "transactionIndex": "0x37", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xef", + "removed": false + }, + { + "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000004d5a7", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", + "transactionIndex": "0x37", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000200000000000000000000020000000001000000000010000000000040000000000000000000000000000000000000000000008000001000000000000120020000000000000000000000000000000000000000000000000020000000000000000000010000000000000000800000010000000000000000000000000000000000000000000100000010000000000000000000080100000000000000000000000000000000000000000000802000000000000000000000000000000400000000000000000000000000000000000000000004000000100000000200000000000000000000000000000", + "status": "0x1", + "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", + "transactionHash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", + "transactionIndex": "0x37", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x7a1d3c", + "effectiveGasPrice": "0x36eb8fdca", + "from": "0x545da54509ef233642343b8beac5ef4443e79d73", + "gasUsed": "0x26e32", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000006ca298d2983ab03aa1da7679389d955a4efee15c", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000002b22ae61e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", + "transactionIndex": "0x38", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf1", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x0000000000000000000000006ca298d2983ab03aa1da7679389d955a4efee15c" + ], + "data": "0x0000000000000000000000000000000000000000000000002680cb38d1649c00", + "blockNumber": "0x161bd0f", + "transactionHash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", + "transactionIndex": "0x38", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf2", + "removed": false + }, + { + "address": "0x6ca298d2983ab03aa1da7679389d955a4efee15c", + "topics": [ + "0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83", + "0x0000000000000000000000003b55732f6d3997a7d44a041b8496e1a60712a35f", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x0000000000000000000000000000000000000000000000002680cb38d1649c00fffffffffffffffffffffffffffffffffffffffffffffffffffffffd4dd519e2000000000000000000000000000000000000000000043b9fdf238091c45e86f900000000000000000000000000000000000000000000000002b610f914e5d61bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e410000000000000000000000000000000000000000000000000001acf7b91288990000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", + "transactionIndex": "0x38", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf3", + "removed": false + } + ], + "logsBloom": "0x00000040000000000000002000000000000000000000400000000000000000000000000000000000000000000002010002000008080000000000040000000000040000000040000000000008000000000000000000040000000000000000000000000000000000000000000000000000000004000000000200000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000002800000000000000000000000000000000002000000000000000000000000000000000400000000000004000000000000200000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x3b55732f6d3997a7d44a041b8496e1a60712a35f", + "transactionHash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", + "transactionIndex": "0x38", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x7d266f", + "effectiveGasPrice": "0x214369152", + "from": "0x448166a91e7bc50d0ac720c2fbed29e0963f5af8", + "gasUsed": "0x30933", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37" + ], + "data": "0x0000000000000000000000000000000000000000000000007bde86a2e53bb9a6", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "transactionIndex": "0x39", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf4", + "removed": false + }, + { + "address": "0x52aa899454998be5b000ad077a46bbe360f4e497", + "topics": [ + "0x4d93b232a24e82b284ced7461bf4deacffe66759d5c24513e6f29e571ad78d15", + "0x000000000000000000000000836951eb21f3df98273517b7249dceff270d34bf", + "0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" + ], + "data": "0x0000000000000000000000000000000000000000000000004fcfa02432be1e80ffffffffffffffffffffffffffffffffffffffffffffffffd3f119814d8be3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c917b591b25869140000000000000000e6be8696f7624f140000000000000007d4adbffcd8000007b35e662761a29611bc01e8ac43e80127", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "transactionIndex": "0x39", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf5", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000052aa899454998be5b000ad077a46bbe360f4e497", + "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37" + ], + "data": "0x00000000000000000000000000000000000000000000000000000008ac01b3f7", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "transactionIndex": "0x39", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf6", + "removed": false + }, + { + "address": "0x52aa899454998be5b000ad077a46bbe360f4e497", + "topics": [ + "0x4d93b232a24e82b284ced7461bf4deacffe66759d5c24513e6f29e571ad78d15", + "0x000000000000000000000000836951eb21f3df98273517b7249dceff270d34bf", + "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffa699cc60d00000000000000000000000000000000000000000000000000000003159e7a04000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37000000000000000000dd001001890700000000000000000001111c3fd1050d0000000000000000085fc905d39000000815a8992621a297309c01e82f03e80299", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "transactionIndex": "0x39", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf7", + "removed": false + }, + { + "address": "0x836951eb21f3df98273517b7249dceff270d34bf", + "topics": [ + "0xdc004dbca4ef9c966218431ee5d9133d337ad018dd5b5c5493722803f75c64f7" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007bde86a2e53bb9a600000000000000000000000000000000000000000000000000000008ac01b3f7000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "transactionIndex": "0x39", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf8", + "removed": false + } + ], + "logsBloom": "0x00000000000008000000000000000000000000000000000000800000000000000004000000000000000002400000000002000000080000000010000000000000000000000000000008000008000000000000000000500000000000000000000000040000000002000002020000000008000000000400040000000010000000000000000000000000000000000000000200000000010010000000000000040000000000000000200000000000000000000000000000000000000800200000000000000002000000000000000000100800000000004000000008000002000002000000240000000000000000000000000004400000000000000000000200000000", + "status": "0x1", + "to": "0xfbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "transactionIndex": "0x39", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x809ce1", + "effectiveGasPrice": "0x1ebd76860", + "from": "0x7f982f64ee9dfd024acb8c2abb5884fef0b9d440", + "gasUsed": "0x37672", + "logs": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x0000000000000000000000005236333ef2baa45b450689b69e4e4b277d84f954" + ], + "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae900000000000000000000000000000000000000000000000000000003548cbd98000000000000000000000000000000000000000000000002b5e3af16b1880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000388afd5e921fa3ba3fa6b9bd5d1e0ef74af410ac2b1755d3d886b693e6f421fd755236333ef2baa45b450689b69e4e4b277d84f95468a5d5340000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf9", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000005236333ef2baa45b450689b69e4e4b277d84f954", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x00000000000000000000000000000000000000000000000000000003548cbd98", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xfa", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000035413c376", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xfb", + "removed": false + }, + { + "address": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000002b5e3af16b1880000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xfc", + "removed": false + }, + { + "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", + "topics": [ + "0xadd7095becdaa725f0f33243630938c861b0bba83dfd217d4055701aa768ec2e", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xfd", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000004dcebcba00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xfe", + "removed": false + }, + { + "address": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000005236333ef2baa45b450689b69e4e4b277d84f954" + ], + "data": "0x000000000000000000000000000000000000000000000002b5e3af16b1880000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xff", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", + "0x0000000000000000000000004dd1be0cd607e5382dd2844fa61d3a17e3e83d56" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x100", + "removed": false + } + ], + "logsBloom": "0x000010040000000000000000000010000040000800000000000000000000000000000000000000000000000000000100000000000000000020000440000000020000000000000000202000080000000000000001000400000000000000000002000000000a0000000000800000000880000000000000000010004010000010000000080000000000000201000000002000000000400000000000000000100000000000600000000000000080000000000000000000000000010000000000000000000002000800000008000000000000000020000400000800000000000020000000000000000000000002000000000000004000000000000000000000000000", + "status": "0x1", + "to": "0x4dd1be0cd607e5382dd2844fa61d3a17e3e83d56", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x82156c", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x55823001c8cd87a6e86716ca768bce51f2d89c9c", + "gasUsed": "0x1788b", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f7b52be96b229dc63e6301bea175a1b5f756c274", + "0x000000000000000000000000ce5586f0fbe00a3efbfc8d2caa714fdbe6a052eb" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000129fc57bd", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbc730be36c276ca5a0a02eeaa192ed302cf87c7453ad567e22fc951a0bf8d7e8", + "transactionIndex": "0x3b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x101", + "removed": false + } + ], + "logsBloom": "0x00000100000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000008000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000100000000000000000000000000000", + "status": "0x1", + "to": "0xf7b52be96b229dc63e6301bea175a1b5f756c274", + "transactionHash": "0xbc730be36c276ca5a0a02eeaa192ed302cf87c7453ad567e22fc951a0bf8d7e8", + "transactionIndex": "0x3b", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9134a0", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x8611abf54b7ad26ccbfe99a213c201ee60dba0e5", + "gasUsed": "0xf1f34", + "logs": [ + { + "address": "0x13a5a916356242879b9509fd12bf8e4760a3f438", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000022", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x102", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f4240", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x103", + "removed": false + }, + { + "address": "0x13a5a916356242879b9509fd12bf8e4760a3f438", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f384c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x104", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438", + "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f4240", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x105", + "removed": false + }, + { + "address": "0x79fd640000f8563a866322483524a4b48f1ed702", + "topics": [ + "0x15c027cc4fd826d986cad358803439f7326d3aa4ed969ff90dbee4bc150f68e9" + ], + "data": "0x00000000000000000000000000000000000000000000000000000018cdea085e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x106", + "removed": false + }, + { + "address": "0x79fd640000f8563a866322483524a4b48f1ed702", + "topics": [ + "0x548669ea9bcc24888e6d74a69c9865fa98d795686853b8aa3eb87814261bbb71" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x107", + "removed": false + }, + { + "address": "0x79fd640000f8563a866322483524a4b48f1ed702", + "topics": [ + "0xf66f28b40975dbb933913542c7e6a0f50a1d0f20aa74ea6e0efe65ab616323ec" + ], + "data": "0x00000000000000000000000000000000000000000000000000000018cdea085e0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x108", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438", + "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f4240", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x109", + "removed": false + }, + { + "address": "0x79fd640000f8563a866322483524a4b48f1ed702", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" + ], + "data": "0x0000000000000000000000000000000000000000000000000daf726dd543ad01", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10a", + "removed": false + }, + { + "address": "0x79fd640000f8563a866322483524a4b48f1ed702", + "topics": [ + "0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000daf726dd543ad01", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10b", + "removed": false + }, + { + "address": "0x870ac11d48b15db9a138cf899d20f13f79ba00bc", + "topics": [ + "0x7120161a7b3d31251e01294ab351ef15a41b91659a36032e4641bb89b121e321", + "0xa921ef34e2fc7a27ccc50ae7e4b154e16c9799d3387076c421423ef52ac4df99" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000062669641000000000000000000000000000000000000000000000000000000004cd5602e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10c", + "removed": false + }, + { + "address": "0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb", + "topics": [ + "0x9d9bd501d0657d7dfe415f779a620a62b78bc508ddc0891fbbd8b7ac0f8fce87", + "0xa921ef34e2fc7a27ccc50ae7e4b154e16c9799d3387076c421423ef52ac4df99" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000062669641000000000000000000000000000000000000000000000000000000000b47db310000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10d", + "removed": false + }, + { + "address": "0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb", + "topics": [ + "0xedf8870433c83823eb071d3df1caa8d008f12f6440918c20d75a3602cda30fe0", + "0xa921ef34e2fc7a27ccc50ae7e4b154e16c9799d3387076c421423ef52ac4df99", + "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702", + "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000d51ee5a890", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10e", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702", + "0x000000000000000000000000bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f4240", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10f", + "removed": false + }, + { + "address": "0x79fd640000f8563a866322483524a4b48f1ed702", + "topics": [ + "0x15c027cc4fd826d986cad358803439f7326d3aa4ed969ff90dbee4bc150f68e9" + ], + "data": "0x00000000000000000000000000000000000000000000000000000018cdf94a9e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x110", + "removed": false + }, + { + "address": "0x034771103dc1e9b1f2ebda95896fc44b6d63edc7", + "topics": [ + "0x34f2a7363b1ef64b0b62a223c88cf3f54a68686acfcb9531d7deb46004f37c46", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x111", + "removed": false + }, + { + "address": "0x13a5a916356242879b9509fd12bf8e4760a3f438", + "topics": [ + "0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7", + "0x0000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5", + "0x0000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000f384c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x112", + "removed": false + } + ], + "logsBloom": "0x00000000000040000000000000000080000000000000000001000000000040000000400000000000000000000000010000000000000000000000000020a4400000000040001000000000000880000000004000080028000000000108000000000000000002000002000000000000080000000000000400000000001800000000000800000000000800200000000000000000000000000000003004000010040002000000002000000000008000000000004010000400040000000000000000002800000200000000000100000000000008000000810900000000000000002040c010000001000000000000240201000400000002000008000000000400080000", + "status": "0x1", + "to": "0x13a5a916356242879b9509fd12bf8e4760a3f438", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9186a8", + "effectiveGasPrice": "0xdc3a2c62", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x1b216d8b75a050041e59860ff7fda6e3411424f4", + "transactionHash": "0x6ae2f1fd6116d2b93223ae3548caf9d85e43d8fefec88814d36f38b916bab652", + "transactionIndex": "0x3d", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x91d8b0", + "effectiveGasPrice": "0xdc3a2c62", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x2e17aa7437b4ac446e5750202ab1d48c7884f5d9", + "transactionHash": "0x3991e33f52ae3cf5167bf1f07cc8d358caf226022c5128ad991fe279b702a27d", + "transactionIndex": "0x3e", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x92a1d4", + "effectiveGasPrice": "0xdc3a2c62", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gasUsed": "0xc924", + "logs": [ + { + "address": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009642b23ed1e01df1092b92641051881a322f5d4e", + "0x000000000000000000000000a882df02283fa89d5659a870414e2c1803fd54ca" + ], + "data": "0x00000000000000000000000000000000000000000000000ab407c9eb05200000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xed80b011a517f5aab29dc7b79061fd54b68cc36c2023bfaff2812be53328e7fd", + "transactionIndex": "0x3f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x113", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000800000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000010000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000208000000000000000000000000000000000800000000000000000000000800000000000000000", + "status": "0x1", + "to": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", + "transactionHash": "0xed80b011a517f5aab29dc7b79061fd54b68cc36c2023bfaff2812be53328e7fd", + "transactionIndex": "0x3f", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x92f3dc", + "effectiveGasPrice": "0xdc3a2c62", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0b9b42d7edb6b669a24f50157f80e5d909cb6eb8", + "transactionHash": "0x06d504980fbacf359463537147c81348f5978476433367b067b185ad95be82e0", + "transactionIndex": "0x40", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9345e4", + "effectiveGasPrice": "0xdc3a2c62", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0f000db45a0f4320ac77c5ba21312ae52174326a", + "transactionHash": "0xd33b517a15607a18d3c33ddc1f237aa61e9a3947b21287768ce3ba86d2495a03", + "transactionIndex": "0x41", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x93fbd4", + "effectiveGasPrice": "0xd6455cd2", + "from": "0x7586854ec236f3ef8e7e5c7cc55dd3b449feed98", + "gasUsed": "0xb5f0", + "logs": [ + { + "address": "0xfa417cd491632620a582851b07abf7e3447bba71", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000007586854ec236f3ef8e7e5c7cc55dd3b449feed98", + "0x00000000000000000000000077edae6a5f332605720688c7fda7476476e8f83f" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1827070bb19ea45e3bf9eec57ccc94690038337ada1bc618ab79eb21a8078dac", + "transactionIndex": "0x42", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x114", + "removed": false + } + ], + "logsBloom": "0x01000000000000000000000000001000100000000000000000000000000000200000000000000000000000000000000400000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000002000000000020000000000000000000000000000000000", + "status": "0x1", + "to": "0xfa417cd491632620a582851b07abf7e3447bba71", + "transactionHash": "0x1827070bb19ea45e3bf9eec57ccc94690038337ada1bc618ab79eb21a8078dac", + "transactionIndex": "0x42", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x94ac3c", + "effectiveGasPrice": "0xd69f9dd4", + "from": "0x3fdd41c3622aa33227d42d87c6838aaa9dca0dcf", + "gasUsed": "0xb068", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000003fdd41c3622aa33227d42d87c6838aaa9dca0dcf", + "0x0000000000000000000000008476de5d91038c1015c73e6fec0a97d45d91ec18" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000008ebb1c8", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc8d9083af83a6c8fa73051663d8a2c9d79195be21063c09066d39d562d1be993", + "transactionIndex": "0x43", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x115", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000002000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000080000000000000000000000000000000000000000000000000000000000000000000010000000010000000000000000000000000000000000000000000000000010000080000000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0xc8d9083af83a6c8fa73051663d8a2c9d79195be21063c09066d39d562d1be993", + "transactionIndex": "0x43", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x959f70", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x93228d328c9c74c2bfe9f97638bbb5ef322f2bd5", + "gasUsed": "0xf334", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000093228d328c9c74c2bfe9f97638bbb5ef322f2bd5", + "0x00000000000000000000000041ea4e72b88a8e84b83b739f4092339d721574cf" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000ac9d740", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7e1bbe3049928a58a967ff5188615b894fc8093d92778abcdedbdbdf9957c052", + "transactionIndex": "0x44", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x116", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000010000000000000000000000000000000000000000000000000010000000000000000008080000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000400", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0x7e1bbe3049928a58a967ff5188615b894fc8093d92778abcdedbdbdf9957c052", + "transactionIndex": "0x44", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x96ec8c", + "effectiveGasPrice": "0x7a4ab68f", + "from": "0x8347cd390c696372aa5ac17865117d5521c5476a", + "gasUsed": "0x14d1c", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a", + "0x0000000000000000000000005c7bcd6e7de5423a257d81b442095a1a6ced35c5" + ], + "data": "0x000000000000000000000000000000000000000000000000000000005120bce0", + "blockNumber": "0x161bd0f", + "transactionHash": "0x75205100cde683dcb84a3b361f7320c0a0adad9f4c151a7088938db3a90c682b", + "transactionIndex": "0x45", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x117", + "removed": false + }, + { + "address": "0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5", + "topics": [ + "0x32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3", + "0x0000000000000000000000000000000000000000000000000000000000002105", + "0x00000000000000000000000000000000000000000000000000000000002e16ea", + "0x0000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a" + ], + "data": "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000005120bce000000000000000000000000000000000000000000000000000000000511e68ef0000000000000000000000000000000000000000000000000000000068a5cd170000000000000000000000000000000000000000000000000000000068a5fc010000000000000000000000000000000000000000000000000000000068a5ce730000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a000000000000000000000000394311a6aaa0d8e3411d8b62de4578d41322d1bd00000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x75205100cde683dcb84a3b361f7320c0a0adad9f4c151a7088938db3a90c682b", + "transactionIndex": "0x45", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x118", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000001000000000000000001000000000000000000000000000008000108000000000000000000000000000000000000000000010000000000000000000000000000000120000000000000000010000000000000000800000008000800100000001000000000210008000000000020000000001000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000010000000000000000000000000000000000000000000004000000000000000000000000000000", + "status": "0x1", + "to": "0x8347cd390c696372aa5ac17865117d5521c5476a", + "transactionHash": "0x75205100cde683dcb84a3b361f7320c0a0adad9f4c151a7088938db3a90c682b", + "transactionIndex": "0x45", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x97d8c6", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x91d40e4818f4d4c57b4578d9eca6afc92ac8debe", + "gasUsed": "0xec3a", + "logs": [ + { + "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000091d40e4818f4d4c57b4578d9eca6afc92ac8debe", + "0x000000000000000000000000124f9ec75369ea83cdfdb1d87c5874ca7f081107" + ], + "data": "0x000000000000000000000000000000000000000000026d04ab7d750dfb350000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6a3001d1458aaae959847d930c1f1b4e813899c8702e5a3f7ea14123b633ee52", + "transactionIndex": "0x46", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x119", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000080000000000000008000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000010000000000000000000000000000000000010000000000000000000000000800200000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000001000000000000000000000000000000000000080001000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "transactionHash": "0x6a3001d1458aaae959847d930c1f1b4e813899c8702e5a3f7ea14123b633ee52", + "transactionIndex": "0x46", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x997e69", + "effectiveGasPrice": "0x5f6a09d5", + "from": "0x0fc7cb62247151faf5e7a948471308145f020d2e", + "gasUsed": "0x1a5a3", + "logs": [ + { + "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000004585fe77225b41b697c938b018e2ac67ac5a20c0", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000003a4592", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", + "transactionIndex": "0x47", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11a", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c", + "0x0000000000000000000000004585fe77225b41b697c938b018e2ac67ac5a20c0" + ], + "data": "0x0000000000000000000000000000000000000000000000000e6292767661e2a9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", + "transactionIndex": "0x47", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11b", + "removed": false + }, + { + "address": "0x4585fe77225b41b697c938b018e2ac67ac5a20c0", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc5ba6e0000000000000000000000000000000000000000000000000e6292767661e2a9000000000000000000000000000000000007f2bc5dc46b0bc91a11635bcf1c480000000000000000000000000000000000000000000000000032f67f85989ef7000000000000000000000000000000000000000000000000000000000004046f", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", + "transactionIndex": "0x47", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11c", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000001000001000000000000000000000000000000000000000000000000000000000002000000080020000000000000000000000080000000000800000208000000000000000000000000000000000000000000080000000002000000000000002000020000000000000000000010000800000020000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000800000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000200000000000000000000000000000", + "status": "0x1", + "to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c", + "transactionHash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", + "transactionIndex": "0x47", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9b1a6d", + "effectiveGasPrice": "0x5f6a09d5", + "from": "0x234de29cc82f9ce20cdc71b8b4baf6d51f4a1a64", + "gasUsed": "0x19c04", + "logs": [ + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000060594a405d53811d3bc4766596efd80fd545a270", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c" + ], + "data": "0x00000000000000000000000000000000000000000000004b2c431fda9185ee5e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", + "transactionIndex": "0x48", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11d", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c", + "0x00000000000000000000000060594a405d53811d3bc4766596efd80fd545a270" + ], + "data": "0x000000000000000000000000000000000000000000000000049bff3124b7bb06", + "blockNumber": "0x161bd0f", + "transactionHash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", + "transactionIndex": "0x48", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11e", + "removed": false + }, + { + "address": "0x60594a405d53811d3bc4766596efd80fd545a270", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffb4d3bce0256e7a11a2000000000000000000000000000000000000000000000000049bff3124b7bb06000000000000000000000000000000000000000003f68e899e4ccafb82674bf5000000000000000000000000000000000000000000000431bb9918fecc9757c6fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeba58", + "blockNumber": "0x161bd0f", + "transactionHash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", + "transactionIndex": "0x48", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11f", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000020000001000000000000000000000040000000000000000000000000000000000000000002000000080020000000000000000000000080000000000800000008000000000000000000000000000000000000000010000000000000000000080000002000000000000000002000000010000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000002000000020000000000000000000002000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c", + "transactionHash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", + "transactionIndex": "0x48", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9d6f74", + "effectiveGasPrice": "0x3bb9cbd0", + "from": "0x22b0351d445840db59b97df3808dd642dcb17e96", + "gasUsed": "0x25507", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36", + "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37" + ], + "data": "0x000000000000000000000000000000000000000000000000000000002c5a0de9", + "blockNumber": "0x161bd0f", + "transactionHash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", + "transactionIndex": "0x49", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x120", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36" + ], + "data": "0x0000000000000000000000000000000000000000000000000278f7f1db3b9b5e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", + "transactionIndex": "0x49", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x121", + "removed": false + }, + { + "address": "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36", + "topics": [ + "0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83", + "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffd3a5f2170000000000000000000000000000000000000000000000000278f7f1db3b9b5e0000000000000000000000000000000000003c7390d650dc073538d9dde88a3e0000000000000000000000000000000000000000000000000037a1a246968f30000000000000000000000000000000000000000000000000000000000002f1b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b8bfa78220d", + "blockNumber": "0x161bd0f", + "transactionHash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", + "transactionIndex": "0x49", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x122", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000000000000000000002000002000000080000000000000000000000040000000040000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000010000000000000000000000000000000000000000000000000010000100000000000000000000000000000200000000000000000800000000000000000008000000000000000001002000000000000000000000800000000000000000000000000000000000000240000000000000000000000000000000000000000000000000040000000", + "status": "0x1", + "to": "0xfbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "transactionHash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", + "transactionIndex": "0x49", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9e1fdc", + "effectiveGasPrice": "0x77359400", + "from": "0x46340b20830761efd32832a74d7169b29feb9758", + "gasUsed": "0xb068", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000046340b20830761efd32832a74d7169b29feb9758", + "0x00000000000000000000000025637c1059b044c262cb1108c899cad44c8cd908" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001d34ce80", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa2a8edbe294afde748bf14aae5427b8af22a65d9e1ea8de5c410057d577a480e", + "transactionIndex": "0x4a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x123", + "removed": false + } + ], + "logsBloom": "0x00040000008000000000000000000000000000000000000000000010000000000000000040000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000010000000000000000800000000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0xa2a8edbe294afde748bf14aae5427b8af22a65d9e1ea8de5c410057d577a480e", + "transactionIndex": "0x4a", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9e71e4", + "effectiveGasPrice": "0xd69f9dd4", + "from": "0x1864d150aa60111fb312a1b8f4cf8e6dabd3094c", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0abbc482fbd91dbf413e3d6cc5622e03552ac13a", + "transactionHash": "0x1de9ccef004f5f226c9468fb6abdc40755e1e5c7ddfcf1dd4ea2cbb708cc2165", + "transactionIndex": "0x4b", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xa384be", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x5962604feb383ca4164107583d147b2aa1d86d54", + "gasUsed": "0x512da", + "logs": [ + { + "address": "0x2401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000005962604feb383ca4164107583d147b2aa1d86d54", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x00000000000000000000000000000000000000000000000000502072edbac1fa", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "transactionIndex": "0x4c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x124", + "removed": false + }, + { + "address": "0x00a0be1bbc0c99898df7e6524bf16e893c1e3bb9", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000002401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", + "0x0000000000000000000000008d6fd650500f82c7d978a440348e5a9b886943bf" + ], + "data": "0x000000000000000000000000000000000000000000000000004f723c6b53a4a8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "transactionIndex": "0x4c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x125", + "removed": false + }, + { + "address": "0x8d6fd650500f82c7d978a440348e5a9b886943bf", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000005962604feb383ca4164107583d147b2aa1d86d54", + "0x00000000000000000000000000013dd60000000000000000004f723c6b53a4a8" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "transactionIndex": "0x4c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x126", + "removed": false + }, + { + "address": "0x8d6fd650500f82c7d978a440348e5a9b886943bf", + "topics": [ + "0x0080df45f12186856da484a1494bb51907e2abec5abc9a401e443c116bed71a5", + "0x0000000000000000000000005962604feb383ca4164107583d147b2aa1d86d54" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000013dd600000000000000000000000000013dd60000000000000000004f723c6b53a4a800000000000000000000000000000000000000000000425cb1e1774c9a683cbd000000000000000000000000000000000000000000000000004f723c6b53a4a80000000000000000000000000000000000000000000000000054d440ddba222e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "transactionIndex": "0x4c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x127", + "removed": false + }, + { + "address": "0x2401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", + "topics": [ + "0x75aa83b91343398bcfa338c4017c29780f24e0178bb796993453746801d80b03", + "0x0000000000000000000000005962604feb383ca4164107583d147b2aa1d86d54" + ], + "data": "0x00000000000000000000000000000000000000000000000000502072edbac1fa000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004f723c6b53a4a8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "transactionIndex": "0x4c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x128", + "removed": false + } + ], + "logsBloom": "0x0000000000000000000000000000000000000000000000400000000000000000000010000000800000000080000000080000000000000008000001000000000221000200000000000000200800000000000000000000000000000000000000000000000002000000000001008000080000000000000000000000001000000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000020100000000200000000000000200a000000000000000000006000000000000000100000000000000000000000000000000000020002001000000000000000000000000000000040000000000000000000000000000", + "status": "0x1", + "to": "0x2401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", + "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "transactionIndex": "0x4c", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xa54f01", + "effectiveGasPrice": "0x419ca4d4", + "from": "0x663b7c32c90f6c3fee8e8eecced18c007d69193a", + "gasUsed": "0x1ca43", + "logs": [ + { + "address": "0x10ee9f68ee4e4d311e854ae14c53f5b25a917f85", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000663b7c32c90f6c3fee8e8eecced18c007d69193a", + "0x000000000000000000000000332a24318d56f9cca677a242aff668314492bf80" + ], + "data": "0x00000000000000000000000000000000000000000000eeba4b9f0d5bdd105a3e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x129", + "removed": false + }, + { + "address": "0x10ee9f68ee4e4d311e854ae14c53f5b25a917f85", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000663b7c32c90f6c3fee8e8eecced18c007d69193a", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffff834724815ff43060e8e12", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12a", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000332a24318d56f9cca677a242aff668314492bf80", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000029fbecd9a1c2b9f4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12b", + "removed": false + }, + { + "address": "0x332a24318d56f9cca677a242aff668314492bf80", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x00000000000000000000000000000000000000000014e7932d666db6140a089200000000000000000000000000000000000000000000000385e1aa5adf62d095", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12c", + "removed": false + }, + { + "address": "0x332a24318d56f9cca677a242aff668314492bf80", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000eeba4b9f0d5bdd105a3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029fbecd9a1c2b9f4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12d", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000029fbecd9a1c2b9f4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12e", + "removed": false + } + ], + "logsBloom": "0x00200000004000000000000080000000000000000000200000010000000020010000000000000000000000000000000002004000080000100000000000200000000000000000000000000008000000200000000000400000000000000000000000000000000000000000000000000000000000000000040000000010100000000000000008000000004400000000000000000000000000080000004021000000020000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000001000000002000020000010200000000000000000000000000000000000000000000000000000000004", + "status": "0x1", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xa5a109", + "effectiveGasPrice": "0xb2d05e00", + "from": "0xb6839dc14ace0934a2c422369aa34b39b8c534b1", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x2fd2ea3b0545bf12dd03ef6274aede12274da9a6", + "transactionHash": "0x9ffbef1785c43203687d9ecebc2e1dc67bd4b69337d9576d9992039d328ba5c3", + "transactionIndex": "0x4e", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xa5f311", + "effectiveGasPrice": "0xae1aec40", + "from": "0x91604f590d66ace8975eed6bd16cf55647d1c499", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xfbc09172b41c69aa617629847e5d80e35981932d", + "transactionHash": "0x2cbad0ad9584888bb5ad6d856ea602fa2a3afe764252499f2de6afe2a69ffdae", + "transactionIndex": "0x4f", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xa64519", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xe47d43dcd14e9fcaf96c232dae3f84d81c1ac725", + "transactionHash": "0x88871027255d345a9f5887127c9acb33704c9a1db48142f8185eabceeab719e1", + "transactionIndex": "0x50", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xa69721", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0xa9ac43f5b5e38155a288d1a01d2cbc4478e14573", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xe337299f1d8f5a249147bf2e795d612b891ab90e", + "transactionHash": "0x5803753b8b9f1a604f6590849d3a9cd2a7c0f6fb6334d02a01ba5d66206c450a", + "transactionIndex": "0x51", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xad1f73", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0xbe19155113cbfa0b0555d6c316b18133b10b312d", + "gasUsed": "0x68852", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xd152f549545093347a162dce210e7293f1452150", + "transactionHash": "0x09ebf2e04dbaab1d0ad74c275b776c6398084d5558290d804063d0a6f477c61e", + "transactionIndex": "0x52", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xad717b", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionHash": "0xd20af84c937b6bfb1cbd0dbcde686c9bbdd6a3904257523bba99bd50e879f8a1", + "transactionIndex": "0x53", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xae12d8", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x7d7e377ee0168ddb578ef10661827cf1f71a6712", + "gasUsed": "0xa15d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007d7e377ee0168ddb578ef10661827cf1f71a6712", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43" + ], + "data": "0x000000000000000000000000000000000000000000000000000000002fb9b660", + "blockNumber": "0x161bd0f", + "transactionHash": "0xef162cf825f7bd785fd8229e52972e62855b7d44dcdd3038990fd95625a9dc56", + "transactionIndex": "0x54", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12f", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000010000000008000000000000000000000000000001000000000000000008000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000010000000000000000000000000000000000020000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0xef162cf825f7bd785fd8229e52972e62855b7d44dcdd3038990fd95625a9dc56", + "transactionIndex": "0x54", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xaeb429", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0xf8ae00151ae5c2b5d430ab4e9dab01a770c1fca9", + "gasUsed": "0xa151", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f8ae00151ae5c2b5d430ab4e9dab01a770c1fca9", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001dcd6500", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6f4c0ef6cf1c52b0261982d2c8bdfc3f9073dd8af06ffdd253d5b3e49d3152cf", + "transactionIndex": "0x55", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x130", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000010000000000000000000000000000000000000000000100000000010000000008000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000100000000000000000080000000000000000000000000000000000000020000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x6f4c0ef6cf1c52b0261982d2c8bdfc3f9073dd8af06ffdd253d5b3e49d3152cf", + "transactionIndex": "0x55", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xaf557a", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x01884eb29311cf4fbbf59465aff0fbd123f84713", + "gasUsed": "0xa151", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000001884eb29311cf4fbbf59465aff0fbd123f84713", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000c1f0700", + "blockNumber": "0x161bd0f", + "transactionHash": "0x31109524218b0f4e2f747b5163bd532e63521b998bff69fb07fa44cb68a09298", + "transactionIndex": "0x56", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x131", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000010040000000000000000000000000000000000000000000000000010000000008000000000000000000000000000000000000000000000008010000000000000000000000000000000000000000000000000000000000000000008800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x31109524218b0f4e2f747b5163bd532e63521b998bff69fb07fa44cb68a09298", + "transactionIndex": "0x56", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xaff6d7", + "effectiveGasPrice": "0x4fb1722d", + "from": "0xeb5fb7ce4528ee42bf2c7765ae70ca1deb2ef09c", + "gasUsed": "0xa15d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000eb5fb7ce4528ee42bf2c7765ae70ca1deb2ef09c", + "0x000000000000000000000000203ff9f3e2af2ceb4dd62914af2bdf8ebfc53264" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000b2eb3a55", + "blockNumber": "0x161bd0f", + "transactionHash": "0x74f20b477ad72c790aa0a5742daf4aeadb1fbbd0edcfd74490f4ea9ec32d9a29", + "transactionIndex": "0x57", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x132", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000010000000000000000000000000000000000008000000000000000000000002000000100000000000000000020000000080000000000000000000000000000000000000000000000002000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x74f20b477ad72c790aa0a5742daf4aeadb1fbbd0edcfd74490f4ea9ec32d9a29", + "transactionIndex": "0x57", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xb048df", + "effectiveGasPrice": "0x77359400", + "from": "0x0e71589abe9d1215535dc94c85482fe5954fdac9", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0b7342a7af6bf6cc0ff8909ba1d70770863c74b5", + "transactionHash": "0x9cc25ee19cb4404d4bbeb96d4f9e9ceefe81ba8245f0f7c01a266900f9b4e745", + "transactionIndex": "0x58", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xb2bbe6", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x21f2f76af55060df2a0fba013d4dd9d9f8ab2dea", + "gasUsed": "0x27307", + "logs": [ + { + "address": "0xbc2ecbe2195114b82f03680ed4270fa7008f3be0", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000021f2f76af55060df2a0fba013d4dd9d9f8ab2dea", + "0x00000000000000000000000071c7cbbf81ed4b571ace4ed3d1480453faf82ee1" + ], + "data": "0x00000000000000000000000000000000000000000000559cc592cfc03332c9f5", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x133", + "removed": false + }, + { + "address": "0xbc2ecbe2195114b82f03680ed4270fa7008f3be0", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x00000000000000000000000021f2f76af55060df2a0fba013d4dd9d9f8ab2dea", + "0x000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffa511c5b23133bf3a360a", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x134", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000071c7cbbf81ed4b571ace4ed3d1480453faf82ee1", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" + ], + "data": "0x00000000000000000000000000000000000000000000000006f4cc3821aa2000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x135", + "removed": false + }, + { + "address": "0x71c7cbbf81ed4b571ace4ed3d1480453faf82ee1", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000044fc279a9fb0403a48aa200000000000000000000000000000000000000000000000052f9e728c85ce95c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x136", + "removed": false + }, + { + "address": "0x71c7cbbf81ed4b571ace4ed3d1480453faf82ee1", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" + ], + "data": "0x00000000000000000000000000000000000000000000559cc592cfc03332c9f50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f4cc3821aa2000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x137", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af", + "0x000000000000000000000000000000fee13a103a10d593b9ae06b3e05f2e7e1c" + ], + "data": "0x000000000000000000000000000000000000000000000000000470de4df82000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x138", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" + ], + "data": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x139", + "removed": false + } + ], + "logsBloom": "0x00200000000000000000000080000000000000000000000000100000000080000000000000080000000000040000000002000000880000000000000000200000000000000000000000004808004000200000000000400800000000000000000000000000000000200000008000000000000000000000040200000010040000000000000000000000000000020020000000000000000000080000004000004000020000000000000000020000000000000000000000000000000000000000000000000002000000000000000000000000000400000000001000000002000000000010200000000000000000004000000020000000000000800000000000000000", + "status": "0x1", + "to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xb887d7", + "effectiveGasPrice": "0x2824a9d9", + "from": "0x930a46935042d35cc4393ff5f9b9bf9f2e3afd09", + "gasUsed": "0x5cbf1", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x5b14db1af7101ec1dafa828eaa774e13161efb53", + "transactionHash": "0xb903093efd1a45a2869f91f0169c3113ccc44fc9a70268af055392b6f4a6dece", + "transactionIndex": "0x5a", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xb8d9df", + "effectiveGasPrice": "0x71ebcf1c", + "from": "0x25b944a4dc81077e483bf59f618974e177627593", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x910ac37b45718838b35ba569dd926904274b682e", + "transactionHash": "0x18663217afb22c7ab2918545d837875df6d98706ac7227a8a08b4b0cc850c9d8", + "transactionIndex": "0x5b", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xb98df0", + "effectiveGasPrice": "0x47094b30", + "from": "0x896cdba2559cfdeec8a2356bb36c92fab614a4cd", + "gasUsed": "0xb411", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000896cdba2559cfdeec8a2356bb36c92fab614a4cd", + "0x0000000000000000000000009ba8071de40b13c3b4807c57c2b554fb3b9e0b2b" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000004c4b400", + "blockNumber": "0x161bd0f", + "transactionHash": "0x889b19404fe581f2b094bc9d159d0d1599870ad9cf39cb330e68a2777fb91d5e", + "transactionIndex": "0x5c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13a", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000002000000000000000000000040000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000008000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000400", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x889b19404fe581f2b094bc9d159d0d1599870ad9cf39cb330e68a2777fb91d5e", + "transactionIndex": "0x5c", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xba4201", + "effectiveGasPrice": "0x47094b30", + "from": "0x9b03a65530b8f9584beabe8c6d64d3d4bcadd3af", + "gasUsed": "0xb411", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009b03a65530b8f9584beabe8c6d64d3d4bcadd3af", + "0x00000000000000000000000054519c53bc21bc7739464850268f1b7d2b3317a0" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000048c10", + "blockNumber": "0x161bd0f", + "transactionHash": "0x0f6c5aec4835ffbfab3db13c5a4fdd44e96b7185df23626e8ea1cba5739c6649", + "transactionIndex": "0x5d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13b", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000100002000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000080000000000000000000000000000080000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x0f6c5aec4835ffbfab3db13c5a4fdd44e96b7185df23626e8ea1cba5739c6649", + "transactionIndex": "0x5d", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xbe80c7", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x7a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e", + "gasUsed": "0x43ec6", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", + "0x000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f4" + ], + "data": "0x0000000000000000000000000000000000000000000000000000e35fa931a000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13c", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f4", + "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13d", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640", + "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000fe8a6", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13e", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f4", + "0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640" + ], + "data": "0x0000000000000000000000000000000000000000000000000000e35fa931a000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13f", + "removed": false + }, + { + "address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45", + "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0175a0000000000000000000000000000000000000000000000000000e35fa931a0000000000000000000000000000000000000003c792226649b937aad676540d94000000000000000000000000000000000000000000000000051b0f41e60a05433000000000000000000000000000000000000000000000000000000000002f1bd", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x140", + "removed": false + }, + { + "address": "0x2d5d7d31f671f86c782533cc367f14109a082712", + "topics": [ + "0x8c092067e86e85e8cfbaf187202ef580cdfd7ec37fbec89191607de73ca80005", + "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666", + "0xaacfff03944e6d066f4cb7307f4999b5d174d6a13a2ad4b768adb2d08a0effd6" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000fe8a600000000000000000000000000000000000000000000000000001526874aecb70000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e0000000000000000000000000000000000000000000000000000000000000009696d6d757461626c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a3078636531364636393337353532306162303133373763653742383866354241384334384638443636360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x141", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666", + "0x0000000000000000000000004f4495243837681061c4743b74b3eedf548d56a5" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000fe8a6", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x142", + "removed": false + }, + { + "address": "0x4f4495243837681061c4743b74b3eedf548d56a5", + "topics": [ + "0x7e50569d26be643bda7757722291ec66b1be66d8283474ae3fab5a98f878a7a2", + "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666", + "0xaacfff03944e6d066f4cb7307f4999b5d174d6a13a2ad4b768adb2d08a0effd6" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000dc000000000000000000000000000000000000000000000000000000000000fe8a60000000000000000000000000000000000000000000000000000000000000009696d6d757461626c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a307863653136463639333735353230616230313337376365374238386635424138433438463844363636000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c5000000000000000000000000000000000000000000000000000000000000000400000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000005a0000000000000000000000000000000000000000000000000000000000000072000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000ac000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000104414bf389000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d20000000000000000000000000000000000000000000000000000000000000064000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f400000000000000000000000000000000000000000000000000000198c7cbc2de00000000000000000000000000000000000000000000000000000000000fe77800000000000000000000000000000000000000000000000000000000000fc60c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000104414bf3890000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d20000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d0000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f400000000000000000000000000000000000000000000000000000198c7cbc2e000000000000000000000000000000000000000000000000000000000000fe7d80000000000000000000000000000000000000000000000001a80ae654dafe92d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000010000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000242e1a7d4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000000c509b86228a6c23bbba872ac4345d5a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x143", + "removed": false + } + ], + "logsBloom": "0x20000000010000000001000800002000000000000000000000000000040000008000000000000000000008000000000002000001080020000000000000200000000000000000008808000008000000000000000000000000000000208000000000000000000000000080000100000000800000000000000000000010000800000000000000000000000820000000000000000001018000000000000000010000020000000000200000000000002000000000000000000000002001100008000000000002000000000200000200000000000000000000000004000100000000000010200000000000000010000200480000100000000000400000000000000000", + "status": "0x1", + "to": "0xce16f69375520ab01377ce7b88f5ba8c48f8d666", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xbed2cf", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionHash": "0x09bee4a68da1a0248abcb8b48ef7bd15bdf4c81e2183503d5d4de68b5f558a08", + "transactionIndex": "0x5f", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xc47fc1", + "effectiveGasPrice": "0x2816807a", + "from": "0xc7899ff6a3ac2ff59261bd960a8c880df06e1041", + "gasUsed": "0x5acf2", + "logs": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x000000000000000000000000511cc062c4257664427654b232dc636a424e4382" + ], + "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000000000000003ca941af000000000000000000000000000000000000000000000037483622c9d325650b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000003881e77fb200aff93fadf0e7d0ddd256e609485aef90e429d48208cc1919083cc7511cc062c4257664427654b232dc636a424e438268a5e7ab0000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x144", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758" + ], + "data": "0x0000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca30000000000000000000000000000000000000000000adb53acfa41aee12000000000000000000000000000000000000000000000000000008b50bca4aa290943d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000381b2cf1821e81b1a7ad30ec63cdc0107313fd569fa8eb3c68f223785113c9aeecec9b9e8e450dbde63e00f6469ed43b3be463b75868a5d5420000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x145", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000511cc062c4257664427654b232dc636a424e4382", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000000000003ca941af", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x146", + "removed": false + }, + { + "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000adb53acfa41aee12000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x147", + "removed": false + }, + { + "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758", + "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffff8cf68ca7a4acef3cb4b947e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x148", + "removed": false + }, + { + "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000a43fe16908251ee70ef74718545e4fe6c5ccec9f" + ], + "data": "0x000000000000000000000000000000000000000000ada5ce2d2204f16ed6fa30", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x149", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x0000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14a", + "removed": false + }, + { + "address": "0xe28b3b32b6c345a34ff64674606124dd5aceca30", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa8", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000008b50bca4aa29034cb", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14b", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a43fe16908251ee70ef74718545e4fe6c5ccec9f", + "0x0000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa8" + ], + "data": "0x0000000000000000000000000000000000000000000000000724b20e5c768e2f", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14c", + "removed": false + }, + { + "address": "0xa43fe16908251ee70ef74718545e4fe6c5ccec9f", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x0000000000000000000000000000000000000023920207f1f45bc6639b70e2cc000000000000000000000000000000000000000000000177b1611de185bbb111", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14d", + "removed": false + }, + { + "address": "0xa43fe16908251ee70ef74718545e4fe6c5ccec9f", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x000000000000000000000000f3fe03cd60d1f138ebc106ce9575475100ebfc9a", + "0x0000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa8" + ], + "data": "0x000000000000000000000000000000000000000000ada5ce2d2204f16ed6fa30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000724b20e5c768e2f", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14e", + "removed": false + }, + { + "address": "0x6c063a6e8cd45869b5eb75291e65a3de298f3aa8", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x000000000000000000000000f3fe03cd60d1f138ebc106ce9575475100ebfc9a", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x0000000000000000000000000000000000000000000000000724b20e5c768e2ffffffffffffffffffffffffffffffffffffffffffffffff74af435b55d6fcb350000000000000000000000000000000000000011adffe438c588bbe56c140b16000000000000000000000000000000000000000000000174ccea0b5ceceed3d2000000000000000000000000000000000000000000000000000000000000e06b", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14f", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x000000000000000000000000f3fe03cd60d1f138ebc106ce9575475100ebfc9a" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000d41aacaf00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x150", + "removed": false + }, + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000511cc062c4257664427654b232dc636a424e4382" + ], + "data": "0x000000000000000000000000000000000000000000000037483622c9d325650b", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x151", + "removed": false + }, + { + "address": "0xe28b3b32b6c345a34ff64674606124dd5aceca30", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758" + ], + "data": "0x000000000000000000000000000000000000000000000008b50bca4aa290943d", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x152", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", + "0x000000000000000000000000c7899ff6a3ac2ff59261bd960a8c880df06e1041" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x153", + "removed": false + } + ], + "logsBloom": "0x00201000000000000000000080001800004000400000000000000000000000000000002000400000000000000000010102000040080020000000000000200000010400080000000800000008000001200000000104000000000000000000000010000000000000000000c000020000800000004020000000100040100008000000000000000080000080000400000400000000004000000800000042001000000200046000000000000000800080000200000000000000000100000000000000010000120008000c0000000000000000000022000000001000000000000000001010200001000000020002000400000000004000000000000000000000900000", + "status": "0x1", + "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xc5211e", + "effectiveGasPrice": "0x479285d4", + "from": "0x2f091462316f650ca24dea5b8e90f9657af6915d", + "gasUsed": "0xa15d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000002f091462316f650ca24dea5b8e90f9657af6915d", + "0x000000000000000000000000559432e18b281731c054cd703d4b49872be4ed53" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000021ca5c30", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbfbbdc3e43e8e7a9629b2d3e2a7c5c998451d31542b92bab59a2de5aeefefea9", + "transactionIndex": "0x61", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x154", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000010000080000000000000000000000000200000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000001000000000000000000000000000000000002000000000000008000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0xbfbbdc3e43e8e7a9629b2d3e2a7c5c998451d31542b92bab59a2de5aeefefea9", + "transactionIndex": "0x61", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xc8db11", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x317d2da746d1360f4c113e7962a33394db2a1a4e", + "gasUsed": "0x3b9f3", + "logs": [ + { + "address": "0x1958853a8be062dc4f401750eb233f5850f0d0d2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x0000000000000000000000000000000000000000000000004563918244f40000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "transactionIndex": "0x62", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x155", + "removed": false + }, + { + "address": "0xbb2ea70c9e858123480642cf96acbcce1372dce1", + "topics": [ + "0x61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a" + ], + "data": "0x000000000000000000000000173272739bd7aa6e4e214714048a9fe69945305900000000000000000000000000000000000000000000000000000fa021204bb5", + "blockNumber": "0x161bd0f", + "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "transactionIndex": "0x62", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x156", + "removed": false + }, + { + "address": "0xbb2ea70c9e858123480642cf96acbcce1372dce1", + "topics": [ + "0x07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db24644" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000589dedbd617e0cbcb916a9223f4d1300c294236b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000001cc3b0e39e4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "transactionIndex": "0x62", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x157", + "removed": false + }, + { + "address": "0x1a44076050125825900e736c501f859c50fe728c", + "topics": [ + "0x1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000120000000000000000000000000bb2ea70c9e858123480642cf96acbcce1372dce10000000000000000000000000000000000000000000000000000000000000099010000000000000001000075950000000000000000000000001958853a8be062dc4f401750eb233f5850f0d0d200007596000000000000000000000000b4818bb69478730ef4e33cc068dd94278e2766cbab4f14bf5341bfe02be7a2603f8daf3e28b48cfb62732673ce438829f67016e7000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e00000000004c4b4000000000000000000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000030d4000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "transactionIndex": "0x62", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x158", + "removed": false + }, + { + "address": "0x1958853a8be062dc4f401750eb233f5850f0d0d2", + "topics": [ + "0x85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a", + "0xab4f14bf5341bfe02be7a2603f8daf3e28b48cfb62732673ce438829f67016e7", + "0x000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000075960000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000004563918244f40000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "transactionIndex": "0x62", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x159", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000200000000000000000000000000000000000001000000400000000000000000000000000000000000000000000000000500000010000000042000000000000000008000000000000200000000000000000000000000000000000020000008000000000000800000000000010000000000010000000000000000000000000001000080000000000000000000000000000004000000000000000008000000000100000000000000000000000400000000440000000000800000002000000000000000080000000000000000400000000000000000020000000040000000000000000000100002000000000018000000000000000000000", + "status": "0x1", + "to": "0x1958853a8be062dc4f401750eb233f5850f0d0d2", + "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "transactionIndex": "0x62", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xc92d19", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionHash": "0x854a247acfde5a5346f137d645aafce7266476f1ca57bbc56ff4d451686990d1", + "transactionIndex": "0x63", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xc9bd28", + "effectiveGasPrice": "0x47094b30", + "from": "0x3908f89b206af269cd10520a39683d3e9b709a0c", + "gasUsed": "0x900f", + "logs": [ + { + "address": "0x699ccf919c1dfdfa4c374292f42cadc9899bf753", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000003908f89b206af269cd10520a39683d3e9b709a0c", + "0x0000000000000000000000008fa4103428737fc17ba6566285492b19f4a42c33" + ], + "data": "0x00000000000000000000000000000000000000000000069420a776ba5cab0000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x34c4b2585880bbbfd2bd41d407ab91c487ab3ea1d740bb10051a2d94eae979b7", + "transactionIndex": "0x64", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15a", + "removed": false + } + ], + "logsBloom": "0x04000000000000000002000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000408000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000008", + "status": "0x1", + "to": "0x699ccf919c1dfdfa4c374292f42cadc9899bf753", + "transactionHash": "0x34c4b2585880bbbfd2bd41d407ab91c487ab3ea1d740bb10051a2d94eae979b7", + "transactionIndex": "0x64", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xca0f30", + "effectiveGasPrice": "0x5f6b1b44", + "from": "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x5c872bc1cdb41bc1467960e2c3b59a09cc93da05", + "transactionHash": "0x881dde515af25e26e76a9f4fd56f92172e576868db77f8d0edb19546d055a6ff", + "transactionIndex": "0x65", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xcac34d", + "effectiveGasPrice": "0x3b9aca00", + "from": "0xfb19ffd1ff9316b7f5bba076ef4b78e4bbedf4e1", + "gasUsed": "0xb41d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000fb19ffd1ff9316b7f5bba076ef4b78e4bbedf4e1", + "0x000000000000000000000000e76392fd5215a3e6bd794d7a31a3c8294c1eb18c" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000006359235", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7603ff263930ac4706dfc190bfa96bba194ec04561f686515626428442cfc3bc", + "transactionIndex": "0x66", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15b", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000004000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000010000000000000000000000000108000000000000000000000000080000000080000000000000000000000000000000000000002000000020000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x7603ff263930ac4706dfc190bfa96bba194ec04561f686515626428442cfc3bc", + "transactionIndex": "0x66", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xcbba2a", + "effectiveGasPrice": "0x9aa98162", + "from": "0x3814e8720156e8259aeef2803eb3fbb3cdddc549", + "gasUsed": "0xf6dd", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000003814e8720156e8259aeef2803eb3fbb3cdddc549", + "0x0000000000000000000000008ab12dde8535538cc1759f011ebb45856f0a8acb" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000aba9500", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7e99dbbc2acdc35b5ba4d4d460849fb57bb4fe43e62d47b34c18a922e5b9afac", + "transactionIndex": "0x67", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15c", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000400000000000000002008000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x7e99dbbc2acdc35b5ba4d4d460849fb57bb4fe43e62d47b34c18a922e5b9afac", + "transactionIndex": "0x67", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xcd68cf", + "effectiveGasPrice": "0x2c523e86", + "from": "0x2a008273cf9c4276e3f85311ebab58b7b74fa1bb", + "gasUsed": "0x1aea5", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000000740c1005bbd2a5", + "blockNumber": "0x161bd0f", + "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "transactionIndex": "0x68", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15d", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x0000000000000000000000006f9f435fa79e30e34f7679211904fcabc87ad924" + ], + "data": "0x00000000000000000000000000000000000000000000000000740c1005bbd2a5", + "blockNumber": "0x161bd0f", + "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "transactionIndex": "0x68", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15e", + "removed": false + }, + { + "address": "0xe0265346277ad201609308b506e901b520150a08", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000006f9f435fa79e30e34f7679211904fcabc87ad924", + "0x0000000000000000000000002a008273cf9c4276e3f85311ebab58b7b74fa1bb" + ], + "data": "0x000000000000000000000000000000000000000000011f871af89a7da64b75da", + "blockNumber": "0x161bd0f", + "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "transactionIndex": "0x68", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15f", + "removed": false + }, + { + "address": "0x6f9f435fa79e30e34f7679211904fcabc87ad924", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x00000000000000000000000000000000000000000000000015bef6901d4bd0c500000000000000000000000000000000000000000034ea453b357851b039241d", + "blockNumber": "0x161bd0f", + "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "transactionIndex": "0x68", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x160", + "removed": false + }, + { + "address": "0x6f9f435fa79e30e34f7679211904fcabc87ad924", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x0000000000000000000000002a008273cf9c4276e3f85311ebab58b7b74fa1bb" + ], + "data": "0x00000000000000000000000000000000000000000000000000740c1005bbd2a500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011f871af89a7da64b75da", + "blockNumber": "0x161bd0f", + "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "transactionIndex": "0x68", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x161", + "removed": false + } + ], + "logsBloom": "0x00200000000000000000000080000000000000000000000000011000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000008000000a00000000000000000000000008001000010000000000000000000000008000000000000000000000000000010000000000000000000000000004000000000000000000001000000080000004000000000000000000000000004000000000000000000000000000000000000000000000000000002000000000004004000080000000000000000001000000000100020200000200000000000000000000000000000000000000000400000000001000000", + "status": "0x1", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "transactionIndex": "0x68", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xcdbad7", + "effectiveGasPrice": "0x4c762185", + "from": "0xd04691fada4d78e62f74d51b77c3fab05dd5e656", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xc00313c93a1dc6befa0d4b50697ec1ef11b5967e", + "transactionHash": "0x9cc229f51b3398a71370ab7ee4d775f9fc617c40c9379b786e03070e52fcd357", + "transactionIndex": "0x69", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd07cbf", + "effectiveGasPrice": "0x2884b194", + "from": "0x051ad444b2c9a1678c7f4632885851c0c08285fd", + "gasUsed": "0x2c1e8", + "logs": [ + { + "address": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", + "topics": [ + "0x7724394874fdd8ad13292ec739b441f85c6559f10dc4141b8d4c0fa4cbf55bdb" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000019afd", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x162", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000051ad444b2c9a1678c7f4632885851c0c08285fd", + "0x0000000000000000000000002cffed5d56eb6a17662756ca0fdf350e732c9818" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000a601", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x163", + "removed": false + }, + { + "address": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", + "topics": [ + "0x0d3b1268ca3dbb6d3d8a0ea35f44f8f9d58cf578d732680b71b6904fb2733e0d" + ], + "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000a6010000000000000000000000002cffed5d56eb6a17662756ca0fdf350e732c9818", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x164", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", + "0x0000000000000000000000002e1dee213ba8d7af0934c49a23187babeaca8764" + ], + "data": "0x000000000000000000000000000000000000000000000000000439148a7bd691", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x165", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000051ad444b2c9a1678c7f4632885851c0c08285fd", + "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000004ba428", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x166", + "removed": false + }, + { + "address": "0xc7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000002e1dee213ba8d7af0934c49a23187babeaca8764", + "0x0000000000000000000000002e1dee213ba8d7af0934c49a23187babeaca8764" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffbc6eb7584296f00000000000000000000000000000000000000000000000000000000004ba428000000000000000000000000000000000000000000043b663cda5f92b0d8ecb80000000000000000000000000000000000000000000000000f7eaa8ee01d5748fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e3c", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x167", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000002e1dee213ba8d7af0934c49a23187babeaca8764", + "0x0000000000000000000000005703b683c7f928b721ca95da988d73a3299d4757" + ], + "data": "0x000000000000000000000000000000000000000000000000000439148a7bd691", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x168", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x0000000000000000000000005703b683c7f928b721ca95da988d73a3299d4757" + ], + "data": "0x000000000000000000000000000000000000000000000000000439148a7bd691", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x169", + "removed": false + }, + { + "address": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", + "topics": [ + "0x1bb43f2da90e35f7b0cf38521ca95a49e68eb42fac49924930a5bd73cdf7576c" + ], + "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000051ad444b2c9a1678c7f4632885851c0c08285fd00000000000000000000000000000000000000000000000000000000004ba428000000000000000000000000000000000000000000000000000439148a7bd691", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16a", + "removed": false + } + ], + "logsBloom": "0x000000000000000000010000000000001000000000000000000000000000000000000100000000000200000000000100020080800800200000800040000800008000000000000008200000088000000000000010004000000800040000000000000020000020000000000000000000000000000000000400000000100008000000002000000000000000000000002000000000000000000000000000001000000000000000000000000000800000001800000000000040000000000000000000000000022000080000000000000008000000000200000000000000020000000a0000200000000000000000000000000000000000000000000000000010000000", + "status": "0x1", + "to": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd4b07b", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x1e8b52ea011a678a888cf7b4e7aa667170f192ca", + "gasUsed": "0x433bc", + "logs": [ + { + "address": "0x129e5915326ed86f831b0e035acda34b209633d5", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001e8b52ea011a678a888cf7b4e7aa667170f192ca", + "0x000000000000000000000000129e5915326ed86f831b0e035acda34b209633d5" + ], + "data": "0x00000000000000000000000000000000000000000000000000000246139ca800", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16b", + "removed": false + }, + { + "address": "0x129e5915326ed86f831b0e035acda34b209633d5", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001e8b52ea011a678a888cf7b4e7aa667170f192ca", + "0x0000000000000000000000009c76dd6b5b200690fc9fb061a99b0a48e9a94325" + ], + "data": "0x00000000000000000000000000000000000000000000000000002b3374a07800", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16c", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009c76dd6b5b200690fc9fb061a99b0a48e9a94325", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" + ], + "data": "0x0000000000000000000000000000000000000000000000000182bb0b0a0f607a", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16d", + "removed": false + }, + { + "address": "0x9c76dd6b5b200690fc9fb061a99b0a48e9a94325", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000000000008502946d70b5db000000000000000000000000000000000000000000000004a8c264fb9fab40bd", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16e", + "removed": false + }, + { + "address": "0x9c76dd6b5b200690fc9fb061a99b0a48e9a94325", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" + ], + "data": "0x00000000000000000000000000000000000000000000000000002b3374a07800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182bb0b0a0f607a", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16f", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001b0da2b6", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x170", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b" + ], + "data": "0x0000000000000000000000000000000000000000000000000182bb0b0a0f607a", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x171", + "removed": false + }, + { + "address": "0xc7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" + ], + "data": "0x0000000000000000000000000000000000000000000000000182bb0b0a0f607affffffffffffffffffffffffffffffffffffffffffffffffffffffffe4f25d4a000000000000000000000000000000000000000000043b647de338a817656f730000000000000000000000000000000000000000000000000f7eaa8ee01d5748fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e3c", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x172", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x000000000000000000000000ad01c20d5886137e056775af56915de824c8fce5" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000307abd", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x173", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x0000000000000000000000001e8b52ea011a678a888cf7b4e7aa667170f192ca" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001add27f9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x174", + "removed": false + } + ], + "logsBloom": "0x8020000000000000000000008000000000000000000000000000000000000000000000000000000000000000000001000300000008006000008000000000002000000000000000080000000800000020000000100000000000004000000000000001000000200000000000002000000000000000000000000008001000080000000000000000000000000101000000000000000000000008000000400090400000001000000000000000008002000002080000000002000000000000000000000000000200000800000000000000080c080000000000001000000800000000020000200000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0000000000001ff3684f28c67538d4d072c22734", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd6e3d6", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x97fe8b7ba616945b5031e146229b9e727830f131", + "gasUsed": "0x2335b", + "logs": [ + { + "address": "0xbe5f6232d8ed5a4057f33a28915bc1a8ab01335b", + "topics": [ + "0x44ecfc706d63e347851cfd40acfa6cf2e3a41faa3e8b460210c03938e84a91ad" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", + "transactionIndex": "0x6c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x175", + "removed": false + }, + { + "address": "0xbe5f6232d8ed5a4057f33a28915bc1a8ab01335b", + "topics": [ + "0x6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "blockNumber": "0x161bd0f", + "transactionHash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", + "transactionIndex": "0x6c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x176", + "removed": false + }, + { + "address": "0xbe5f6232d8ed5a4057f33a28915bc1a8ab01335b", + "topics": [ + "0x4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb", + "0x000000000000000000000000864baa13e01d8f9e26549dc91b458cd15e34eb7c", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000097fe8b7ba616945b5031e146229b9e727830f131" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", + "transactionIndex": "0x6c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x177", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000080000000000000010000000000000000000004000000000000000000000000000000000000040000000000080000000020000000000000000000800000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000008000000000000000000000000000000040000000000000000004000000000000000000000000000400000000001000000000000020000000000000000000000000000000000000100000000000002000000002004000", + "status": "0x1", + "to": "0x864baa13e01d8f9e26549dc91b458cd15e34eb7c", + "transactionHash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", + "transactionIndex": "0x6c", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd735de", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionHash": "0xd36572df8b853ee2b6cab95a988ca7065b03d00fc8b2c1411301cadf49343092", + "transactionIndex": "0x6d", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd861b8", + "effectiveGasPrice": "0x2dde0f0d", + "from": "0xe93685f3bba03016f02bd1828badd6195988d950", + "gasUsed": "0x12bda", + "logs": [ + { + "address": "0x1a44076050125825900e736c501f859c50fe728c", + "topics": [ + "0x0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b4" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000007683000000000000000000000000cab283e4bb527aa9b157bae7180fef19e2aaa71a0000000000000000000000000000000000000000000000000000000000001110000000000000000000000000f2b2bbdc9975cf680324de62a30a31bc3ab8a4d536e7b0f7494af14e92055752ad7efac6d5d62065da6b772b7bb98d7127e4495d", + "blockNumber": "0x161bd0f", + "transactionHash": "0x5cbc170410348d6fdc873705eff0fe6e22f82115fa66a032cacaf14b00d3fd73", + "transactionIndex": "0x6e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x178", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000", + "status": "0x1", + "to": "0xc02ab410f0734efa3f14628780e6e695156024c2", + "transactionHash": "0x5cbc170410348d6fdc873705eff0fe6e22f82115fa66a032cacaf14b00d3fd73", + "transactionIndex": "0x6e", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd95895", + "effectiveGasPrice": "0x6b55cbd4", + "from": "0xe6767c337d50e51241257059d58508fd8fba91a1", + "gasUsed": "0xf6dd", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000e6767c337d50e51241257059d58508fd8fba91a1", + "0x0000000000000000000000003732c23fe8422fa1dc7759e2f34515de41bf268b" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001c9c3800", + "blockNumber": "0x161bd0f", + "transactionHash": "0x885b570f51838e21d3ee6f7635b9019859c9dc284b61a10e597428521779a514", + "transactionIndex": "0x6f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x179", + "removed": false + } + ], + "logsBloom": "0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800010000000000000000000000000000100000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000010800000000000000000000000000000000000000000000000000000000000000000100000400000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x885b570f51838e21d3ee6f7635b9019859c9dc284b61a10e597428521779a514", + "transactionIndex": "0x6f", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd9aa9d", + "effectiveGasPrice": "0x47094b30", + "from": "0x4cf7d1f09d73d05538b701c2ccd071298569b18b", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x4cf7d1f09d73d05538b701c2ccd071298569b18b", + "transactionHash": "0x6dc512f88c8907da511443523a0ce1f9d83b9590fb25470b40a5c7dabecb9cb0", + "transactionIndex": "0x70", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd9fca5", + "effectiveGasPrice": "0x47094b30", + "from": "0x1a6bf7734a87c9fb327162eed8cff7b1982e7e5e", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdc3a5dcd4d2299bdd8a9345169029088f4b0e0c2", + "transactionHash": "0x293dfc29e6d24ec039d5da89eca31f7874ab0f73485242b24472991bbc4a81ac", + "transactionIndex": "0x71", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xda4ead", + "effectiveGasPrice": "0x47094b30", + "from": "0xa2d9d10acece8512a99a3048c88fa274ba59e2cf", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xf051193691fc11600e1228ca27ede7663c4de189", + "transactionHash": "0x3199c465ca839a4561420e9ae7a22247c0faf5f3b8b22675e9d280871b018d5e", + "transactionIndex": "0x72", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xdaa0b5", + "effectiveGasPrice": "0x47094b30", + "from": "0xb0bfdffa1c53912c9d6a1f7250d2bac0f6fb0373", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x02ca45d242a1e2cd80f860a265e42a048c67b712", + "transactionHash": "0x6cb4300ccb17a849f57e47bf2e950fc2ff88e1536d19e413b23ff3c321c11e8c", + "transactionIndex": "0x73", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xdaf2bd", + "effectiveGasPrice": "0x47094b30", + "from": "0x9502954fba7ca26abdefc7ef4c9dd59b8b54f03f", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x9502954fba7ca26abdefc7ef4c9dd59b8b54f03f", + "transactionHash": "0x5dd9f8f7e9b3c71c4e4c00191f358b82e5438d0ee6bbbe841d945089e2df8cba", + "transactionIndex": "0x74", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xde6533", + "effectiveGasPrice": "0x26ca3054", + "from": "0x173449e23b2768042a7acbbf00a2b32d262b3a4b", + "gasUsed": "0x37276", + "logs": [ + { + "address": "0x0000000071727de22e5e9d8baf0edac6f37da032", + "topics": [ + "0xbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17a", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7", + "0x0000000000000000000000007d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000180d14", + "blockNumber": "0x161bd0f", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17b", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7", + "0x0000000000000000000000000e8495d95270c688473e88f02bb3101a3f7cec73" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000f60c480", + "blockNumber": "0x161bd0f", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17c", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7", + "0x000000000000000000000000480a825bed6cdba9da81cc01faacd12166761dec" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000e98ea", + "blockNumber": "0x161bd0f", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17d", + "removed": false + }, + { + "address": "0x7d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac", + "topics": [ + "0xcb8558ee10b3b50e33dd316be9756fc9f947c4637d5d9c4f66f02ddc3ba4e38f" + ], + "data": "0x8bf3446f7338755e02cef70ec4a972cd5780c19ab71c20ea59bef3fb7a1c7633000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000e98ea", + "blockNumber": "0x161bd0f", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17e", + "removed": false + }, + { + "address": "0x0000000071727de22e5e9d8baf0edac6f37da032", + "topics": [ + "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f", + "0x8bf3446f7338755e02cef70ec4a972cd5780c19ab71c20ea59bef3fb7a1c7633", + "0x000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7", + "0x0000000000000000000000007d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000967696a805dc000000000000000000000000000000000000000000000000000000000003d1fb", + "blockNumber": "0x161bd0f", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17f", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000010000000000000000000000000008000000000004000000010000018000200000000000000000020000200000000000000000000000000008000000020040000000000000000000000000000000000000000800000000010000000000000000000000000000000010000000000040000000010000000000000000000000000000000000000000800000100000020000020020001000400480000000000200000000000000000002000000000000010002000000400011000000000000000000000000004000000000000400000010000000000000000000000000000000000000000800000000000000001080", + "status": "0x1", + "to": "0x0000000071727de22e5e9d8baf0edac6f37da032", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "type": "0x4" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xdf5867", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0xfcc46ea12aec1f62c3d58803fe94aa8f768f2636", + "gasUsed": "0xf334", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000fcc46ea12aec1f62c3d58803fe94aa8f768f2636", + "0x000000000000000000000000552549d39c22c1e55e4f91318d41f5422d204c4e" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000017d7840", + "blockNumber": "0x161bd0f", + "transactionHash": "0x971833c61c63e80e90a69edadce6cf052ed708c0b89a52714e3de65174e501d2", + "transactionIndex": "0x76", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x180", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000008000008000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010800000080000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000001000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0x971833c61c63e80e90a69edadce6cf052ed708c0b89a52714e3de65174e501d2", + "transactionIndex": "0x76", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xe03c90", + "effectiveGasPrice": "0x6458e75e", + "from": "0x52f1e1001c28f6807530470b67a83a348040e31b", + "gasUsed": "0xe429", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000052f1e1001c28f6807530470b67a83a348040e31b", + "0x00000000000000000000000043e19182b2f68d8a83d56a7304665ce0ea3fb3e3" + ], + "data": "0x000000000000000000000000000000000000000000000000000000002e4686e2", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ea42c0b70a8feb646683ef29551a4f1e35aa5c52ff4e92d41885fddc062eee3", + "transactionIndex": "0x77", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x181", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000400000040000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000002000010000000000000000002000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x9ea42c0b70a8feb646683ef29551a4f1e35aa5c52ff4e92d41885fddc062eee3", + "transactionIndex": "0x77", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xe08e98", + "effectiveGasPrice": "0x419ca4d4", + "from": "0x242ad3fac0e6820f50ce520117fe8774f21b5f9f", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x094d77550b654f1fceb33f405ae0415c4cbcb0f1", + "transactionHash": "0xa7e4c653d8b4852c0fc96106be40980b66a3bb81a9730f4c5bdd8010851faabd", + "transactionIndex": "0x78", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xe317d0", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x9f256a5703a493cac86a09fa84473517ace6ca81", + "gasUsed": "0x28938", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x000000000000000000000000000000000000000000000000006983fe1dd44000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "transactionIndex": "0x79", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x182", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x000000000000000000000000b6cec3a5828923385bcdedf12044f1c98bd729ac" + ], + "data": "0x000000000000000000000000000000000000000000000000006983fe1dd44000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "transactionIndex": "0x79", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x183", + "removed": false + }, + { + "address": "0xfa417cd491632620a582851b07abf7e3447bba71", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000b6cec3a5828923385bcdedf12044f1c98bd729ac", + "0x0000000000000000000000009f256a5703a493cac86a09fa84473517ace6ca81" + ], + "data": "0x0000000000000000000000000000000000000000000000000006badea95a749b", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "transactionIndex": "0x79", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x184", + "removed": false + }, + { + "address": "0xb6cec3a5828923385bcdedf12044f1c98bd729ac", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x0000000000000000000000000000000000000000000000002acfedc0715b20fe00000000000000000000000000000000000000000000000002b6654bfd1fad09", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "transactionIndex": "0x79", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x185", + "removed": false + }, + { + "address": "0xb6cec3a5828923385bcdedf12044f1c98bd729ac", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x0000000000000000000000009f256a5703a493cac86a09fa84473517ace6ca81" + ], + "data": "0x000000000000000000000000000000000000000000000000006983fe1dd44000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006badea95a749b", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "transactionIndex": "0x79", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x186", + "removed": false + } + ], + "logsBloom": "0x00200000000000000000000080000000000002000000000000010000000000000000000000000000000010000000000442000000080000000000000000000000000000000000000000000008000000200000000000000000000000008000000000000000000000000000000000000000000828000000000800000010000000000000000000000000004000000000000000000001000000080000004000200010000000000000000000000000000000000000000040000000000000000000000000000002000000000000000000000000000000000000001000000000000020000000200000000000002000000000000000000000000000400000000000000000", + "status": "0x1", + "to": "0x055c48651015cf5b21599a4ded8c402fdc718058", + "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "transactionIndex": "0x79", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xe36e2f", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gasUsed": "0x565f", + "logs": [ + { + "address": "0x388c818ca8b9251b393131c08a736a67ccb19297", + "topics": [ + "0x27f12abfe35860a9a927b465bb3d4a9c23c8428174b83f278fe45ed7b4da2662" + ], + "data": "0x000000000000000000000000000000000000000000000000012bf92aae0c2e70", + "blockNumber": "0x161bd0f", + "transactionHash": "0x2c522d01183e9ed70caaf75c940ba9908d573cfc9996b3e7adc90313798279c8", + "transactionIndex": "0x7a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x187", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000100004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x388c818ca8b9251b393131c08a736a67ccb19297", + "transactionHash": "0x2c522d01183e9ed70caaf75c940ba9908d573cfc9996b3e7adc90313798279c8", + "transactionIndex": "0x7a", + "type": "0x2" + } +] From 6f1f2ea25f4ce889b13e4fd592913da564e2aef6 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 10:13:04 +0000 Subject: [PATCH 107/273] revive/exec: Use block number for ETH block storage Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/exec.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index 4cd9c6d93dca0..1b5dee1d6dabf 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -1597,7 +1597,7 @@ where if block_number < self.block_number.saturating_sub(256u32.into()) { return None; } - Some(System::::block_hash(&block_number).into()) + crate::Pallet::::eth_block_hash_from_number(block_number.into()) } } From fddc5893ca61e71e85db5246ba66b5e25ed93a7b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 10:19:28 +0000 Subject: [PATCH 108/273] revive/rpc-types: Remove extra derives from types no longer in storage Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/api/rpc_types_gen.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) 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 f18aec363616c..4d92727a74098 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -316,9 +316,7 @@ pub struct GenericTransaction { } /// Receipt information -#[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, -)] +#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] pub struct ReceiptInfo { /// blob gas price /// The actual value per gas deducted from the sender's account for blob gas. Only specified @@ -511,9 +509,7 @@ impl HashesOrTransactionInfos { } /// log -#[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, -)] +#[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] pub struct Log { /// address pub address: Address, From 98c07d8688fd7893b8a06d9413ad08c856bc4c21 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 10:22:09 +0000 Subject: [PATCH 109/273] revive: Unwrap or default for gas limits Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 24f3cb4f14366..e3591925fcd4d 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -198,8 +198,7 @@ impl Block { // Note: Cap the gas limit to u64::MAX. // In practice, it should be impossible to fill a u64::MAX gas limit // of an either Ethereum or Substrate block. - let gas_limit = - if self.gas_limit > u64::MAX.into() { u64::MAX } else { self.gas_limit.as_u64() }; + let gas_limit = self.gas_limit.try_into().unwrap_or(u64::MAX); let alloy_header = alloy_consensus::Header { state_root: self.transactions_root.0.into(), From c1a06593e3b80130bb5355c7d8460f8c96c42be7 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 10:25:41 +0000 Subject: [PATCH 110/273] revive/block-hash/tests: Use imports instead of full paths Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 18 - .../frame/revive/src/tests/block_hash.rs | 71 +- .../revive/test-assets/ethereum_block.json | 3387 ------- .../revive/test-assets/ethereum_receipts.json | 7779 ----------------- 4 files changed, 35 insertions(+), 11220 deletions(-) delete mode 100644 substrate/frame/revive/test-assets/ethereum_block.json delete mode 100644 substrate/frame/revive/test-assets/ethereum_receipts.json diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index e3591925fcd4d..01872afba9dd3 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -219,21 +219,3 @@ impl Block { alloy_header.hash_slow().0.into() } } - -#[cfg(test)] -mod test { - use super::*; - use crate::evm::{Block, ReceiptInfo, TransactionSigned}; - use std::fs::File; - - #[test] - fn ensure_identical_hashes() { - // curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x161bd0f", true],"id":1}' -H "Content-Type: application/json" https://ethereum-rpc.publicnode.com | jq .result - const BLOCK_PATH: &str = "./test-assets/ethereum_block.json"; - // curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockReceipts","params":["0x161bd0f"],"id":1}' -H "Content-Type: application/json" https://ethereum-rpc.publicnode.com | jq .result - const BLOCK_RECEIPTS: &str = "./test-assets/ethereum_receipts.json"; - - // Deserialize block from block path file. - let _block = serde_json::from_reader(File::open(BLOCK_PATH).unwrap()); - } -} diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index d06ea9bad9649..2d962576241cf 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -20,8 +20,10 @@ use crate::{ test_utils::{builder::Contract, deposit_limit, ALICE}, tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeEvent, RuntimeOrigin, Test}, - BalanceWithDust, Code, Config, Pallet, Weight, H256, + BalanceWithDust, Code, Config, EthBlock, EthereumBlock, Event, InflightEvents, + InflightTransactions, Pallet, ReceiptGasInfo, ReceiptInfoData, Weight, H256, }; + use frame_support::traits::{fungible::Mutate, Hooks}; use pallet_revive_fixtures::compile_module; @@ -29,32 +31,29 @@ use pallet_revive_fixtures::compile_module; fn on_initialize_clears_storage() { ExtBuilder::default().existential_deposit(50).build().execute_with(|| { let receipt_data = - vec![crate::ReceiptGasInfo { effective_gas_price: 1.into(), gas_used: 1.into() }]; - crate::ReceiptInfoData::::put(receipt_data.clone()); - assert_eq!(crate::ReceiptInfoData::::get(), receipt_data); - - let event = crate::Event::ContractEmitted { - contract: Default::default(), - data: vec![1], - topics: vec![], - }; - crate::InflightEvents::::put(vec![event.clone()]); - assert_eq!(crate::InflightEvents::::get(), vec![event.clone()]); + vec![ReceiptGasInfo { effective_gas_price: 1.into(), gas_used: 1.into() }]; + ReceiptInfoData::::put(receipt_data.clone()); + assert_eq!(ReceiptInfoData::::get(), receipt_data); + + let event = + Event::ContractEmitted { contract: Default::default(), data: vec![1], topics: vec![] }; + InflightEvents::::put(vec![event.clone()]); + assert_eq!(InflightEvents::::get(), vec![event.clone()]); let transactions = vec![(vec![1, 2, 3], 1, vec![event], true, Weight::zero())]; - crate::InflightTransactions::::put(transactions.clone()); - assert_eq!(crate::InflightTransactions::::get(), transactions); + InflightTransactions::::put(transactions.clone()); + assert_eq!(InflightTransactions::::get(), transactions); - let block = crate::EthBlock { number: 1.into(), ..Default::default() }; - crate::EthereumBlock::::put(block.clone()); - assert_eq!(crate::EthereumBlock::::get(), block); + let block = EthBlock { number: 1.into(), ..Default::default() }; + EthereumBlock::::put(block.clone()); + assert_eq!(EthereumBlock::::get(), block); Contracts::on_initialize(0); - assert_eq!(crate::ReceiptInfoData::::get(), vec![]); - assert_eq!(crate::InflightEvents::::get(), vec![]); - assert_eq!(crate::InflightTransactions::::get(), vec![]); - assert_eq!(crate::EthereumBlock::::get(), Default::default()); + assert_eq!(ReceiptInfoData::::get(), vec![]); + assert_eq!(InflightEvents::::get(), vec![]); + assert_eq!(InflightTransactions::::get(), vec![]); + assert_eq!(EthereumBlock::::get(), Default::default()); }); } @@ -80,7 +79,7 @@ fn transactions_are_captured() { // Instantiate with code is not captured. assert_ok!(builder::instantiate_with_code(gas_binary).value(1).build()); - let transactions = crate::InflightTransactions::::get(); + let transactions = InflightTransactions::::get(); assert_eq!(transactions.len(), 2); assert_eq!(transactions[0].0, vec![1]); // payload set to 1 for eth_call assert_eq!(transactions[0].1, 0); // tx index @@ -94,7 +93,7 @@ fn transactions_are_captured() { Contracts::on_finalize(0); - assert_eq!(crate::InflightTransactions::::get(), vec![]); + assert_eq!(InflightTransactions::::get(), vec![]); }); } @@ -120,28 +119,28 @@ fn events_are_captured() { Pallet::::convert_native_to_evm(BalanceWithDust::new_unchecked::(100, 10)); // Capture the EthInstantiate. - assert_eq!(crate::InflightEvents::::get(), vec![]); + assert_eq!(InflightEvents::::get(), vec![]); assert_ok!(builder::eth_instantiate_with_code(binary).value(balance).build()); // Events are cleared out by storing the transaction. - assert_eq!(crate::InflightEvents::::get(), vec![]); + assert_eq!(InflightEvents::::get(), vec![]); - let transactions = crate::InflightTransactions::::get(); + let transactions = InflightTransactions::::get(); assert_eq!(transactions.len(), 1); assert_eq!(transactions[0].0, vec![2]); // payload set to 1 for eth_instantiate_with_code assert_eq!(transactions[0].1, 0); // tx index - match &transactions[0].2[0] { - crate::Event::ContractEmitted { contract, data, topics } => { - assert_ne!(contract, &addr); - assert_eq!(data, &vec![1, 2, 3, 4]); - assert_eq!(topics, &vec![H256::repeat_byte(42)]); - }, - event => panic!("Event {event:?} unexpected"), - }; + assert_eq!( + transactions[0].2[0], + crate::Event::ContractEmitted { + contract: addr, + data: vec![1, 2, 3, 4], + topics: vec![H256::repeat_byte(42)] + } + ); assert_eq!(transactions[0].3, true); // successful Contracts::on_finalize(0); - assert_eq!(crate::InflightTransactions::::get(), vec![]); - assert_eq!(crate::InflightEvents::::get(), vec![]); + assert_eq!(InflightTransactions::::get(), vec![]); + assert_eq!(InflightEvents::::get(), vec![]); }); } diff --git a/substrate/frame/revive/test-assets/ethereum_block.json b/substrate/frame/revive/test-assets/ethereum_block.json deleted file mode 100644 index a6cc2e1b65d94..0000000000000 --- a/substrate/frame/revive/test-assets/ethereum_block.json +++ /dev/null @@ -1,3387 +0,0 @@ -{ - "baseFeePerGas": "0x23cf3fd4", - "blobGasUsed": "0x0", - "difficulty": "0x0", - "excessBlobGas": "0x80000", - "extraData": "0x546974616e2028746974616e6275696c6465722e78797a29", - "gasLimit": "0x2aea4ea", - "gasUsed": "0xe36e2f", - "hash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logsBloom": "0xb56c514421c05ba024436428e2487b83134983e9c650686421bd10588512e0a9a55d51e8e84c868446517ed5e90609dd43aad1edcc1462b8e8f15763b3ff6e62a506d3d910d0aae829786fac994a6de34860263be47eb8300e91dd2cc3110a22ba0d60008e6a0362c5a3ffd5aa18acc8c22b6fe02c54273b12a841bc958c9ae12378bc0e5881c2d840ff677f8038243216e5c105e58819bc0cbb8c56abb7e490cf919ceb85702e5d54dece9332a00c9e6ade9cb47d42440201ecd7704088236b39037c9ff189286e3e5d6657aa389c2d482e337af5cfc45b0d25ad0e300c2b6bf599bc2007008830226612a4e7e7cae4e57c740205a809dc280825165b98559c", - "miner": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", - "mixHash": "0x11b02e97eaa48bc83cbb6f9478f32eaf7e8b67fead4edeef945822612f1854f6", - "nonce": "0x0000000000000000", - "number": "0x161bd0f", - "parentBeaconBlockRoot": "0xd8266eb7bb40e4e5e3beb9caed7ccaa448ce55203a03705c87860deedcf7236d", - "parentHash": "0x7c9625cc198af5cf677a15cdc38da3cf64d57b9729de5bd1c96b3c556a84aa7d", - "receiptsRoot": "0x758614638725ede86a2f4c8339eb79b84ae346915319dc286643c9324e34f28a", - "requestsHash": "0xd9267a5ab4782c4e0bdc5fcd2fefb53c91f92f91b6059c8f13343a0691ba77d1", - "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "size": "0x14068", - "stateRoot": "0x7ed9726e3172886af5301968c2ddb7c38f8adf99c99ec10fdfaab66c610854bb", - "timestamp": "0x68a5ce5b", - "transactions": [ - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x693ca5c6852a7d212dabc98b28e15257465c11f3", - "gas": "0x70bdb", - "gasPrice": "0x23cf3fd4", - "hash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", - "input": "0x09c5eabe000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a90000cca0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000020000000000000000000000035c9618f600000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000002374fed200000000000000000001528fd550bc9a0000000000000000351e55bea6d51900dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000005c0c965e0000000000000000000000000000000000004c00000001000000000000000000000000000000000000002e24cd1d61a63f43658ed73b6ddeba00010002000100000000000000000000000000000000000000000000000039d622818daae62900006602000000000000000000002ff9e9686fa6ac00000000000000000000000000007f88ca000000000000000004caaa5ba8029c920300010000000000000000052319c661ddb06600000000000000000001528fd550bc9a0000000000000000005049606b67676100011c0c00000000000000002ff9e9686fa6ac000000000000000000000000035c16902c0000000000000000000000000000000200000000000000000000000000000002000073d53553ee552c1f2a9722e6407d43e41e19593f1cbc3d63300bfc6e48709f5b5ed98f228c70104e8c5d570b5608b47dca95ce6e371636965b6fdcab3613b6b65f061a44b7132011bb97a768bd238eacb62d7109920b000000000000000005246c56372e6d000000000000000000000000005c0c965e0000000000000000000000002374fed20000000000000000000000002374fed200011cc19621f6edbb9c02b95055b9f52eba0e2cb954c259f42aeca488551ea82b72f2504bbd310eb7145435e258751ab6854ab08b1630b89d6621dc1398c5d0c43b480000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x47ca802f", - "maxPriorityFeePerGas": "0x0", - "nonce": "0x40c6", - "r": "0xb3e71bd95d73e965495b17647f5faaf058e13af7dd21f2af24eac16f7e9d06a1", - "s": "0x58775b0c15075fb7f007b88e88605ae5daec1ffbac2771076e081c8c2b005c20", - "to": "0x0000000aa232009084bd71a5797d089aa4edfad4", - "transactionIndex": "0x0", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xc445a471debbc8ef54dbfd90af406b6a682313e3", - "gas": "0x62e08", - "gasPrice": "0x23cf3fd4", - "hash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", - "input": "0x078fc43000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000004d0563b78d0000000000000000000000000000000000000000000000044cca9748c816200e0000000000000000000000000000000000000000000000000000000010cb11ad0000000000000000000000000000000000000000000000000ede120b0b0b800000000000000000000000000000000000000000000000000005f3f3c10cd7400000000000000000000000000000000000000000000000000000000000000baa240000000000000000000000000000000000003c7ce03ee690113f579b1bcb93c1000000000000000000000000000000000000000000c6467309887ae60c8000004342b77fe3417bcb09d0a4383301b0dc733c755b00020000000000000000000200000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000063cca0fafb5280000000000000000000000000000000000000000000000000000000068a5ce5d00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000c445a471debbc8ef54dbfd90af406b6a682313e3000000000000000000000000000000000000000000000000000000000000000000000000000000e214d604044df5ba5f000000000000000457cc9deaca1658b10000000000006f9e4169d6f2c9919000000000000000001cc8f062718bfb1dcc0000000000000000000000000000000000000000000e8f80a0fffc209f777a9600000000000000004563918244f400000000000000000000006a94d74f43000000000000000000000000000068a5ce5b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004134c551c8d6c4f84a61a779134ed200c4d154e9904ad7b5a78c4d917f5b2b34a506596488971df877891a98c370f1a4a1c3aa42f05088d48253ac7be9e9840d7a1c00000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x23cf3fd4", - "maxPriorityFeePerGas": "0x0", - "nonce": "0x288c", - "r": "0x7900ae1a7b6c21f147f6ad27d8b2822a30803d6380f55d0eb33ed36e1dc35d10", - "s": "0x4401c414cb2291df96a75a433f26bf05abed976487b43a704d85572438877741", - "to": "0xc90d7c41974397cb8b260238ec9ecb6bbd965259", - "transactionIndex": "0x1", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x8361a4786bd2081acbf4a0802aab618d6aa1c674", - "gas": "0x5b8d8", - "gasPrice": "0x23cf3fd4", - "hash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", - "input": "0x078fc43000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000f115584f7000000000000000000000000000000000000000000000000d763281af8acbffc00000000000000000000000000000000000000000000000000000000034e01a70000000000000000000000000000000000000000000000000ede120b0b0b800000000000000000000000000000000000000000000000000005f3f3c10cd7400000000000000000000000000000000000000000000000000000000000000a834d000000000000000000000000000000000000000000043b5c9e50ece56a7cc95e000000000000000000000000000000000000000000c65ba00c505c3103000000315a892a4d02c5c1169d5f0e4f7cb4130cc0d13800020000000000000000000900000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000063cca0fafb52a0000000000000000000000000000000000000000000000000000000068a5ce5d00000000000000000000000000000000000000000000000000000000000000e00000000000000000000000008361a4786bd2081acbf4a0802aab618d6aa1c674000000000000000000000000000000000000000000000000000000000000000000000000000000e20a8903d9fa15ca380000000000000000d98a8c58ae5c8eb4000000000000aaac7ccf4f95012fb000000000000000001518a6cb136ff2ec07000000000000000000000000000000000000000000131ba2ee23a8d1d090000000000000000000004563918244f400000000000000000000006a94d74f43000000000000000000000000000068a5ce5b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041ca4402002b4df0c349b539ad62d7b8eb2c396e7a2a2a4fce9a253a9485c781b156ac977f9ba4a18f69e5a54261bf94f16ecb245b164a102fd2078985497b51d91c00000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x23cf3fd4", - "maxPriorityFeePerGas": "0x0", - "nonce": "0xda3", - "r": "0xac496ed50541793c57be842cb4ec3ef4b934bc082c296da66f81925129a89509", - "s": "0x53b96d8ad942ab7743890b25d3e7af790a28d6bd116cfaf2bd2135c659bae2e4", - "to": "0xc90d7c41974397cb8b260238ec9ecb6bbd965259", - "transactionIndex": "0x2", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [ - { - "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", - "storageKeys": [ - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", - "0xa214b15162c78c6464e5ab06ab626d767ffac37a0858a2cbd1ab2e078f4bfd88" - ] - }, - { - "address": "0x2db07a3a657b6e16999b67d48500486a1cb0d649", - "storageKeys": [ - "0xf297cbbe3a3ff7264e184be5e03b61da7ac48af65d6ce5972c71bf59570c7406" - ] - }, - { - "address": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", - "storageKeys": [] - }, - { - "address": "0x7858e59e0c01ea06df3af3d20ac7b0003275d4bf", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8" - ] - }, - { - "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", - "storageKeys": [ - "0x3756065a1737877f5b2bc32c8c3f70b69057844ed80018b7b266bffc54ef98fd", - "0x50b15c2f32347ba182685596e2bd684e73b17d41f907c1d56bd125291ba3009f", - "0x618059526d7d1bb5608c8e3a0740d1f656fa8a764ecca600a8e0e3e0c313ce66", - "0x8de37585c313a58117507b9d5d325d1ed41e8e98deeee1ae5852b930e365e5b0", - "0x982ddcb64cfb6b923c9d3f3239160c877d57f1425dd7a125c7ebd1de727ae229", - "0xc877f7c350d0ae49415387c376c008036a6d8a86d61bcbab69c1f22659674f4c" - ] - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x406a6663cff73aaf362dd9ff433725f76c50718c3325dccceca1eb4b4f496798" - ] - }, - { - "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", - "storageKeys": [] - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", - "0x5838486f9709d509ca183bfd62059dc0b93c11a7aeb478ba6d797befb42741ce", - "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", - "0x93c40640380b12c4457039f9068961907821d6675c1c864b3d7911da89086f7f", - "0xcc236083e86ee3df0f3160002f381f1404bd44c4dec1322196f34d52548202f5", - "0xfeb6616e93dc1fa98d03f6845393dc522313be256222f7c27d490e56de385c92" - ] - }, - { - "address": "0xa14afc841a2742cbd52587b705f00f322309580e", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x000000000000000000000000000000000000000000000000000000000000003e", - "0x000000000000000000000000000000000000000000000000000000000000003f", - "0xf38081dfdf02e3ffc50aad06e4e2844f32f17b04fcae6b632a7977242c8e0838" - ] - }, - { - "address": "0xb60b34d830f26c5a11c47ddb1e0a1f31d90a78b1", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x0000000000000000000000000000000000000000000000000000000000000008", - "0x0000000000000000000000000000000000000000000000000000000000000009", - "0x9b637a02e6f8cc8aa1e3935c0b27bde663b11428c7707039634076a3fb8a0c48" - ] - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "storageKeys": [ - "0x9d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dc", - "0xafe9768e778c9438b5b48d29377de15c330f2905e9106aecbd6ac88e3f82cea3" - ] - }, - { - "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", - "storageKeys": [] - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000003", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x000000000000000000000000000000000000000000000000000000000000000a", - "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", - "0x47f0d8c24352282bd22f6c16110950f1718ca728a004736610a9835aafa6c77c", - "0x8b5463664f7b4b91a8418860695dc9b177a054a3467899bfa0769d27d031a6f2", - "0xbcdfe241f132b38477ee35d4e497c725e4d20778d490eecefb1940b28dbce0ca" - ] - } - ], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x6b063481f8216b5624ec496dd72376bef00faffd", - "gas": "0xc3620", - "gasPrice": "0x2d2a4df1", - "hash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000084ca8bc7997272c7cfb4d0cd3d55cd942b3c9419000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000084ca8bc7997272c7cfb4d0cd3d55cd942b3c9419000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000097d5014cb66f000000000000000000000000000000000000000000c570539d7c13b90257976a000000000000000000000000000000000000000000000000000000001ae32af80000000000000000000000000000000000000000000000230ec810de9c63d000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c360000000000000000000000000000000000000000000000230ec810de9c63d000000000000000000000000000000000000000000000000000000000001ac76e250000000000000000000000000000000000000000000000000000000068a5cea0506ca878e4bf5525292d5c63dfb3f96c2d1e319ae14bc546dc75b9d61da6b4f7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000230ec810de9c63d000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000416b237d30af3fa86383cdb796eb81403acfbcd2b5b16c085c6aec00549e91d60a08d87f822a06b411f335be0e4a16bde6e630a2697e7cf553e4314d09257287031c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d64900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000036447a4a98900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000203165e06d852288d50b640d10e4f50000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000004104000000000000000000000000b60b34d830f26c5a11c47ddb1e0a1f31d90a78b10000000000000000000000000000000000000000000000134f6e6f97fa338eb80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000c601d4ad4d401000000000000000000000000000000000000000000000000000000000000000000000004104000000000000000000000000a14afc841a2742cbd52587b705f00f322309580e00000000000000000000000000000000000000000000000fa7469b560e4519070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000c601d4ad4d4010000000000000000000000000000000000000000000000000000000000000000000000041050000000000000000000000007858e59e0c01ea06df3af3d20ac7b0003275d4bf000000000000000000000000000000000000000000000000000000000edb15d4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f0", - "maxFeePerGas": "0x97f474e8", - "maxPriorityFeePerGas": "0x95b0e1d", - "nonce": "0x1585", - "r": "0xfb39be2cbd91adebb6d19764a63e590d26621a37e54664f44dc874d3e9a98e63", - "s": "0x3df8c4cd15e261ea7d2f52d5e48e0c9a45348024d994a2bb46fb83bde1f16d2c", - "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", - "transactionIndex": "0x3", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", - "gas": "0x6270", - "gasPrice": "0x38cc2a7c", - "hash": "0xa655290cbb744571dd7455dacd45109cb3c7adce13392aa7ed3f2f64f5b644e4", - "input": "0x3e2cde32361a914a98179ab5c890c1e000b5d03fbf2f7db2d288ddfa477cf663", - "maxFeePerGas": "0x3bfc6fc7", - "maxPriorityFeePerGas": "0x14fceaa8", - "nonce": "0x324506", - "r": "0x50d24e5c7715bfa5a0ef2d74dcd9468bef8c23efe870dea425553fa945f05c6", - "s": "0x4a95f1d9194a3bf3b6a04e5bc438ca16d49daab68567fd6ecb989f568fac56e1", - "to": "0xfbd6acca70a8632061593f1a07056affb7965ac3", - "transactionIndex": "0x4", - "type": "0x2", - "v": "0x1", - "value": "0x1960988987cdc7", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x6d478cb16317680a517ff89253f82032efdc31ba", - "gas": "0xafa0", - "gasPrice": "0x6b55cbd4", - "hash": "0xfeee6a0b16850d3300339f32be2765355e301689b0f430b9f7db1695806ace46", - "input": "0x095ea7b3000000000000000000000000111111125421ca6dc452d289314280a0f8842a650000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x792d1e40", - "maxPriorityFeePerGas": "0x47868c00", - "nonce": "0xdbb", - "r": "0x9f714c12cf41e8bdb0e1756715e0d8b62d07e354dc87fcb11377556c56ec738", - "s": "0x279a0b129838df35a3da6adbe60a83729229f608f8654c5f8726e4bea4424f78", - "to": "0x3b50805453023a91a8bf641e279401a0b23fa6f9", - "transactionIndex": "0x5", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", - "gas": "0x79173", - "gasPrice": "0x708ad4a2", - "hash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "input": "0x33739082000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000180000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c3000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c30000000000000000000000000000000000000000000000000000000000000b60000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000002b838c5e3c210000000000000000000000000000000000000000000000000000000068a5d0aa0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000000000000000001ff3684f28c67538d4d072c22734000000000000000000000000000000000000000000000000000000001185c2f9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ff3684f28c67538d4d072c2273400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000005c42213bc0b000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f9000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004e41fff991f000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222000000000000000000000000163f8c2467924be0ae7b5347228cabf26031875300000000000000000000000000000000000000000000001135683983035c6d9000000000000000000000000000000000000000000000000000000000000000a09ec76e970eebf8e87ffa04210af43c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e4c1fb425e000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5cf7d00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028438c9c147000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000002710000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001a4dac748d4000000000000000000000000163f8c2467924be0ae7b5347228cabf260318753000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000114bfd68823e680000000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef0000000068a5ce8e000000000000000000000000000000000000000068a5ce520000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001c308445be1fba35529ad765babeb7d04e657d10b1e885929e9088fb8de4e8a73137377dc9e14ddb6b6209e77701b660572de494c7eab10db93d7249805bba87eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e22200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001243b2253c8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000163f8c2467924be0ae7b5347228cabf2603187530000000000000000000000000000000000000000000000000000000000000001000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041cf307ce44d3877629b9e0188f9a2597ccac6729afd8aef39e6e2c2656685cec26a3a780a735e3399a023174e86b20c9c9f34621bf284c9ad465e94ff0ec532141c00000000000000000000000000000000000000000000000000000000000000f38077731f06dcf1ed1ab9112da6f1043441c3e18931b8b201a5332f021cbdcff38077731f06dcf1ed1ab9112da6f1043441c3e18931b8b201a5332f021cbdcf", - "maxFeePerGas": "0x73bb19ed", - "maxPriorityFeePerGas": "0x4cbb94ce", - "nonce": "0x324507", - "r": "0x685e8b339917d4d4b64a120035f225b0178ee8c98c3ba2aee1931ce5145bff06", - "s": "0x1998af1516cf3e23f3e8bb867bfc5b2fca88a21526d0863a0980726fc424a2e5", - "to": "0xbbbfd134e9b44bfb5123898ba36b01de7ab93d98", - "transactionIndex": "0x6", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [ - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x650f69dead2eeee68214ac0bc29f23bc7e2f82c89293ef4b23dc1591bc737c67" - ] - }, - { - "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", - "storageKeys": [ - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", - "0x88d075c869ce192f20da9bfc0d2db81b73b4aa4af2ce17e52384cb021d06bd06" - ] - }, - { - "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", - "storageKeys": [] - }, - { - "address": "0x800c32eaa2a6c93cf4cb51794450ed77fbfbb172", - "storageKeys": [] - }, - { - "address": "0x366aa56191e89d219ac36b33406fce85da1e7554", - "storageKeys": [] - }, - { - "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", - "storageKeys": [] - }, - { - "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", - "storageKeys": [ - "0xa3b7a258ccc3c19490a94edab51a442dd2eeac4318bddede8cd899595d08f28a" - ] - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "storageKeys": [ - "0xb84fbcd09e20fa700ddef111765a21785d2290b3c7c8719a27e4b60b59126522", - "0xda591c30fe54b3edd3bcb5d0d916c5c472e3ad81645d0312a5e73f3708e8708b", - "0x0bc90c98aed598fd15d9075ded522981aeb2ee369c8117e46bd494dc17c29999", - "0xdbde769b5281dad4214cceeb1871ab281fb8fd2a4443141db1078642029ae248", - "0x9d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dc" - ] - }, - { - "address": "0x60bf78233f48ec42ee3f101b9a05ec7878728006", - "storageKeys": [] - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x44624a8a323b583a84b5812478c554a5e284223b469e9f7039175023c0e54c3e", - "0x3ad18d7747f05925bebbb1df8860daa9cd402d902420f95ce10c49792803c3d6", - "0xcc236083e86ee3df0f3160002f381f1404bd44c4dec1322196f34d52548202f5", - "0x88afba62e6432e4d0a3e39a2be587d39c0b93368d66cedb0531bb5292040a552", - "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", - "0x5cfccd15aa8eff180914a82b4caf3b39b3c62421a17404ea7a7d0c80fe766666", - "0x659f5b53123b3e7a886575e106645d4d7c5af120440f3f409542b3987fa1ea07", - "0x77d5014beb071d1c3dabbdbdba61f9a5cc3ffedca11c102ef7e2fae619d04e12", - "0x6e91f60197c982353033e86512311820683e018e0f39963c5d00c2c490bc45d3", - "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3" - ] - }, - { - "address": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", - "storageKeys": [] - }, - { - "address": "0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45", - "storageKeys": [] - }, - { - "address": "0x1346d1ee3fb1b65fecfcb65c149ca0702c286f53", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0xc0d1c00078410fd0164580b0bad93d8a579580d06cf45fc2696a823498097b8a", - "0x0000000000000000000000000000000000000000000000000000000000000008", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ] - }, - { - "address": "0x899d774e0f8e14810d628db63e65dfacea682343", - "storageKeys": [ - "0xd64773870f40323194fda2d1773a23183ba723843a4aa8fb90d5eaf49c342f55", - "0xef7cf59cb40a7ae1b5e03b08af7ed07c83f41406ca13eaeed923c1f2fc8bbb2a", - "0x70f537a6c3c5e23e6deecb5baafd173071015ed695aa4c5ab2072a13f49234e4", - "0x8eb102192bd88c1782b7bb42421db4a5cda302102196a664e54ad03c03e19e1e" - ] - } - ], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x6bf97afe2d2c790999cded2a8523009eb8a0823f", - "gas": "0x15d818", - "gasPrice": "0x65045d54", - "hash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000899d774e0f8e14810d628db63e65dfacea682343000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000899d774e0f8e14810d628db63e65dfacea6823430000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000a374bf76d4c42c8c8c00000000000000000000000000000000005cd4d66627e732daca892b48abb16400000000000000000000000000000000000000000000000006b06fe010314e3e0681000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000006ac7510475c22e2e3060000000000000000000000000000000000000000000000000000000068a5d4fb98b80e71c53f4b325f7753088b0d8ee55933f28c326277958a47f93bc54a095400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bebc200000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000414a13957a7c51fc3c1579a62c6160cf8fdf6cbdb186688f8a71c5085ce84e5cfe6cdd79d18f7e34d99a555aaf04a2c7787f9ad58f7bab041c8a94500b5f051a201b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060bf78233f48ec42ee3f101b9a05ec78787280060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001e4760f2a0b000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000001388000000000000000000000000000000000000000000000000000000000000000e4d505accf000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000720d7562000000000000000000000000000000000000000000000000000000000000001c219463f0255ddbed6266f8998f2c3d706c12eaf9de73c3b9f082b0a583fce90546a423f6fe118493aa5f9f57adfd73963e67bb89e6b20faf95821275b6b1607e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000340000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002644dcebcba0000000000000000000000000000000000000000000000000000000068a5ce680000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff860000000000000000000000000000000000000000000000002d2e61b16af396e5000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000bebc20000000000000000000000000000000000000000000000000000aa03ac85e927d00000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000000000000000006d9aa07971bc4e6731b47ed80776c5740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000419969dd20c05e5c0ca3d82fed5f912ae3678db7452adc4bffeb8ae098920f9e2a7804cfa5e1e42f85209c494f49914c39258c7668a992f59a01b2fe2d73d445771b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000899d774e0f8e14810d628db63e65dfacea68234300000000000000000000000000000000000000000000000000000000000027100000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000aa03ac85e927d00000000000000000000000000000000000000000000006b3d96e8c277e88e06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", - "maxFeePerGas": "0x76630193", - "maxPriorityFeePerGas": "0x41351d80", - "nonce": "0x18733", - "r": "0x6f71e41e8630b35dea48e57d1afd291651a5f15c338133c4976267ac00dd9e56", - "s": "0x45689f732b0a8e6be5bdf5a45db561f33cae7e976f8e8ebdbcbe2e51dc40869c", - "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "transactionIndex": "0x7", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [ - { - "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", - "storageKeys": [ - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", - "0xa214b15162c78c6464e5ab06ab626d767ffac37a0858a2cbd1ab2e078f4bfd88" - ] - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x3ac39fa695c7fcc2f08ed03f39a14f6200dcd6d70476484cefdbd20e318a12f6" - ] - }, - { - "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", - "storageKeys": [] - }, - { - "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", - "storageKeys": [ - "0xa3b7a258ccc3c19490a94edab51a442dd2eeac4318bddede8cd899595d08f28a" - ] - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "storageKeys": [ - "0x0bc90c98aed598fd15d9075ded522981aeb2ee369c8117e46bd494dc17c29999", - "0x9d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dc", - "0xdbde769b5281dad4214cceeb1871ab281fb8fd2a4443141db1078642029ae248" - ] - }, - { - "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", - "storageKeys": [] - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000003", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x000000000000000000000000000000000000000000000000000000000000000a", - "0x2f4eccef1a2ac26ee311f5ed3175b060e147894716e6aef238fb247a8c0442ca", - "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", - "0x4282b1b811d28a715ea8710781664398187c8e7782bfa23d89b52b7df4a2d8f3", - "0x735ee752cf3aae249c79a037f284ac2a506e6033138d147b09b48992c871ad59", - "0xbcdfe241f132b38477ee35d4e497c725e4d20778d490eecefb1940b28dbce0ca", - "0xd7a51ade5c6492019478dc383052660ff7a3e7e43c6807d36c3e98ca0308f43a", - "0xded6b53414d9315f8b52550ee338588467e17d823032131926cff044d8e24022" - ] - }, - { - "address": "0xf4308b0263723b121056938c2172868e408079d0", - "storageKeys": [ - "0x0c80462f4c67c47b6702d5d78f89be290cda72230796295a3f0d81e5ea5efacf", - "0x2f4eccef1a2ac26ee311f5ed3175b060e147894716e6aef238fb247a8c0442ca", - "0x618059526d7d1bb5608c8e3a0740d1f656fa8a764ecca600a8e0e3e0c313ce66", - "0xbcdfe241f132b38477ee35d4e497c725e4d20778d490eecefb1940b28dbce0ca" - ] - } - ], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xc8ad355c8291cbd52e738ed1df1f5ccbbbbf00ee", - "gas": "0x76186", - "gasPrice": "0x2d50b891", - "hash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", - "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f4308b0263723b121056938c2172868e408079d0000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f4308b0263723b121056938c2172868e408079d00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000c5d6c3b2125dc8000000000000000000000000000000000000000000000000000000000000f810081d2232000000000000000000000000000000000000000000000001a0d9ab1774735d130000000000000000000000000000000000000000000000000000000002160ec00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000ee007a00b876742c33491454447a40bc63d3d4680000000000000000000000000000000000000000000000000000000002160ec000000000000000000000000000000000000000000000000199b40c6d1c841a520000000000000000000000000000000000000000000000000000000068a5d50f222f46d540f557f4c5cf7864f3cdddcc5ecfdce6ccc7d7fa9401501c00c6eb28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002160ec000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041d9644c6be7266136904797f084e8352986344bd869f4a9731be80d21ebbee746515f68447acfcdeb724248b251dd1b22b0fc5b6a7a551eb9bb54d9de4e2925fc1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002644dcebcba0000000000000000000000000000000000000000000000000000000068a5ce680000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff860000000000000000000000000000000000000000000000002d2e61b16af396e4000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000020b32aa000000000000000000000000000000000000000000000000001d27419875a7660000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000000000000000003eeca8e9088f6bdbdb18cf66347231200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000020b32aa00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004151d76016fd78972466adf9211a6ed7f7920ebefdd05878b2aa1147c8516d7cdf0725c40332cdf2196f02bb1af34b17b21e703acd2d67eab2204dfcab55e8023b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", - "maxFeePerGas": "0x9e685dbf", - "maxPriorityFeePerGas": "0x98178bd", - "nonce": "0x15d2", - "r": "0xaecfe2fed3c701d85e5ab7a4429e75d30863c4e9f3bf2447e8776ae94dfbb299", - "s": "0x4736b0a001b7ab77ff092200b51f95a847da9e4ba87e19091f90b36445f1d7ca", - "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", - "transactionIndex": "0x8", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [ - { - "address": "0x1820a4b7618bde71dce8cdc73aab6c95905fad24", - "storageKeys": [ - "0x26ffaf3a152d9fc724f491aa88ce2ea63ad2e54309955f7fd1c8cc431e36cd34", - "0x65e2bcb9b53b49e6a207a8cad45c445797ac132820851a5c2ca766f4bf70616b", - "0x6651bfb587c6c83e7c5b50954a25fb69217eaf629b55ce7bce79d7e0393b515c", - "0xa208009c466c46de16aa4c0f6ebe699a7e5312ea2340511e7a3493d58c777750", - "0xb2d447267ac2372fd4f82b45f0b2a765998bdb05d5e4e3ea4ea1196b5b7d4055" - ] - }, - { - "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", - "storageKeys": [ - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", - "0xa214b15162c78c6464e5ab06ab626d767ffac37a0858a2cbd1ab2e078f4bfd88" - ] - }, - { - "address": "0x2db07a3a657b6e16999b67d48500486a1cb0d649", - "storageKeys": [ - "0xb9a049cec27bd0e04f03ab406fe4a5b51e014bbb45dde170cb834dfe14d24e95" - ] - }, - { - "address": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", - "storageKeys": [] - }, - { - "address": "0x6b175474e89094c44da98b954eedeac495271d0f", - "storageKeys": [ - "0x07c7175170b0f7dbe5045e3aadd9d8d1a1bcd86d67b2f66b428714307f9deece", - "0x0e3d19729328f478ffc901c115f05d0195e5b68e282b84da93c6bafd953fdc80", - "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", - "0x5a57ab83a89afb99a56f8abebbc3d088fc84de8c39b430a65f65eb47fde6dad0", - "0x94cb0693589c4317987c2bdd65ee12478eaccf583a76f667a44bfc1f5ee9d33e" - ] - }, - { - "address": "0x87986ae1e99f99da1f955d16930dc8914ffbed56", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x000000000000000000000000000000000000000000000000000000000000000b", - "0x000000000000000000000000000000000000000000000000000000000000000c", - "0x3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a31" - ] - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x495bc0bde1e41fc4a3b21299a3f1a2ed0b63f941d98cd981904995296886f56f" - ] - }, - { - "address": "0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000006", - "0x0000000000000000000000000000000000000000000000000000000000000007", - "0x0000000000000000000000000000000000000000000000000000000000000008", - "0x0000000000000000000000000000000000000000000000000000000000000009", - "0x000000000000000000000000000000000000000000000000000000000000000a", - "0x000000000000000000000000000000000000000000000000000000000000000c" - ] - }, - { - "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", - "storageKeys": [] - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", - "0x2209089ff8bd3b7bac6ff21ec014fbd229af53b4ecc03dcfbd102128759cb6c8", - "0x33d96ce24063b8b087fa8c040c066e1b9739925a812f2a0c2202c9ef763d01be", - "0x5838486f9709d509ca183bfd62059dc0b93c11a7aeb478ba6d797befb42741ce", - "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", - "0x9254cb65314db3d2d7ca17f753f1d9c7f1b6fa05111d18d10ed5b9519d1b247c", - "0xcc236083e86ee3df0f3160002f381f1404bd44c4dec1322196f34d52548202f5" - ] - }, - { - "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", - "storageKeys": [] - }, - { - "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", - "storageKeys": [ - "0x0e1b053921947bb61bee9f4bdc68bd6cab8cd39676a3cd25cbd3106515a600eb", - "0x463e11d6a09091abd5aa6409bcbdabd9d238935494dfe44240ecc5ea0b354ca3", - "0x5c53079ea7792e51eb61b662d072997b7fc830cb7c1fbf2e6dfc67a145adb39e", - "0x64ac251e964da0f5b6d07d47428fa7c41487ff293e1deb77eb407c15028dab0c", - "0x68d6103d434297b53d93172ff9b8e9fa609a873ee797a41b54b397befc982be5", - "0x7dd76b6185fc1dea9f4a90a6ff981e0a3e4f93b86e4ca82614c0e6daf68aa56c", - "0x7dd76b6185fc1dea9f4a90a6ff981e0a3e4f93b86e4ca82614c0e6daf68aa56d", - "0x80ff297fa2adcff46f46c76227076eddf7fcd5eb46559fed52522694ef9d5ca5", - "0x89ef6b4e32d5d82988d37d3a1fa7a16af850a0cec75c22bb7f54de6246e3415c", - "0x9ee8a636f0e458db742f50e2e2ad1530450af2611cd1652a371252abdedc2946", - "0xa5ab90ef73957dfec11eeabb333dccdc845a4f9bb24c2ecaa73241e72a97b1df", - "0xa5ab90ef73957dfec11eeabb333dccdc845a4f9bb24c2ecaa73241e72a97b1e0", - "0xae2dca3d72df02635ac422fe39c20b891efdf3630b23ee68b0b2cfeb0a922b20", - "0xb1622186449cb54cc8232698c69ae603adb41bb57566ca3651938555eb357a5a", - "0xb1622186449cb54cc8232698c69ae603adb41bb57566ca3651938555eb357a5b", - "0xbdd568ee226292b5392bccf8c984d00f7926aea871906d874009a37a5acb559f", - "0xd81a2e6b8d823272625dace0cd0304f8adc01aacbad3c8184dcbe8a3d88f83d0", - "0xd81a2e6b8d823272625dace0cd0304f8adc01aacbad3c8184dcbe8a3d88f83d1" - ] - }, - { - "address": "0xf6e72db5454dd049d0788e411b06cfaf16853042", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000004" - ] - } - ], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x943810707e090f1bdc486c4c990d43da3b162e52", - "gas": "0xf456c", - "gasPrice": "0x2d50b891", - "hash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f5581dfefd8fb0e4aec526be659cfab1f8c781da000000000000000000000000f5581dfefd8fb0e4aec526be659cfab1f8c781da000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000c601d4ad4d40100000000000000000000000000000000000000000000000000000000000000f08207d3003000000000000000000000000000000000000000000000000000000003c18ecd8000000000000000000000000000000000000000000000318d845d95db27be800000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36000000000000000000000000000000000000000000000318d845d95db27be800000000000000000000000000000000000000000000000000000000003be8c78f0000000000000000000000000000000000000000000000000000000068a5ce8d506ca878e4bf5525292d5c63dfb3f96c2d1e319ae14bc546dc75b9d61da6b4f700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000318d845d95db27be8000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000004108bd95c77ca0e0300f77d6084f777c937cdf6c73440bcb8bef9555851961773079721b9c1449707d60e2310bbbbb4cd73197ce25c4acc60262db616181d421b51c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003400000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d64900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000026447a4a989000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000002e563eed429041ddf3b86e77d08986000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000d9b4f53e13ad00000000000000000000000000000000000000000000000000000000000000410500000000000000000000000087986ae1e99f99da1f955d16930dc8914ffbed560000000000000000000000000000000000000000000002c2b9c5fcc62d54533900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000d9b4f53e13ad00000000000000000000000000000000000000000000000000000000000000410100000000000000000000000092c2fc5f306405eab0ff0958f6d85d7f8892cf4d000000000000000000000000000000000000000000000054e9ab31a1339be5930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f6e72db5454dd049d0788e411b06cfaf168530420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000448d7ef9bb0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41000000000000000000000000000000000000000000000000000000003c196d470000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", - "maxFeePerGas": "0x9e685dbf", - "maxPriorityFeePerGas": "0x98178bd", - "nonce": "0x1539", - "r": "0x5efc73acc9209d3c66c2aeded4e4a875bd8856b1674c7ea9ac46a647cc76e183", - "s": "0x63ceb18132c678a51071f869b1637d33b53006e620bf6ec991fda5a458abd94d", - "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", - "transactionIndex": "0x9", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", - "gas": "0x12b04", - "gasPrice": "0x708ad4a2", - "hash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", - "input": "0x30be55670000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ae1a530128950b1735674a975e1622872e556b59000000000000000000000000ae1a530128950b1735674a975e1622872e556b5900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e22200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000304e4108473ed6d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000c53e91fb904a5426b90d2fce78b7a29058931688395e3f1203b7bd652866cce6", - "maxFeePerGas": "0x73bb19ed", - "maxPriorityFeePerGas": "0x4cbb94ce", - "nonce": "0x324508", - "r": "0xfcf73e22d0c3470cf5b073cdf239c1875127cefd0adcbfdc07df485e4f8ccf10", - "s": "0x118b537e5d953e7ae1082310a0a2cf80e1af3a0047d8aebf7144ed5fbbbb8148", - "to": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", - "transactionIndex": "0xa", - "type": "0x2", - "v": "0x1", - "value": "0x304e4108473ed6d", - "yParity": "0x1" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x80c700683ec017a190b132a4ce042beeb7c6b821", - "gas": "0x493e0", - "gasPrice": "0x2c523e86", - "hash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", - "input": "0x7ff36ab50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000080c700683ec017a190b132a4ce042beeb7c6b8210000000000000000000000000000000000000000000000000000000068a5dc640000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e0265346277ad201609308b506e901b520150a08", - "nonce": "0x1", - "r": "0xb99ac5e4528b39173dc5779c74f0e3a720f20531b73dad03f2596229cb3ab489", - "s": "0x17073a6061963ac8b4cef1ac5f57a703453c29f8b860f0045ffc1928bce0307", - "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", - "transactionIndex": "0xb", - "type": "0x0", - "v": "0x26", - "value": "0x621b921b80f2af" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x7830c87c02e56aff27fa8ab1241711331fa86f43", - "gas": "0x1e8480", - "gasPrice": "0x5f6a09d4", - "hash": "0x65dfef793509b00a864042275789801fd0c89fe3fe1d67648c4bba8148fd511c", - "input": "0x1a1da07500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000015694000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000003840170eae1303ecb3b5809671b962b0b2d4f3aa000000000000000000000000000000000000000000000000003ad6b94d191000000000000000000000000000da80d2757f2eceab6c2c5a31e51c6db8b9af83720000000000000000000000000000000000000000000000000070413fe0b078000000000000000000000000001f7824205b9427666d6a4a35c223c2afdddb5f350000000000000000000000000000000000000000000000000671ab6cb65960000000000000000000000000009fcd0e5fb4e70845090ca8b61c9bcea79472f02e000000000000000000000000000000000000000000000000002f92040cf04c000000000000000000000000009a9a9aafed1590214f18ffd2c45b982ad05c96a4000000000000000000000000000000000000000000000000005ff4017bff8400000000000000000000000000d2ac77b70369bd47ba2e07004b42c12b5dae6d9200000000000000000000000000000000000000000000000000034e4695eac40000000000000000000000000075fb24e0faf3ae4057b6eb0ab567a3786d6b7dea0000000000000000000000000000000000000000000000000030994e318e0000000000000000000000000000ca74f404e0c7bfa35b13b511097df966d5a655970000000000000000000000000000000000000000000000022b1b746db77ef40000000000000000000000000093d3151e799c7c01a2bc24d9566bd64850f0d9ac000000000000000000000000000000000000000000000000005715aba96e5c0000000000000000000000000083a37983d7717dc946d6eb736e8be6cf3bb94b6700000000000000000000000000000000000000000000000001853a17d6a15000000000000000000000000000fbac3516677cc50dea378bc6452377e3bdfae7dc0000000000000000000000000000000000000000000000000075ec64cfa92400", - "maxFeePerGas": "0xb2d05e00", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0x284ae6", - "r": "0xbef5a78bce7f069bb85ece9f17a21ca4ff06156d81c1ff51e0f99f67d2f27c72", - "s": "0x416881a96e033a3b039e5cc791de1585c4338b94fa42b9563f0ebdfa91ab2894", - "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "transactionIndex": "0xc", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x078430ebd8db8288fd056d137e0e11cf67fb8fc1", - "gas": "0x326fa", - "gasPrice": "0x9b04d3d4", - "hash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", - "input": "0xc60db8a1000000000000000000000000000000000000000000000a2a792108221ac98c54000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000001c50000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000a2a792108221ac98c540000000000000000000000000000000000000000000000000000000068a67703000000000000000000000000000000000000000000000000000000000000001bf13c7019ddb500c11b8de954cfcce21aa46a6c287db7dd71d4c0c90cdeaba06743a4bdf8f0b9cb9a3dd580f4d57ad4de0a7b12c9125d1f97dd0bb19bca506ec1", - "maxFeePerGas": "0xa7c2cc55", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x5d", - "r": "0x746fa8b401730a75ff8832f0fe455f528f90cd5360bcb63f4364c5e397defcec", - "s": "0x695cd4e982301b54a79d0d66338485b28b51e27b220073931e1d370ec42a8c7a", - "to": "0x71a41517fe65890fe835d67fce17a9747112696c", - "transactionIndex": "0xd", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x7830c87c02e56aff27fa8ab1241711331fa86f43", - "gas": "0x1e8480", - "gasPrice": "0x5f6a09d4", - "hash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "input": "0xca350aa60000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000000013000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000004fa31bbbb0729c76ca3fb7c5d466c1b30764749b0000000000000000000000000000000000000000000000000000000015476340000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000008e1e9185870f026be6b59219f673fe84481a329a000000000000000000000000000000000000000000000000000000002d27ecbb000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000060c531e7594102a7a9be19197c969639bebf5fae000000000000000000000000000000000000000000000000000000001cf8f755000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f8b2374fc5335176857aa83f8a37be8afdf8bac7000000000000000000000000000000000000000000000000000000002113fe2a000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000088a857dfc3ed7b4e326adbbe79224de634982235000000000000000000000000000000000000000000000000000000000e4e1c00000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f668293ea8362fe9dccd4499c23fcb00259196130000000000000000000000000000000000000000000000000000000002a9f1f7000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000026b23da6eb7d863bef139feb51ba027ec2f0769a0000000000000000000000000000000000000000000000000000000002faf080000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000de396526ede4218a67327cec9658e7571a0eac5c00000000000000000000000000000000000000000000000000000000017f2b8d000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f5261acdfbe5b46b6c79271ea86d933603236899000000000000000000000000000000000000000000000000000000014437f0cd000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000006de7232e53fd11e218842e5506577837134a1171000000000000000000000000000000000000000000000000000000000311d3e0000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000006de7232e53fd11e218842e5506577837134a117100000000000000000000000000000000000000000000000000000000077e07a0000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000d5b12d6651b94d6340699077258feb3314d6b1ae0000000000000000000000000000000000000000000000000000000004661940000000000000000000000000be9895146f7af43049ca1c1ae358b0541ea4970400000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f000000000000000000000000000000000000000000000002ec03212a197a0c0000000000000000000000000084ca8bc7997272c7cfb4d0cd3d55cd942b3c941900000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c360000000000000000000000000000000000000000000000230ec810de9c63d0000000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef0000000000000000000000007c06dfc7576ef157e111d80cd8ce98f8ab60feaf0000000000000000000000000000000000000000000000008b95e9381c0e24000000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f98400000000000000000000000006fd4ba7973a0d39a91734bbc35bc2bcaa99e3b00000000000000000000000000000000000000000000000334af9bea1f4c02c000000000000000000000000004a220e6096b25eadb88358cb44068a32482546750000000000000000000000009f3b333f36069244901885d5e520ffee722a4585000000000000000000000000000000000000000000000000106df6c44af68000000000000000000000000000faba6f8e4a5e8ab82f62fe7c39859fa577269be3000000000000000000000000c3bf801d58a4c0418d96eda0164fb743ad065aca0000000000000000000000000000000000000000000000016d4f1287753300000000000000000000000000006c3ea9036406852006290770bedfcaba0e23a0e80000000000000000000000002c8b4fba3b3706827c96f3e4ccbc0d1442dcd07400000000000000000000000000000000000000000000000000000016e43d727e", - "maxFeePerGas": "0xb2d05e00", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0x284ae7", - "r": "0xccb5a4f9cbbd52675934666dd5b55240a52fc8453a4ed02c0a667e222d7530fa", - "s": "0x5f1d42b6a68cd48c84bffb8d35663feeb910b2202d9ae077f34e0e47d7eed806", - "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "transactionIndex": "0xe", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xa03400e098f4421b34a3a44a1b4e571419517687", - "gas": "0x15f90", - "gasPrice": "0xa6f095d4", - "hash": "0x706cc7072418792c08feb0ace7ba254538265f6bfdb6282584f936160791d8e1", - "input": "0xa9059cbb0000000000000000000000000fac5094987a848754db82a7db870e635f12693900000000000000000000000000000000000000006d06bff6e90832e72f68a000", - "maxFeePerGas": "0xc92b663a", - "maxPriorityFeePerGas": "0x83215600", - "nonce": "0x9c174", - "r": "0xa6227d8331598c8b57b985e5e11b799c6f5e15b7e5b64e1d233783d5edf18084", - "s": "0x251e93d98b77b2ab2a270200fdb90dde273121fe2f7b5e8bcbbd1d687780c002", - "to": "0xf8ebf4849f1fa4faf0dff2106a173d3a6cb2eb3a", - "transactionIndex": "0xf", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [ - { - "address": "0xdd6e1a4e35d307497da8d5d4052173410951b3d5", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000008", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x9c04773acff4c5c42718bd0120c72761f458e43068a3961eb935577d1ed4effb" - ] - }, - { - "address": "0x615987d46003cc37387dbe544ff4f16fa1200077", - "storageKeys": [ - "0x000000000000000000000000000000000000000000000000000000000000000d", - "0x000000000000000000000000000000000000000000000000000000000000000c", - "0x0000000000000000000000000000000000000000000000000000000000000016", - "0x0000000000000000000000000000000000000000000000000000000000000013", - "0x000000000000000000000000000000000000000000000000000000000000000a", - "0x28d47d5a1b1bb6d81ee8f3296c3aabe6858274ba016748dc240a0c7b404bed4e", - "0x81578d72e57cfe5afd3cabf194b9dd0cd31cbf55328ad151e90cde0d8a724a2f", - "0x0000000000000000000000000000000000000000000000000000000000000008", - "0xc4cd4eff418a87bd16e163858527636e3f62260f9fd3e6abc04042e6b2a417ed", - "0x0000000000000000000000000000000000000000000000000000000000000010", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ] - }, - { - "address": "0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000009", - "0xc02c10ae588f2466ea6e6350d07ab12ee7521cf6f0c110cec9b4bd1ec5838085", - "0x0000000000000000000000000000000000000000000000000000000000000006", - "0x0000000000000000000000000000000000000000000000000000000000000014", - "0x000000000000000000000000000000000000000000000000000000000000000b", - "0xac6fb4f0f81e11dc1f89f596e243b0ed419667343ccffe17523030f10980cedd", - "0x9d8106a7b639091777047eab6393a843ae4f778b78087f1dc0a2a206ede77128", - "0x28d47d5a1b1bb6d81ee8f3296c3aabe6858274ba016748dc240a0c7b404bed4e", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0cc3e71b6c8503b085fba098fa97a196e68800a75592ac94ee4fd52a7743498f", - "0x000000000000000000000000000000000000000000000000000000000000000e" - ] - }, - { - "address": "0x7c706586679af2ba6d1a9fc2da9c6af59883fdd3", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000588", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x087ee8928d220a836313fd42a2026f22b82c654c81888dac4ae8bd03caea005a", - "0x0000000000000000000000000000000000000000000000000000000000000587" - ] - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "storageKeys": [ - "0xf6cc6c4222dae194a09f19d368f4b2b85698ddef67e513b005143d861f8ea8e2", - "0xbd5af5151dcb9feb2c4ef23509c863dd4415e4d2c27b5c08786933a8ed41acc7", - "0x35425d932c70410b9314c106b34cf243d577a8b57c3baf57fb710448b88ade38" - ] - }, - { - "address": "0x6c618dd1040a79923cd74113ef0ed07c07d2b0e7", - "storageKeys": [ - "0x000000000000000000000000000000000000000000000000000000000000000c", - "0x0000000000000000000000000000000000000000000000000000000000000008", - "0x0000000000000000000000000000000000000000000000000000000000000006", - "0x0000000000000000000000000000000000000000000000000000000000000007", - "0x0000000000000000000000000000000000000000000000000000000000000009", - "0x000000000000000000000000000000000000000000000000000000000000000a" - ] - } - ], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xae2fc483527b8ef99eb5d9b44875f005ba1fae13", - "gas": "0x544f2", - "gasPrice": "0x2f779f57", - "hash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", - "input": "0x2ba9dd6e1a4e35d307497da8d5d4052173410951b3d55eef268302615987d46003cc37387dbe544ff4f16fa1200077e0f63a424a4439cbe457d80e4f4b51ad25b2c56c271000a59e7c706586679af2ba6d1a9fc2da9c6af59883fdd3c83deea6ffc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2e0f63a424a4439cbe457d80e4f4b51ad25b2c56c0bb8353d6c618dd1040a79923cd74113ef0ed07c07d2b0e73e9e429906", - "maxFeePerGas": "0x2f779f57", - "maxPriorityFeePerGas": "0x2f779f55", - "nonce": "0x4cbf83", - "r": "0xbb4c027501530e321903206f7cbaf17b7410586c68a6a75ffebd5a3c3f634232", - "s": "0x48896f0e5f5fec1b2d65c3cf6c04bd5ba55930b86f023b1059438343dc2e716e", - "to": "0x1f2f10d1c40777ae1da742455c65828ff36df387", - "transactionIndex": "0x10", - "type": "0x2", - "v": "0x0", - "value": "0x5b", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", - "gas": "0x15f90", - "gasPrice": "0x9b04d3d4", - "hash": "0x341b093276998eaf55ba531d7cb2be1ff32f44a398c85b60d4180791cdadf218", - "input": "0x", - "maxFeePerGas": "0x2e90edd000", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x23db9d", - "r": "0xde0674de89b18bb5bc3c687263f58e7649bbc74344b35b95d891b22d465a5daf", - "s": "0x5729711edfae9add35453fd71f65a69aff60d1b7f7323efa79bfe19483b28bdf", - "to": "0xa5ccd022e4b4ac431deadb329e20aa76c4a80f5a", - "transactionIndex": "0x11", - "type": "0x2", - "v": "0x0", - "value": "0x3ff2e795f50000", - "yParity": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xd24b2b3f3420cda82d40e0c8584b88ce7ec386e8", - "gas": "0xfde8", - "gasPrice": "0x4fb1722d", - "hash": "0xa7c324afd989fec33f0436d148f3e9ef90f7159b55075827aab7b72d6840a977", - "input": "0xa9059cbb0000000000000000000000005626213e557182a6d19048d29b535b5d7f5408be0000000000000000000000000000000000000000000000000000000129d00963", - "nonce": "0x0", - "r": "0xa9a1b25fa18f5c88abb741c220dc4bea6660040c33c777fcac746a6edb6c4e86", - "s": "0x1f0d5d0cd66e7d4153759a7124be88be0e2fe6c9f7aa477b0604c6a6fb328266", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x12", - "type": "0x0", - "v": "0x25", - "value": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x260b364fe0d3d37e6fd3cda0fa50926a06c54cea", - "gas": "0x15f90", - "gasPrice": "0x9b04d3d4", - "hash": "0xe5cb77f931850a0890a14d4ae7f73fe1bad375114d0ccf680c7c744d1f73a045", - "input": "0xa9059cbb0000000000000000000000005a617641788bc9c3a91696eda1bb66c60034c9b60000000000000000000000000000000000000000000000000000000042636c39", - "maxFeePerGas": "0x2e90edd000", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x75b0", - "r": "0x957458fa189a658986928ed43f8867206b50af621a7311ecc38adc102f32dcd9", - "s": "0x9dd044eb1178b7b43402aa135d7be8ad5f4a3bbbd189a04c2be57b2f0f3b799", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionIndex": "0x13", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x5000afd95cbc51054caf4c5330342890ead87b70", - "gas": "0x3f950", - "gasPrice": "0x6b55cbd4", - "hash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", - "input": "0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000068a5d54f0000000000000000000000000000000000000000000000000000000000000003100604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003070b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000001351609ff758000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000027213e28d7fda5c57fe9e5dd923818dbccf71c4700000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000005000afd95cbc51054caf4c5330342890ead87b700000000000000000000000000000000000000000000000000000000015862eb60c", - "maxFeePerGas": "0x792d1e40", - "maxPriorityFeePerGas": "0x47868c00", - "nonce": "0x117", - "r": "0x50d994452bd34a1017f8dc01715c4314619e45386b47fdb5941c0774063c6e23", - "s": "0x19a353f77421f8b1b6f337318443ff1285049f98e20ed4fb696cf30d91fdb2a", - "to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", - "transactionIndex": "0x14", - "type": "0x2", - "v": "0x0", - "value": "0x1351609ff758000", - "yParity": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xc35fb86f962ea955751a793a007b5cdd44f798d7", - "gas": "0x108bf", - "gasPrice": "0x2c523e86", - "hash": "0x8af00935a2db3f2e066c91359011f9e29093f62a7616e816413f2710dbfc4b41", - "input": "0x23b872dd0000000000000000000000007d7990b713c3497937fac4331176c127710b97d500000000000000000000000016fbc59070699f26c094fa8716b743561e0c53d300000000000000000000000000000000000000000000000000000000148b1abe", - "nonce": "0x62c25", - "r": "0xa427d9860091d1c471e62fd44eb20562ed1cd42cd34fa0125a54479dc408d9d7", - "s": "0xdff66fea1e4737178aefac617bc5141e942818d9f6ef234add9380d741a9d06", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionIndex": "0x15", - "type": "0x0", - "v": "0x25", - "value": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x5de41533c43766bb1181de4826a7f8f2e4e64549", - "gas": "0x5208", - "gasPrice": "0x330fb22a", - "hash": "0x7c406076c4f872219370ca69e2e9dfb8096c47f514615aecda99577551b8cba1", - "input": "0x", - "nonce": "0x0", - "r": "0xc579b2efa5d6a1c35c409381fd366c9a02410bb576fd9382bdb8e8658b8263f1", - "s": "0x6e4bc46e650c4bb7c05f82bff0def0922414b9844680f7282425a21787443a9c", - "to": "0x0c8aa5263afde3c43a0fe88aed2b10ade922e666", - "transactionIndex": "0x16", - "type": "0x0", - "v": "0x26", - "value": "0x6c8ae427399ab0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x3ffa6671d869ae0d923a17505e633e700fb8e35a", - "gas": "0x3d090", - "gasPrice": "0x14bfac694", - "hash": "0xef7c2d4ba0dbc86ccfd07a62ca7f843ea8cdc1587011fd8c14ba640f1535ac79", - "input": "0xa9059cbb000000000000000000000000842264311e492fdb425e8430472b6f9a4f66048300000000000000000000000000000000000000000000000000000000001ed2a0", - "maxFeePerGas": "0x14bfac694", - "maxPriorityFeePerGas": "0x12a05f200", - "nonce": "0x1c", - "r": "0xd1394a94128159724fdda3ee2861ebdf90cee5622051e4e0033d09ee3f3dca4", - "s": "0x6dcb716ca9c8bb2d4a3a036dc128b5a9d6f3580aa94951a60402e4fab1622ae9", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionIndex": "0x17", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x552fe7e19ecd9789e57131c09712977b4d075cbe", - "gas": "0x5208", - "gasPrice": "0xd69f9dd4", - "hash": "0xac88e9bd517db66ea5eebd8caba9d5c33ddfce1f779eef3e6821e15510f4c864", - "input": "0x", - "maxFeePerGas": "0xe158605f", - "maxPriorityFeePerGas": "0xb2d05e00", - "nonce": "0x0", - "r": "0xaadb63e5503f6f955be7a06acd51010c00e6d49a2f79f186648be38bd81513b0", - "s": "0x4f542d1920058fdbaa15289d3cea5ab96edec8a2a2ae581c82e733795dce227", - "to": "0x76eeb4c8b149738a9b198d866c80e8087a0a4f17", - "transactionIndex": "0x18", - "type": "0x2", - "v": "0x1", - "value": "0x2e8f847e4fef28", - "yParity": "0x1" - }, - { - "accessList": [], - "authorizationList": [ - { - "address": "0x89046d34e70a65acab2152c26a0c8e493b5ba629", - "chainId": "0x1", - "nonce": "0x2946", - "r": "0xa8a2a3ccf59245a4e58e863d0df6bb76f9aa2cb9c1d7eff9a39f29169a89d2a8", - "s": "0x7733d3223be9565ec2f827564f966ed0af413a91153eaddf4f6ab3304ea259db", - "yParity": "0x1" - } - ], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x4791eb2224d272655e8d5da171bb07dd5a805ff6", - "gas": "0x186a0", - "gasPrice": "0x6a5efc76", - "hash": "0xda8bc5dc5617758c6af0681d71642f68ce679bb92df4d8cf48493f0cfad14e20", - "input": "0x2c7bddf4", - "maxFeePerGas": "0x6a5efc76", - "maxPriorityFeePerGas": "0x6a5efc76", - "nonce": "0x6233", - "r": "0x3b863c04d39f70e499ffb176376128a57481727116027a92a364b6e1668d13a7", - "s": "0x39b13f0597c509de8260c7808057e64126e7d0715044dda908d1f513e1ed79ad", - "to": "0x62b53c45305d29bbe4b1bfa49dd78766b2f1e624", - "transactionIndex": "0x19", - "type": "0x4", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", - "gas": "0x15f90", - "gasPrice": "0x9b04d3d4", - "hash": "0xd7938913fd206fc1ef384e45dada725badd5a3ff87a793d9c432b70488a7bcdb", - "input": "0x", - "maxFeePerGas": "0x2e90edd000", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x23db9e", - "r": "0x6989bb3ab8e8886cc26c334042057b945fbafb19338cfa4a108c42ab6132d789", - "s": "0x3ddf325b978ef21761cb821b85b5b15a65ef412099cc91104039b5da122b5186", - "to": "0xe401a6a38024d8f5ab88f1b08cad476ccaca45e8", - "transactionIndex": "0x1a", - "type": "0x2", - "v": "0x0", - "value": "0x3ff2e795f50000", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", - "gas": "0x15f90", - "gasPrice": "0x9b04d3d4", - "hash": "0x80c2402d4dbfadb46899b4ceb48f3851c8be0d08eb399608b6966f401653e60d", - "input": "0x", - "maxFeePerGas": "0x2e90edd000", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x23db9f", - "r": "0xb9d797a14458207ec151efc427bf04203e663450d412f2edcb687b4c5cc0625f", - "s": "0x5a1e4dee44c870e45ef0aeb6373c8f87c2767f624b9c1c5eb120d37caba21816", - "to": "0x3b26af33b78b1414e40c83be39a6f1b924b1e08a", - "transactionIndex": "0x1b", - "type": "0x2", - "v": "0x1", - "value": "0x3ff2e795f50000", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x2c61206798f1ab3bce5833ecdd4a78aeba2e6b36", - "gas": "0x247020", - "gasPrice": "0x23d05144", - "hash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "input": "0xf83374d2000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000006000000000000000000000000b167d99000cec6232e3b27f7f01d2b41c60f7fdc0000000000000000000000003b9c214a501b2ae33ab1793b57b09879a754f2ef000000000000000000000000c5327f8a6f6ea98928ff6a893d74a5cbc743f170000000000000000000000000f92c421115b1f11203abcfce78eed1aadad3e0a5000000000000000000000000f801db2654e911e922665c4cb885d8cca4c155bf000000000000000000000000c7e957681720875f3a2143f1afb72e7fb6ffdd78000000000000000000000000000000000000000000000000000000000000000600000000000000000000000073ada7d3ce2c1dcf9bb4100b650196ccc2ccdfa6000000000000000000000000df37c5d3eea96515faa286c30e8f6b05640cad00000000000000000000000000b21cef20389f300cdc7b2572f0a9a1afe62f4479000000000000000000000000f1edbdf579ad83cc86064bd089300b6b9362f084000000000000000000000000321166c624541dde00025d2d916d117410ba8421000000000000000000000000e1e82ee891f469897a815b0bfcc34dd5d597f76a", - "maxFeePerGas": "0x8f0d1800", - "maxPriorityFeePerGas": "0x11170", - "nonce": "0x4ba", - "r": "0xfbffa3c98d57923e4aabe7ddcad28263c456e4225c28bbe1c2bd989589120390", - "s": "0x3c04c706b36b0b24cf6c97b025eb29935a3112b4436bcc927ab82e0e8b0c28e8", - "to": "0xceb550db4b2f889782936bbedfe42ab406e8243d", - "transactionIndex": "0x1c", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xaf8648ea8cecb238158b6fdf3fd3faf57f7e5828", - "gas": "0x37d7e", - "gasPrice": "0x6b55cbd4", - "hash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", - "input": "0xfd9f1e10000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000bc0000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000689fa0e400000000000000000000000000000000000000000000000000000000698ceee400000000000000000000000000000000000000000000000000000000000000003d958fe20000000000000000000000000000000000000000d7f47ee15044ce5c0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000364c828ee171616a39897688a831c2499ad972ec00000000000000000000000000000000000000000000000000000000000018b400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014b66cd7a745400000000000000000000000000000000000000000000000000014b66cd7a7454000000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001aa535d3d0c000000000000000000000000000000000000000000000000000001aa535d3d0c0000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000689fa0e400000000000000000000000000000000000000000000000000000000698ceee400000000000000000000000000000000000000000000000000000000000000003d958fe20000000000000000000000000000000000000000a29357375656c9f90000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000364c828ee171616a39897688a831c2499ad972ec0000000000000000000000000000000000000000000000000000000000000ef100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014b66cd7a745400000000000000000000000000000000000000000000000000014b66cd7a7454000000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001aa535d3d0c000000000000000000000000000000000000000000000000000001aa535d3d0c0000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e582800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5c2e500000000000000000000000000000000000000000000000000000000699310e500000000000000000000000000000000000000000000000000000000000000003d958fe200000000000000000000000000000000000000002fe9624b3e78822e0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000364c828ee171616a39897688a831c2499ad972ec0000000000000000000000000000000000000000000000000000000000000ef1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000139ba1106b264000000000000000000000000000000000000000000000000000139ba1106b264000000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e58280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019396991e7c0000000000000000000000000000000000000000000000000000019396991e7c0000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e582800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5c2e500000000000000000000000000000000000000000000000000000000699310e500000000000000000000000000000000000000000000000000000000000000003d958fe20000000000000000000000000000000000000000624359a486d8b48b0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000364c828ee171616a39897688a831c2499ad972ec00000000000000000000000000000000000000000000000000000000000018b4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000139ba1106b264000000000000000000000000000000000000000000000000000139ba1106b264000000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e58280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019396991e7c0000000000000000000000000000000000000000000000000000019396991e7c0000000000000000000000000000000a26b00c1f0df003000390027140000faa719", - "maxFeePerGas": "0x792d1e40", - "maxPriorityFeePerGas": "0x47868c00", - "nonce": "0xb2", - "r": "0x9f60f2ef3f5228b21403114f8429bbac75b92450e22f725fdb9b059a28c9dde9", - "s": "0x3602001215d9f8703ce93e1c669c67046b6bdf31dbb7fac375f3503d06e74135", - "to": "0x0000000000000068f116a894984e2db1123eb395", - "transactionIndex": "0x1d", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xe75de7c288e72bb44ce46d4a795bb794bd19664b", - "gas": "0xfde8", - "gasPrice": "0x4fb1722d", - "hash": "0xffe56e6ac055509a585cbce2c45f16125695652d5214c2d06b0c4a1646780b0e", - "input": "0xa9059cbb000000000000000000000000408cb2bb16d073f0b6d4785fdab75b184e59e41e00000000000000000000000000000000000000000000000000000000831967dc", - "nonce": "0x1", - "r": "0xc783ef9fa2f5689c52282e1b3c225ba0e9d85a30e4ca12169d5983df4bdc2177", - "s": "0x7eeba7844d4faf91a651e8db26d93cb431e9e50eae0cbf4221ca20f189feafb2", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x1e", - "type": "0x0", - "v": "0x26", - "value": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x1cca465c62fb70741dd181ee86b53974db7d4122", - "gas": "0x8f028", - "gasPrice": "0x5f6a09d4", - "hash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "input": "0x049639fb00000000000000000000000000000000000000000000000000000000000000040000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000002b477372c53d68000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000022812aa3caf0000000000000000000000005141b82f5ffda4c6fe1e372978f1c5427640a1900000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000bf16540c857b4e32ce6c37d2f7725c8eec869b8b000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000002b477372c53d6800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008500000000000000000000000000000000000000000000000000000000006700206ae40711b8002dc6c0bf16540c857b4e32ce6c37d2f7725c8eec869b8b1111111254eeb25477b68fb85ed929f73a96058200000000000000000000000000000000000000000000000002b477372c53d6803ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000000000000000000000000000000000c4e3736f000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x686bea4e", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0x12", - "r": "0xd6d31bd1912778e81e5f6b147983f1af9dce728da7bc5b247fad6332b82bc0dc", - "s": "0x6131aa416e85c9334e456fe83d148a1c337131ef66c3e2e4fa229d37b7a7a237", - "to": "0x3c11f6265ddec22f4d049dde480615735f451646", - "transactionIndex": "0x1f", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x776e7ad582e7ccc660f628774c54dd5aad1f14a1", - "gas": "0x5208", - "gasPrice": "0x495818a5", - "hash": "0x0230cf61b59c8ac739a7cced4477df1611842ca8faeadeab19307145889782a7", - "input": "0x", - "maxFeePerGas": "0x4c885df0", - "maxPriorityFeePerGas": "0x2588d8d1", - "nonce": "0xd4", - "r": "0xd130c8627f94d5fc6655556e7a2a4431f35a1f1c2d4513e401b5a08a44c77044", - "s": "0x528d66e37ccaac4a4b30186de4483879bb625bf8c11e62bc9d84d5d4e0139c82", - "to": "0xb9bd424575359fcc3d3c1538b2e11e37fb517fcf", - "transactionIndex": "0x20", - "type": "0x2", - "v": "0x1", - "value": "0x1141817eaf3e29a", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xaf31d6f4e3841b28c5b0581770ffaf2e1f558515", - "gas": "0x30d40", - "gasPrice": "0x4182b434", - "hash": "0x30c4df0d162a8e6b3a0677be57584d0a50da42677eff50c900f15f36ca1ad7a9", - "input": "0x8703a14049cde59eeb9733a488b963e44544990641bab848f807b8ccb680947fe318ac28dd993d7af5d9873f1127af77a360d4f3c1018b5a8782d75c7509fe8d383311432833c2c8a293f0a2a7b1bbcdbcc53df43624b7dea2c3eaa1e640bc5c", - "maxFeePerGas": "0x4bfef4c0", - "maxPriorityFeePerGas": "0x1db37460", - "nonce": "0x12", - "r": "0xf4c3510a1569fc094383d9c522a07506d021f1cee66fe364bf428b496f544a7f", - "s": "0x2047793252aabaf72b58eddcd7923d2b2c45ed4dd0ce508f4b238f66005b6f00", - "to": "0x0000bbddc7ce488642fb579f8b00f3a590007251", - "transactionIndex": "0x21", - "type": "0x2", - "v": "0x0", - "value": "0x1", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x70df61c20275d9088c4e50c12de9af6d23276e5c", - "gas": "0x11056", - "gasPrice": "0x5f6a09d4", - "hash": "0x315141d0a9a6f772f7a151235bdc319a32aed88e0ddd6ca34a94f903cdecd562", - "input": "0xa9059cbb00000000000000000000000069275b5c10143c8fd1cbdb2637348b1558c736600000000000000000000000000000000000000000000000000000000001312d00", - "maxFeePerGas": "0x6625e6dc", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0x9d", - "r": "0xb8bb48b4443aa7ac31be9a04bfc14052f538413cc573cc6d06966df1b5c07837", - "s": "0x6d225e5f06a50f60692de4fbc8c8fcdb0c2278ab06e011a41cfe961275baf414", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x22", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x10fdba297c8da9fa8904ffd699ce81de5615985c", - "gas": "0xf519", - "gasPrice": "0x3fce7f68", - "hash": "0xd208e85483ab2355d80676863ecac1a0c67f2455f8af2bcaa68e6cc9bbf92fe6", - "input": "0xa9059cbb00000000000000000000000025d772eb5e0c9dcd7229c7b9158b1e6cb73dadc100000000000000000000000000000000000000000000000000000007aef40a00", - "maxFeePerGas": "0x46071a12", - "maxPriorityFeePerGas": "0x1bff3f94", - "nonce": "0x8", - "r": "0x4aaf48f73a9e21f8c180597170b013ba09472d5c94c168851a83557570a36ac8", - "s": "0x1718671522544df411a23b8e0155ebf4ab12d38060127d061a80a6496415022b", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionIndex": "0x23", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", - "gas": "0x13015", - "gasPrice": "0xdc3a2c62", - "hash": "0x8e59ea830734462addb7c73571c2092c1d2bfcc0689987a2d08dd234827e5c5e", - "input": "0xa9059cbb000000000000000000000000a842ba73e0bfe9adeacd527570cc3ab2617de753000000000000000000000000000000000000000000000012f365a5d8850e0000", - "nonce": "0x1b5890", - "r": "0x74a40f16aa4c3630e4c3db8bd0e858dc928c724db0420b5b876bd098b9323db5", - "s": "0x3e34780bc8530e360c420a89fa6d7c1f2ebf88fd7eb002ac040cc85d10393cd9", - "to": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", - "transactionIndex": "0x24", - "type": "0x0", - "v": "0x26", - "value": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xb1b2d032aa2f52347fbcfd08e5c3cc55216e8404", - "gas": "0xea2c", - "gasPrice": "0x29c520d4", - "hash": "0xeb72be22b2d9521239741a245f8c90a561199b1df62649eea12f1d504fcf0511", - "input": "0xa9059cbb0000000000000000000000008e7dedd9b1a7fd101a08b1c95f3c602fe0d4b48600000000000000000000000000000000000000000000001fd4a70fe0b9180000", - "maxFeePerGas": "0x44978472", - "maxPriorityFeePerGas": "0x5f5e100", - "nonce": "0x1c5046", - "r": "0x7fa203846559204e74e4582bfd14c4d98956c8022e7a8d73b0b118c303ded8a", - "s": "0x332762ddece05a4bbc2a594955d7391791afcfcfdc36f9a8760c87ff8a396c60", - "to": "0xc52c326331e9ce41f04484d3b5e5648158028804", - "transactionIndex": "0x25", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x87fcc6982257de5bdaa679d08e56117aa0b5a5d1", - "gas": "0x40fc7", - "gasPrice": "0x251c128e", - "hash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", - "input": "0x791ac9470000000000000000000000000000000000000000000000000002dc9608740d6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000087fcc6982257de5bdaa679d08e56117aa0b5a5d10000000000000000000000000000000000000000000000000000000068a5ce8f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000cced7736d6781f2a3aa9c7a2a24fea935c9fa9f8000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "maxFeePerGas": "0x2ae72a17", - "maxPriorityFeePerGas": "0x14cd2ba", - "nonce": "0xa", - "r": "0x14a1376af91b40ed1ee0d2bbbc52fa168060bff14acf003ff760af7ea20d9a2a", - "s": "0x34f01622feaf1ef0d6d97056a19eb020a053e71f2ae08555a5dd3952b4815922", - "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", - "transactionIndex": "0x26", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xf51710015536957a01f32558402902a2d9c35d82", - "gas": "0x15f90", - "gasPrice": "0x338a0fe7", - "hash": "0xf01b080912591defbcce2bb82770072f83b3a91a83ccf4bd7d54893f8cb9cbae", - "input": "0x", - "maxFeePerGas": "0x746a528800", - "maxPriorityFeePerGas": "0xfbad013", - "nonce": "0x6492b", - "r": "0x694607d920514e4044689d082d84e6bedbc5447613695e7b3c27e42bdcbdfe0e", - "s": "0x6c2b2f93ae2ff8d04a698cbf4f3bd1637a6206018e9e8b084d2f77fc7a0dcb9c", - "to": "0x6f4bb3d0625b2cfd4400c6834943fde26c057f7a", - "transactionIndex": "0x27", - "type": "0x2", - "v": "0x0", - "value": "0x635fb4242c74000", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x9696f59e4d72e237be84ffd425dcad154bf96976", - "gas": "0x32918", - "gasPrice": "0x29c520d4", - "hash": "0xfd26a9f8e2db5d764cf715384c0bfac63f02b7562b0e6f955709d4da06ef261c", - "input": "0x", - "maxFeePerGas": "0x17bfac7c00", - "maxPriorityFeePerGas": "0x5f5e100", - "nonce": "0x7b73f9", - "r": "0x401a4ceafae4577e72043c1a3bdaa91a648218e42e56db29fbde1021e3d52f0d", - "s": "0x2bfd49ed4fe208497ae427e0fc7e2a0c4326e0610b0d0e39a256b61f68fb0c8f", - "to": "0x19d315d10037a99d54d099a13e5e3a99a826ecae", - "transactionIndex": "0x28", - "type": "0x2", - "v": "0x1", - "value": "0xaf799de600c00", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x4976a4a02f38326660d17bf34b431dc6e2eb2327", - "gas": "0x32918", - "gasPrice": "0x29c520d4", - "hash": "0xea9ffed304d53fbaabf6114693e8bb852ce67b3246f6db6bf20e2bb63c606cb6", - "input": "0x", - "maxFeePerGas": "0x17bfac7c00", - "maxPriorityFeePerGas": "0x5f5e100", - "nonce": "0x4f278f", - "r": "0x436d711ad2dc2eaa545612cfcd02c7e8d6be2f26da4030cd8e98e9178a364c06", - "s": "0x41020c56073ae7c1132d74bea483d74dfefdc89e7f4a49c8fefbdc529d625f47", - "to": "0x7a9c7afb0673dfb0cacb2bfde0a55c873c59fe1c", - "transactionIndex": "0x29", - "type": "0x2", - "v": "0x1", - "value": "0x37e23e15c27000", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x6dce2424e724a02d231cbcf64edeee8d15bd9e4b", - "gas": "0x5208", - "gasPrice": "0x27e37c7e", - "hash": "0x6bbd906f6a605b46a4863de27fbd8497f1e320ddb54b8daf1c932fb25ecce27b", - "input": "0x", - "maxFeePerGas": "0x27e37c7e", - "maxPriorityFeePerGas": "0x27e37c7e", - "nonce": "0x9", - "r": "0x60a484d887401d328b4753991e25d50f90f651a136efb6cd1dad61fbc1db9c04", - "s": "0x55346221ba438e894b9d1a17d2bc1676c942d2966a1e0686afd19563ff72a5cb", - "to": "0xb386dff391830280763869d8f416206d16289e31", - "transactionIndex": "0x2a", - "type": "0x2", - "v": "0x0", - "value": "0xa9bb3d1574010", - "yParity": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x2d0d297c319be90844fab9b4ee070b8a81243163", - "gas": "0x1776d", - "gasPrice": "0x3b9aca00", - "hash": "0x3f164f5ef4d0c9cea6fd7defbda6abdfb3f6dd12957fe85f721d1443e8ac1998", - "input": "0xa9059cbb000000000000000000000000cff7b816bdcc412d3a8ee0461ba7a30a9b6a5cac00000000000000000000000000000000000000000000000000000000da054a19", - "nonce": "0x6", - "r": "0xa9c6d1ef65c0290498a2788c225c6602924359c000ee4e8ccdaccb6e199b696f", - "s": "0x157545cc15cdb06b6c67749fee395fda7c768ca23c43d5ef69059c7e3630eefa", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x2b", - "type": "0x0", - "v": "0x26", - "value": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xb5357b69181efcf8f6f45198b601e21e270a20ff", - "gas": "0x5208", - "gasPrice": "0x261331f8", - "hash": "0xe79c391b1b8ee215a67c818d1b3318872b9c8282d8ea3956349a831fa7fffbcd", - "input": "0x", - "maxFeePerGas": "0x261331f8", - "maxPriorityFeePerGas": "0x3861426", - "nonce": "0x18", - "r": "0xce1f442f77e65b6ed7442ec68b12e90cdd2213c39d2b05c1a0fdb0c3b8330104", - "s": "0x57c413c84e94dfce00d71ccbfaec6f812d4c543afc07b6f9a4f1eacbb3a07176", - "to": "0x7bf38c17a6519dd17842bc37044cc30b92b81dc5", - "transactionIndex": "0x2c", - "type": "0x2", - "v": "0x0", - "value": "0x38d7ea4c68000", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x2cff890f0378a11913b6129b2e97417a2c302680", - "gas": "0x5208", - "gasPrice": "0x23d0d9fc", - "hash": "0x124c9963d0414550d86a8c6d796b054f04ab221dfd4df6fc37135a5d2a33ed09", - "input": "0x", - "maxFeePerGas": "0x46e974ec", - "maxPriorityFeePerGas": "0x19a28", - "nonce": "0x43c8", - "r": "0xe3bbe13001aa15f6223d1b562aab56b9343279396285a4bd358c1a8d92b09135", - "s": "0x79575a6f819c568d1c72532d91978821fd0686d895431aab07410b608afa6f11", - "to": "0xa455eb2c7a4f4b90106cad96cc9c36e62cd46806", - "transactionIndex": "0x2d", - "type": "0x2", - "v": "0x1", - "value": "0xe337fe1d2d2a6", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x0da475ffc29623e805bbcf7216ea8a438209882c", - "gas": "0x7b0c", - "gasPrice": "0x23d0d9fc", - "hash": "0x4d99f405c49268e1d4a3845a46e54178c6b1becd3e2dacc512d18007f1be3076", - "input": "0x", - "maxFeePerGas": "0x32ef3ede", - "maxPriorityFeePerGas": "0x19a28", - "nonce": "0x5", - "r": "0xc6aa87874762cd830219c5dee3a2b40908e647cfcfce00c7ffff7ef2d10cb7be", - "s": "0x20a2562942cfadedc56e9caaf5de99d3486fe9fb0421e154c3bced4abde03c20", - "to": "0x4762631fdff1a1fed3eedf95a685d57007cf9b43", - "transactionIndex": "0x2e", - "type": "0x2", - "v": "0x0", - "value": "0x9ee5c3eb92dba", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x6f0a91ef8adeb54db0e63be507747ab9a31d3926", - "gas": "0x25fc3", - "gasPrice": "0xa3c4056e0", - "hash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", - "input": "0x122067ed0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0554a476a092703abdb3ef35c80e0d76d32939f000000000000000000000000000000000000000000000000672ed4843c7fdc000000000000000000000000000000000000000000000000000000000739cf796700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5ce6300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000014c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000", - "maxFeePerGas": "0xa3c4056e0", - "maxPriorityFeePerGas": "0xa3c4056e0", - "nonce": "0xcb4e", - "r": "0xfbcf5ebf202ea38778ea135d8b30a7f1ab7d94e93914d34c62135da9d27b9064", - "s": "0x65e245ab4abac1126c0157973bd49c52bfee4de99e517cad4877111987f12cab", - "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", - "transactionIndex": "0x2f", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xdada79040afa6ac7d7660e7e18f8a9b82c31f49a", - "gas": "0x5f3cb", - "gasPrice": "0xe53094a6", - "hash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", - "input": "0x6440a7b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d51a44d3fae010294c616388b506acda1bfaae460000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013464f00da49360000000000000000000000000000000000000000000000000000000001598ad015000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000068a5ce63", - "maxFeePerGas": "0xe53094a6", - "maxPriorityFeePerGas": "0xe53094a6", - "nonce": "0x10e63", - "r": "0x3857dd7e7abb2727d39efde59b70914a66843584afe2b957fd03c2e53d0daacb", - "s": "0x4e4936c5e78688096ce0b452f5c896b83587602b81f71c51c305a48c4e27d734", - "to": "0xec6fc9be2d5e505b40a2df8b0622cd25333823db", - "transactionIndex": "0x30", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xebedc8e9ff409b23dd251f87ccbffa8075f87255", - "gas": "0x3a4ff", - "gasPrice": "0x153bf91bc", - "hash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", - "input": "0xfb034fb200000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016c1d8e56b0900000000000000000000000000000000000000000000000000000000000197f33a5e", - "maxFeePerGas": "0x153bf91bc", - "maxPriorityFeePerGas": "0x153bf91bc", - "nonce": "0xccb6", - "r": "0xb816f82aef3895d4fd4645f077aaf5516a8e85b7a07b6747627b9d96067b97b", - "s": "0xd6e1b7c3b82321ec4cb1434197195f05296c32d6d0d83e921cad948c4e87ad3", - "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", - "transactionIndex": "0x31", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xac8b6e55c809e4dd83dc9943cf460c1caca84125", - "gas": "0x31759", - "gasPrice": "0x3a5d5e6a8d", - "hash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", - "input": "0x020bf14f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021c67e77068de97969ba93d4aab21826d33ca12b000000000000000000000000000000000000000000000002f58e79a84de88000000000000000000000000000000000000000000000000000000000350c4f7e6b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000068a5ce63", - "maxFeePerGas": "0x3a5d5e6a8d", - "maxPriorityFeePerGas": "0x3a5d5e6a8d", - "nonce": "0x176", - "r": "0x393387ba9ae21992ccf8f5e4a1a042309dabfed3b76816d801f33441850c8894", - "s": "0x907bb95211c9212ee648dcb3664d7112de73ca2d59c2eac0ae43e5a36b8e4d4", - "to": "0xba47cbfdd61029833841fcaa2ec2591ddfa87e51", - "transactionIndex": "0x32", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xeaa9ebddd373c4bd8bb92dfcc9c7e7fcdb268e51", - "gas": "0x26506", - "gasPrice": "0x182f2c39bc", - "hash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", - "input": "0x122067ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011b815efb8f581194ae79006d24e0d814b7697f6000000000000000000000000000000000000000000000000defc43c79ba7e0000000000000000000000000000000000000000000000000000000000f9cdd60a200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000068a5ce6300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000014c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000", - "maxFeePerGas": "0x182f2c39bc", - "maxPriorityFeePerGas": "0x182f2c39bc", - "nonce": "0xcbde", - "r": "0x8181bd9af20a0bb0dc4b72f4daf530e13834b91fa4e53859e2c2dc626944e04c", - "s": "0x67d290c1f08200040d2cb664791c6fe566f8e80369033eb170319a987b0bcfa4", - "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", - "transactionIndex": "0x33", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x45923a43492d0deb458cb97c4ca8b7ccb0a20c71", - "gas": "0x32150", - "gasPrice": "0xee6546334", - "hash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", - "input": "0x020bf14f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000072331fcb696b0151904c03584b66dc8365bc63f8000000000000000000000000000000000000000000000000b47a1942be73e8000000000000000000000000000000000000000000000000000000000ca2e6c8ca00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000068a5ce63", - "maxFeePerGas": "0xee6546334", - "maxPriorityFeePerGas": "0xee6546334", - "nonce": "0x175", - "r": "0x5ed24d08d0c52fef6c1561414763233453db75bf38c6756c1951eadf28cf29c6", - "s": "0x1fe1052938e1cc0e215aaccf274c3102e981eac2d9124e2d8fcf5f9c3e534ef8", - "to": "0xba47cbfdd61029833841fcaa2ec2591ddfa87e51", - "transactionIndex": "0x34", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x639b2d751e6436667b97fe350c0fed111fc33fb4", - "gas": "0x61a80", - "gasPrice": "0x23cf3fd5", - "hash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", - "input": "0xa41e223e0000000000000000000000000000000000000000000000000000000068a5ce5b000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cba739d65838c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043b8825a96b1a40000000000000000000000000000000000000000011e9a3cf9af7e9000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000001999000000000000000000000000000000000011e9691e21c02d00000000000000000000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x4a817c800", - "maxPriorityFeePerGas": "0x1", - "nonce": "0x2b2", - "r": "0xe5763e58ce01fe198e8df0167b1bf1394c174d79408e08a48f4038d608f445e9", - "s": "0x3eb7ffc7b76bee7f3e868de32bdee668c9817e88c6f29eb8afe2d475e61e2b0", - "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", - "transactionIndex": "0x35", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x5c132e26694e1f3bad52a4f55c9cfd0f181d7463", - "gas": "0x61a80", - "gasPrice": "0x23cf3fd5", - "hash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", - "input": "0x92928cad0000000000000000000000000000000000000000000000000000000068a5ce5b0000000000000000000000007df7c84f2f9dcef3c0813e539878b76b89a916f80000000000000000000000002dff88a56767223a5529ea5960da7a3f5f766406000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000007a9126f567e1700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000069c1adf3fbff1400000000000000000000000000000000000000000002b947d2d96c9ce0000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000011e92ef2bc10760000000000000000", - "maxFeePerGas": "0x4a817c800", - "maxPriorityFeePerGas": "0x1", - "nonce": "0x117", - "r": "0xd349d67cfc4e26f5bc84ef21edb19db953b8a83181d675d82dab505635fac148", - "s": "0x1ced1890562e403f87a2088313fd03db667a70bdf5dbd79a7e3f12725184a48b", - "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", - "transactionIndex": "0x36", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x69021e92840bd777cf2c495f3be516700e430a5b", - "gas": "0x61a80", - "gasPrice": "0x23cf3fd5", - "hash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", - "input": "0xa41e223e0000000000000000000000000000000000000000000000000000000068a5ce5b0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000004e20000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077ab64900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021ac6aeaccbcfc000000000000000000000000000000000000046c7cd6e0d4198000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000001999000000000000000000000000000000000011e9969a97d7b100000000000000000000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x4a817c800", - "maxPriorityFeePerGas": "0x1", - "nonce": "0x180", - "r": "0x63e8f5ff5376e49a8606fb7f67d3d69fa71977edecd3355904b688f56cc8800c", - "s": "0x3ca634692b8971f2fdc0daf2e5b3685430045999b3a05f43802aa36f2ff889c8", - "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", - "transactionIndex": "0x37", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x545da54509ef233642343b8beac5ef4443e79d73", - "gas": "0x328da", - "gasPrice": "0x36eb8fdca", - "hash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", - "input": "0xd44db9b600000000000000000000000000000000000000000000000000000000000000000000000000000000000000006ca298d2983ab03aa1da7679389d955a4efee15c0000000000000000000000000000000000000000000000002680cb38d1649c0000000000000000000000000000000000000000000000000000000002b22a042c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000068a5ce6300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000014c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000", - "maxFeePerGas": "0x36eb8fdca", - "maxPriorityFeePerGas": "0x36eb8fdca", - "nonce": "0x4475", - "r": "0xf65b1a5097eb0d9af81ea0630d3df35c166ba0d6c7f8bda028cdefb07156793b", - "s": "0x5e2d06cbce62a0c8cbf6186014e4d99364d3c080f368fc38713ba5d969a031c1", - "to": "0x3b55732f6d3997a7d44a041b8496e1a60712a35f", - "transactionIndex": "0x38", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x448166a91e7bc50d0ac720c2fbed29e0963f5af8", - "gas": "0x668a0", - "gasPrice": "0x214369152", - "hash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", - "input": "0x000000cc000000000000000000000000836951eb21f3df98273517b7249dceff270d34bf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000007bde86a2e53bb9a600000000000000000000000000000000000000000000000000000008ac01b3f7", - "maxFeePerGas": "0x214369152", - "maxPriorityFeePerGas": "0x1f067517e", - "nonce": "0x6e984", - "r": "0x3c226a72302c824f086ba712b16b8171d20e02c3c66a46bfe1ef2221cadd7a19", - "s": "0x2521c3058f7ccfe4ea90fbdbd3e50e81074b0f942414946acea4c38e4eb984a3", - "to": "0xfbd4cdb413e45a52e2c8312f670e9ce67e794c37", - "transactionIndex": "0x39", - "type": "0x2", - "v": "0x1", - "value": "0x161bd0f", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x7f982f64ee9dfd024acb8c2abb5884fef0b9d440", - "gas": "0x8a81d", - "gasPrice": "0x1ebd76860", - "hash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", - "input": "0x4a7cf36200000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000ab81f100000000000000000000000000000000000000000000000000000000000000040000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae900000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000c097ce7bc90715b34b9f1000000000000000000000000000000000009cd692d05830b8000000000000000000000000000000000000000000000000000000000000000000000002b5e3af16b188000000000000000000000000000000000000000000000000000000000003548cbd9800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000005236333ef2baa45b450689b69e4e4b277d84f9540000000000000000000000000000000000000000000000000000000354afaf87000000000000000000000000000000000000000000000002b5e3af16b18800000000000000000000000000000000000000000000000000000000000068a5d534c38ba9abdb3bfd3bd5af820b0f5294c179238e8bf49f66530d7ab4d942b1443200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000002b5e3af16b188000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041c06548f979488f40a5e67df89044c31cc8c09cdcddead87b922fdc90415dfdfd5333c8b7fcdd848988feada2c472c936aba57bbefb8d2240eadfaa62b84aa63c1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002644dcebcba0000000000000000000000000000000000000000000000000000000068a5ce720000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f000000000000000000000000000000000000000000000000000004c99ea11513000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9000000000000000000000000000000000000000000000000000000035413c376000000000000000000000000000000000000000000000002b5e3af16b18800000000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000041d9d399148666c7ec4ac0b54a5b579279768fb1b04c28207ac772116827972c98367096e6131fcc8dcd85a0b3c05fce18365c506f84823db8dfd8c6b0a42b94ad1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x1ebd76860", - "maxPriorityFeePerGas": "0x1ebd76860", - "nonce": "0xaa4", - "r": "0xe005032dc6a82456cf452e127796330c03d2409f751fa0d215fc97c7c025c65d", - "s": "0x2559d38504e632d1223adbee990aac226371a2f0161465a636135f5e3bf56d12", - "to": "0x4dd1be0cd607e5382dd2844fa61d3a17e3e83d56", - "transactionIndex": "0x3a", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x55823001c8cd87a6e86716ca768bce51f2d89c9c", - "gas": "0x33450", - "gasPrice": "0x9b04d3d4", - "hash": "0xbc730be36c276ca5a0a02eeaa192ed302cf87c7453ad567e22fc951a0bf8d7e8", - "input": "0xb61d27f6000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000ce5586f0fbe00a3efbfc8d2caa714fdbe6a052eb0000000000000000000000000000000000000000000000000000000129fc57bd00000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x74e1881c00", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0xe79", - "r": "0x61d71d5dae66567f1be32e4419e475498180c144f0f23186160aa19262689b35", - "s": "0x6b1165bed38ac44740c0197ba42d72935f886c0da4ddd1483c90c48638b9c081", - "to": "0xf7b52be96b229dc63e6301bea175a1b5f756c274", - "transactionIndex": "0x3b", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x8611abf54b7ad26ccbfe99a213c201ee60dba0e5", - "gas": "0x1200c5", - "gasPrice": "0x5f6a09d4", - "hash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "input": "0x6e553f6500000000000000000000000000000000000000000000000000000000000f42400000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5", - "maxFeePerGas": "0x6625e6dc", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0x1", - "r": "0xc15c3beb2643397b167f73e4208a1e18161f957666ff3af4f9d774f5ac4dd632", - "s": "0x326866003f73e568f94506656a79970bb45a753f003f0dda6c4edffc3fd4999a", - "to": "0x13a5a916356242879b9509fd12bf8e4760a3f438", - "transactionIndex": "0x3c", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", - "gas": "0xc350", - "gasPrice": "0xdc3a2c62", - "hash": "0x6ae2f1fd6116d2b93223ae3548caf9d85e43d8fefec88814d36f38b916bab652", - "input": "0x", - "nonce": "0x1b5891", - "r": "0x2f2d6b2ee27fd239872543e343d55042c629adeefce711b422b1c052f637f634", - "s": "0x7ac630b345cde63c4a3a2bf0e82ec1792dfeabf9ad958abead10f53363ab7e36", - "to": "0x1b216d8b75a050041e59860ff7fda6e3411424f4", - "transactionIndex": "0x3d", - "type": "0x0", - "v": "0x25", - "value": "0x6b7dabf453000" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", - "gas": "0xc350", - "gasPrice": "0xdc3a2c62", - "hash": "0x3991e33f52ae3cf5167bf1f07cc8d358caf226022c5128ad991fe279b702a27d", - "input": "0x", - "nonce": "0x1b5892", - "r": "0x9334bfd70e73391955cafbab1a4a3fe0d6f45cbf125612a582de6928ada229df", - "s": "0x47de964d62eb82bab8f037f3ec8bc0c62f8b4101e53e26ff7de95948bb351389", - "to": "0x2e17aa7437b4ac446e5750202ab1d48c7884f5d9", - "transactionIndex": "0x3e", - "type": "0x0", - "v": "0x25", - "value": "0x7fbdd3efbad000" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", - "gas": "0x13015", - "gasPrice": "0xdc3a2c62", - "hash": "0xed80b011a517f5aab29dc7b79061fd54b68cc36c2023bfaff2812be53328e7fd", - "input": "0xa9059cbb000000000000000000000000a882df02283fa89d5659a870414e2c1803fd54ca00000000000000000000000000000000000000000000000ab407c9eb05200000", - "nonce": "0x1b5893", - "r": "0xd532b623026c3bb4d210427ab27abe9e2b6d6e9cfb0cabc64b8da3fcf3290d06", - "s": "0x7b26ad69f11e8a11058bcea370fbc2f80c5791293302501701dec3f3b3077784", - "to": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", - "transactionIndex": "0x3f", - "type": "0x0", - "v": "0x26", - "value": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", - "gas": "0xc350", - "gasPrice": "0xdc3a2c62", - "hash": "0x06d504980fbacf359463537147c81348f5978476433367b067b185ad95be82e0", - "input": "0x", - "nonce": "0x1b5894", - "r": "0x2aee26e10d81bfccbb812d506a36f097ef5582d7b4101dd6139b745d92770772", - "s": "0x3a0dc1a108b95ac12d9ff8676a2ac200869477ee838219ec87daa4e8ad6996b6", - "to": "0x0b9b42d7edb6b669a24f50157f80e5d909cb6eb8", - "transactionIndex": "0x40", - "type": "0x0", - "v": "0x25", - "value": "0x6ed83c14fe000" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", - "gas": "0xc350", - "gasPrice": "0xdc3a2c62", - "hash": "0xd33b517a15607a18d3c33ddc1f237aa61e9a3947b21287768ce3ba86d2495a03", - "input": "0x", - "nonce": "0x1b5895", - "r": "0xa1c92ec425dbb612821bbe6b1eb67efc61f1535216c020390d93fe208b75d06d", - "s": "0x60d70a99a9a6ed375cf0a27fb9b281efe0be46d57d66e87299bdaddaccaca679", - "to": "0x0f000db45a0f4320ac77c5ba21312ae52174326a", - "transactionIndex": "0x41", - "type": "0x0", - "v": "0x25", - "value": "0x24736a67654000" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x7586854ec236f3ef8e7e5c7cc55dd3b449feed98", - "gas": "0x11326", - "gasPrice": "0xd6455cd2", - "hash": "0x1827070bb19ea45e3bf9eec57ccc94690038337ada1bc618ab79eb21a8078dac", - "input": "0x095ea7b300000000000000000000000077edae6a5f332605720688c7fda7476476e8f83fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "nonce": "0x3ac", - "r": "0x56cc252d5c95397705254d0fddb0e8943f25c7871fe05ebfa46e364353f6f619", - "s": "0x22f9be91fbc204ec34d0a878e66bd5ea743cdcb1e5e591b91f2405f2a23c6b43", - "to": "0xfa417cd491632620a582851b07abf7e3447bba71", - "transactionIndex": "0x42", - "type": "0x0", - "v": "0x26", - "value": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x3fdd41c3622aa33227d42d87c6838aaa9dca0dcf", - "gas": "0x19e10", - "gasPrice": "0xd69f9dd4", - "hash": "0xc8d9083af83a6c8fa73051663d8a2c9d79195be21063c09066d39d562d1be993", - "input": "0xa9059cbb0000000000000000000000008476de5d91038c1015c73e6fec0a97d45d91ec180000000000000000000000000000000000000000000000000000000008ebb1c8", - "maxFeePerGas": "0x12a05f200", - "maxPriorityFeePerGas": "0xb2d05e00", - "nonce": "0xf41", - "r": "0x578055145aa121f1bd1b3c4b89ed6f1824fb80a474de8e59e1a6d8a5f2238fbb", - "s": "0x4ecba6e8255a8fb4cc0abad783836984608971cca76e37f7d77fcbedbe134bfd", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionIndex": "0x43", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x93228d328c9c74c2bfe9f97638bbb5ef322f2bd5", - "gas": "0x15f90", - "gasPrice": "0x9b04d3d4", - "hash": "0x7e1bbe3049928a58a967ff5188615b894fc8093d92778abcdedbdbdf9957c052", - "input": "0xa9059cbb00000000000000000000000041ea4e72b88a8e84b83b739f4092339d721574cf000000000000000000000000000000000000000000000000000000000ac9d740", - "maxFeePerGas": "0x2e90edd000", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x1312", - "r": "0xe139af5d1da3060d9d2ab5c1d5dd5872bc18547ee11ee520ba9e76b97ac04cb0", - "s": "0x76094d40297c5046e7a0fd0174aaae8861f9fc55aadbb3832126749717b05ea7", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionIndex": "0x44", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x8347cd390c696372aa5ac17865117d5521c5476a", - "gas": "0x19c6d", - "gasPrice": "0x7a4ab68f", - "hash": "0x75205100cde683dcb84a3b361f7320c0a0adad9f4c151a7088938db3a90c682b", - "input": "0x99e1d016000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000005c7bcd6e7de5423a257d81b442095a1a6ced35c50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001ad7b9392320000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a0000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000005120bce000000000000000000000000000000000000000000000000000000000511e68ef0000000000000000000000000000000000000000000000000000000000002105000000000000000000000000394311a6aaa0d8e3411d8b62de4578d41322d1bd0000000000000000000000000000000000000000000000000000000068a5cd170000000000000000000000000000000000000000000000000000000068a5fc010000000000000000000000000000000000000000000000000000000068a5ce73000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000001dc0de00410000000b00000000000000000000000000000000000000", - "maxFeePerGas": "0x7a4ab68f", - "maxPriorityFeePerGas": "0x56d6c92d", - "nonce": "0x1627", - "r": "0xf3b8b1720b9dfa3b1c0933702a14a51319d0f18801bf7e709ccabcb992ac2e3f", - "s": "0x492ca14316335f0c2ae6d0abcd537aba6eabce9697798c83ff524f3125b10c03", - "to": "0x8347cd390c696372aa5ac17865117d5521c5476a", - "transactionIndex": "0x45", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x91d40e4818f4d4c57b4578d9eca6afc92ac8debe", - "gas": "0x33450", - "gasPrice": "0x9b04d3d4", - "hash": "0x6a3001d1458aaae959847d930c1f1b4e813899c8702e5a3f7ea14123b633ee52", - "input": "0xa9059cbb000000000000000000000000124f9ec75369ea83cdfdb1d87c5874ca7f081107000000000000000000000000000000000000000000026d04ab7d750dfb350000", - "maxFeePerGas": "0x74e1881c00", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x47863", - "r": "0xa3cb3bb14756750d0afb69334bf38fcf9353693ab1e48e4bb349f71b8f7a965a", - "s": "0x4fd9ad5a80f6d2856721e68d490136a0ff7fb406f0187dcb19e4d0426270a0be", - "to": "0x6982508145454ce325ddbe47a25d4ec3d2311933", - "transactionIndex": "0x46", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [ - { - "address": "0xfc557ba572e71e4e2b7d63a5cf9c2f0d6420446d", - "storageKeys": [] - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "storageKeys": [ - "0x9ede93be0d8fc6a5eb9cf1c7345a85b7519d8487a727aef0c2f00ab966aa7716", - "0x75245230289a9f0bf73a6c59aef6651b98b3833a62a3c0bd9ab6b0dec8ed4d8f" - ] - }, - { - "address": "0x4585fe77225b41b697c938b018e2ac67ac5a20c0", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x702cd40275723fbecf854291f1eca58b5a0de7d378ea31ec006833fd99382dea", - "0x0000000000000000000000000000000000000000000000000000000000000049", - "0x000000000000000000000000000000000000000000000000000000000000004a" - ] - }, - { - "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000005", - "0xdc276a4f120117ad5ae6415d1c724b4f3a0e81f0ee6466e1392ca121b63123f2", - "0x99713ceb4322a7b2d063a2b1e90a212070b8c507ea9c7afebed78f66997ae15e" - ] - } - ], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x0fc7cb62247151faf5e7a948471308145f020d2e", - "gas": "0x34bc0", - "gasPrice": "0x5f6a09d5", - "hash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", - "input": "0x78e111f6000000000000000000000000fc557ba572e71e4e2b7d63a5cf9c2f0d6420446d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c42f1c6b500000000000000000000000000000000000000000000000000e6292767661e2a9000000000000000000000000000000000000000000000000000d16039177aa27000000000000000000000000000000000007f2d493f8910d1c97ad14a25e09620000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000068a5ce5bff000000000000000000000000000000000000000000000000000000000104e300000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x7151a9bf", - "maxPriorityFeePerGas": "0x3b9aca01", - "nonce": "0x8c7d", - "r": "0xcbc30e8040bc68e164f289d4b06de9479faa3a606014d6c6f7ba457ae712f9b3", - "s": "0x6691860adf9831eef8da3264136d40b5bd9e8d99b4c79d514cda13f99da916c9", - "to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c", - "transactionIndex": "0x47", - "type": "0x2", - "v": "0x0", - "value": "0xad9c18", - "yParity": "0x0" - }, - { - "accessList": [ - { - "address": "0x6b175474e89094c44da98b954eedeac495271d0f", - "storageKeys": [ - "0x995f3b129dd3291868ddb9cf202c75cd985227d50e309847fbab0f8da403b19c", - "0x35d7fb7665514f774d2c2df607e197eb8674b6e63d2638472758647a2e67406a" - ] - }, - { - "address": "0x60594a405d53811d3bc4766596efd80fd545a270", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x9ecf0b7b4087cf876a9696caf0f337e48f3ddf6a97759bd98730b0fb16d02a1e", - "0x0000000000000000000000000000000000000000000000000000000000000016", - "0x0000000000000000000000000000000000000000000000000000000000000017", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ] - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "storageKeys": [ - "0xf762dfe765e313d39f5dd6e34e29a9ef0af51578e67f7f482bb4f8efd984976b", - "0x75245230289a9f0bf73a6c59aef6651b98b3833a62a3c0bd9ab6b0dec8ed4d8f" - ] - }, - { - "address": "0x846484c4cd32bdc8cd8e64a63b51219bdab4e1cc", - "storageKeys": [] - } - ], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x234de29cc82f9ce20cdc71b8b4baf6d51f4a1a64", - "gas": "0x33808", - "gasPrice": "0x5f6a09d5", - "hash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", - "input": "0x78e111f6000000000000000000000000846484c4cd32bdc8cd8e64a63b51219bdab4e1cc000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c42f1c6b50000000000000000000000000000000000000000000000000049bff3124b7bb060000000000000000000000000000000000000034a36bf0c2444e000000000000000000000000000000000000000000000000000003f690eab89b022908ec8ec30000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000068a5ce5bff0000000000000000000000000000000000000000000000000000000000fd5300000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x7151a9bf", - "maxPriorityFeePerGas": "0x3b9aca01", - "nonce": "0x837", - "r": "0x1734b5653d3f44712d66a208cba28c0424d8d35f9861a3d05f0fd2d13bb0de", - "s": "0x54d30c2c0f05495108e63fbe6a5a01d4d55dcdcf399b3f1bbc94ca5c1e7c1e6e", - "to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c", - "transactionIndex": "0x48", - "type": "0x2", - "v": "0x1", - "value": "0xc71c18", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x22b0351d445840db59b97df3808dd642dcb17e96", - "gas": "0x4be58", - "gasPrice": "0x3bb9cbd0", - "hash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", - "input": "0xa00000000000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d3600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000278f7f1db3b9b5e000000000000000000000000000000000000000000000000000000002c5a0de9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "maxFeePerGas": "0x3bb9cbd0", - "maxPriorityFeePerGas": "0x17ea8bfc", - "nonce": "0x119da", - "r": "0x69d3709a625e6f6e87b756ce39d54d1f17d33f1e05f3def4c878547b48bb608e", - "s": "0x45123039f3cbd282d6364ffe704db550477d7c5085a6fe0038c614cbde5fec1a", - "to": "0xfbd4cdb413e45a52e2c8312f670e9ce67e794c37", - "transactionIndex": "0x49", - "type": "0x2", - "v": "0x1", - "value": "0x161bd0f", - "yParity": "0x1" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x46340b20830761efd32832a74d7169b29feb9758", - "gas": "0x55730", - "gasPrice": "0x77359400", - "hash": "0xa2a8edbe294afde748bf14aae5427b8af22a65d9e1ea8de5c410057d577a480e", - "input": "0xa9059cbb00000000000000000000000025637c1059b044c262cb1108c899cad44c8cd908000000000000000000000000000000000000000000000000000000001d34ce80", - "nonce": "0xec635b", - "r": "0x7f073b08dd1af9bfe6027f7cd4a6fc0e14a2af4ace9e492077701e1ede1e152a", - "s": "0x3faba817da0be1f93282cf3095c384f265d6d2d6ce3cbb8db72927933301ab9c", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionIndex": "0x4a", - "type": "0x0", - "v": "0x25", - "value": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x1864d150aa60111fb312a1b8f4cf8e6dabd3094c", - "gas": "0x5208", - "gasPrice": "0xd69f9dd4", - "hash": "0x1de9ccef004f5f226c9468fb6abdc40755e1e5c7ddfcf1dd4ea2cbb708cc2165", - "input": "0x", - "maxFeePerGas": "0xe158605f", - "maxPriorityFeePerGas": "0xb2d05e00", - "nonce": "0x15", - "r": "0xdf2e9e34d4ccb274fedde20ba4227fc5b05acabc5dce11af046d327c0e57d3c0", - "s": "0x74067cf58df3cb918444561a387aaee5112279d9ad2d2e49bc485906c6f2b79e", - "to": "0x0abbc482fbd91dbf413e3d6cc5622e03552ac13a", - "transactionIndex": "0x4b", - "type": "0x2", - "v": "0x1", - "value": "0x2cba482deeeb28", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x5962604feb383ca4164107583d147b2aa1d86d54", - "gas": "0x5ca67", - "gasPrice": "0x5f6a09d4", - "hash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", - "input": "0x721c651300000000000000000000000000000000000000000000000000502072edbac1fa", - "maxFeePerGas": "0x6458e75e", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0x6", - "r": "0x669340e86385fcde0e093f926561a6deb41f9643c256562771700d17eed3ab86", - "s": "0x40c8fba726529149dddf62d9d71bf82016969557e857c4c6805a942da1fef178", - "to": "0x2401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", - "transactionIndex": "0x4c", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x663b7c32c90f6c3fee8e8eecced18c007d69193a", - "gas": "0x55730", - "gasPrice": "0x419ca4d4", - "hash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", - "input": "0x791ac94700000000000000000000000000000000000000000000eeba4b9f0d5bdd105a3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000663b7c32c90f6c3fee8e8eecced18c007d69193a0000000000000000000000000000000000000000000000000000000068a5ce5b000000000000000000000000000000000000000000000000000000000000000200000000000000000000000010ee9f68ee4e4d311e854ae14c53f5b25a917f85000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "maxFeePerGas": "0x64b53fc4", - "maxPriorityFeePerGas": "0x1dcd6500", - "nonce": "0xae", - "r": "0x7cc510f75dfe6f1ab9ff2d963e9a6091d28cb91c35755f6dac7e3f9d178fe5af", - "s": "0x2c9df5bd35d81991db51ced0de82755177ab4559f540bebbab7fc4baf7f81021", - "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", - "transactionIndex": "0x4d", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xb6839dc14ace0934a2c422369aa34b39b8c534b1", - "gas": "0x5208", - "gasPrice": "0xb2d05e00", - "hash": "0x9ffbef1785c43203687d9ecebc2e1dc67bd4b69337d9576d9992039d328ba5c3", - "input": "0x", - "nonce": "0xc0c", - "r": "0xfb30b51d7e1efc3354c0f34c4f60c150ab3a2d02935fc2ae8940f8c5e1e02ccf", - "s": "0x66978516f6e11d371c3887861859eeb0bd2f43719ad2af2759550d9b480e6fbc", - "to": "0x2fd2ea3b0545bf12dd03ef6274aede12274da9a6", - "transactionIndex": "0x4e", - "type": "0x0", - "v": "0x25", - "value": "0x117723a0ec73170" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x91604f590d66ace8975eed6bd16cf55647d1c499", - "gas": "0x5208", - "gasPrice": "0xae1aec40", - "hash": "0x2cbad0ad9584888bb5ad6d856ea602fa2a3afe764252499f2de6afe2a69ffdae", - "input": "0x", - "nonce": "0x25c92", - "r": "0xb4fde1e62fb081477772b495f213f666d7c6357d790537aeba4312e5003f6806", - "s": "0x596dcc6cb828ad72d6883d5dc7625707c7117a947eaebc011e74d23f18bf15c1", - "to": "0xfbc09172b41c69aa617629847e5d80e35981932d", - "transactionIndex": "0x4f", - "type": "0x0", - "v": "0x26", - "value": "0x15830edf2a17f" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", - "gas": "0x15f90", - "gasPrice": "0x9b04d3d4", - "hash": "0x88871027255d345a9f5887127c9acb33704c9a1db48142f8185eabceeab719e1", - "input": "0x", - "maxFeePerGas": "0x2e90edd000", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x23dba0", - "r": "0x407e491945a87a4ac61e7d868fcf6caf4e6ac689420938f655373fe139370ab2", - "s": "0xb0062b1dde70fc52b751679622f903866e940b7f0ca4cf38b7e66c33c40083e", - "to": "0xe47d43dcd14e9fcaf96c232dae3f84d81c1ac725", - "transactionIndex": "0x50", - "type": "0x2", - "v": "0x1", - "value": "0x3ff2e795f50000", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xa9ac43f5b5e38155a288d1a01d2cbc4478e14573", - "gas": "0x33450", - "gasPrice": "0x9b04d3d4", - "hash": "0x5803753b8b9f1a604f6590849d3a9cd2a7c0f6fb6334d02a01ba5d66206c450a", - "input": "0x", - "maxFeePerGas": "0x74e1881c00", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x484c8", - "r": "0x999edff33e2b883e82f520799806f32706a6c08e6bb69f540a92cb80f350a371", - "s": "0x341156f7150f3e6e095e9e2ae09d54cc2675428362d666502dccbc16aeecfa3b", - "to": "0xe337299f1d8f5a249147bf2e795d612b891ab90e", - "transactionIndex": "0x51", - "type": "0x2", - "v": "0x0", - "value": "0x247624e5547000", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xbe19155113cbfa0b0555d6c316b18133b10b312d", - "gas": "0x9e73a", - "gasPrice": "0x9b04d3d4", - "hash": "0x09ebf2e04dbaab1d0ad74c275b776c6398084d5558290d804063d0a6f477c61e", - "input": "0xe63d38ed000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005600000000000000000000000000000000000000000000000000000000000000028000000000000000000000000f05cd1707fe94f3228296aa26247bae9be7fead6000000000000000000000000bfd5d536458507c5f911493dba9e88badc96321b000000000000000000000000d30dbe4c7860a731275ad989da2c172ddfaa1607000000000000000000000000bc79eaaa52ce243036c8d0a0356f19d5bdf8c169000000000000000000000000efadeab0116e40d6d73817cd4f6a127c4bae31c8000000000000000000000000c462622ee05fe15e0b7ea4023b98af160962d9fa000000000000000000000000364e11071689ca8b51ec67b8095047609272fb4700000000000000000000000022fc139c1801a3fb34c10ff9bf847c99669a51d7000000000000000000000000cd9a2ee841649898664debac0371b76977c8d4460000000000000000000000000ed66c88c463c26099e97c4a07754f7d2b5bcd8200000000000000000000000058d80fa6ff132b316aedf9d6e3cd5697ee068ed6000000000000000000000000526ca4eb907f9dbceb79d34aa2bb7ea7760d58e300000000000000000000000011fcc097ba2414b9f7246eaa582c259326738c78000000000000000000000000fec18ccf7b4f3ae8461e16d1b406575a351037700000000000000000000000000e17d638bcc412ff787b7889a410ac9096d18490000000000000000000000000aac4df958bab3b1ec483120620ad93106c0bed6a000000000000000000000000f4a2a04bad3209c98eed8ab3be7a5cccc1f32148000000000000000000000000760e40919aa8e26a98e9c68086ef84080d3bec4f000000000000000000000000d46117ca6716960e52df84bc4e45a0ca1bcdc63900000000000000000000000061ec939e331e2de8529d25911f21060685ba3e43000000000000000000000000ef4dc27fe6a0701fab7de0762b4c81db90a2b783000000000000000000000000252a9e7f3b79d611620504c8cacf7a882b80d5830000000000000000000000006a4846613810406b426cedc3afdb00dd8e838cbb000000000000000000000000d2c2275d30f35a821b51a7a2399100a65c6449a70000000000000000000000000447f6e60aa071cca64081b76cede63e7f0ad6d40000000000000000000000001291eba10a206c59cf188aa8967905ac2bc9caee000000000000000000000000fefce0d7581dc91dab6cbfbdd9eb673af2e796b8000000000000000000000000d9208a1803dff14cc05f64c42c8c4d4fb1cbecaf00000000000000000000000010dca1e9f47dca5fe0152025e0d2757ae5ee50ac0000000000000000000000002f29bc446409e8ee5b29b9542b2e56a6fd07d04b000000000000000000000000ba68312ba97084a9ab6fe926bcc5ffdec37646fa0000000000000000000000008e296c68e4fda7ea1a54f50fd9a23513c80c5b75000000000000000000000000d8f5e763d0bac8c138d174c2d3db7d8b32f87ea2000000000000000000000000d8305c41b5e1bb19c1ea24e67bfebb4b9e207d4100000000000000000000000070b13b1045202734269f8a3ce34279d8e06ea7660000000000000000000000001c8969bb448abb87a722c57b6bbc76cf0de71b1d000000000000000000000000cda768814f3285c224dfce613d82b6e0bb1a7c42000000000000000000000000792132869978e58d372d5f5c30e2ebd1cac192b6000000000000000000000000af87358a5a9600afcfccc745b4e81a75f6cb7d610000000000000000000000008bbf3b5d640f89c6e07d1b081ecb8662f022c45f000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb92000000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000030d98d59a960000000000000000000000000000000000000000000000000000030d98d59a960000000000000000000000000000000000000000000000000000030d98d59a9600000000000000000000000000000000000000000000000000000354a6ba7a1800000000000000000000000000000000000000000000000000000354a6ba7a180000000000000000000000000000000000000000000000000000039bb49f599a0000000000000000000000000000000000000000000000000000039bb49f599a000000000000000000000000000000000000000000000000000003e2c284391c00000000000000000000000000000000000000000000000000000429d069189e00000000000000000000000000000000000000000000000000000429d069189e00000000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000004fefa17b7240000000000000000000000000000000000000000000000000000054607fc96a60000000000000000000000000000000000000000000000000000058d15e176280000000000000000000000000000000000000000000000000000061b31ab352c000000000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000000000000000000000000000853a0d2313c000000000000000000000000000000000000000000000000000009b6e64a8ec6000000000000000000000000000000000000000000000000000009b6e64a8ec600000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000000de0b6b3a7640000", - "maxFeePerGas": "0xa7c2cc55", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x663", - "r": "0xe58fbd871ef95c343a9ffb66333c54cd37adbd44948669c48060a41c432ec119", - "s": "0x1596b5c1246cf247ff386cd0b60002929768e4ef326c95a2e49287cdde2d3d51", - "to": "0xd152f549545093347a162dce210e7293f1452150", - "transactionIndex": "0x52", - "type": "0x2", - "v": "0x0", - "value": "0xafb15aeca8720000", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", - "gas": "0x5208", - "gasPrice": "0x23cf3fd4", - "hash": "0xd20af84c937b6bfb1cbd0dbcde686c9bbdd6a3904257523bba99bd50e879f8a1", - "input": "0x", - "maxFeePerGas": "0x23cf3fd4", - "maxPriorityFeePerGas": "0x0", - "nonce": "0x2c5cdd", - "r": "0xf1a1330a93e743c1af959f8ab5f6d8ad96271533389cf78a024757f925d09524", - "s": "0x7e735935043383326086dd91d60b08c7790338d940b229ef2ad139b75b1353b7", - "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", - "transactionIndex": "0x53", - "type": "0x2", - "v": "0x1", - "value": "0x2d852ce936f60", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x7d7e377ee0168ddb578ef10661827cf1f71a6712", - "gas": "0xb491", - "gasPrice": "0x5f6a09d4", - "hash": "0xef162cf825f7bd785fd8229e52972e62855b7d44dcdd3038990fd95625a9dc56", - "input": "0xa9059cbb000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43000000000000000000000000000000000000000000000000000000002fb9b660", - "maxFeePerGas": "0x9502f900", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0x0", - "r": "0xd49644b179f2d9aac7beed64ce8ceb08603db6e0ac461ad29a8c1c5cf4d3d824", - "s": "0x3d11453483e0a2995a34010a69ec280547607b598b91fc82491ff9cbad3d949c", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x54", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xf8ae00151ae5c2b5d430ab4e9dab01a770c1fca9", - "gas": "0xb485", - "gasPrice": "0x5f6a09d4", - "hash": "0x6f4c0ef6cf1c52b0261982d2c8bdfc3f9073dd8af06ffdd253d5b3e49d3152cf", - "input": "0xa9059cbb000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43000000000000000000000000000000000000000000000000000000001dcd6500", - "maxFeePerGas": "0x9502f900", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0xb", - "r": "0xa12d01cb9fa007e26d0bd14e0a0023adbce3266b9c41345a2cab935bd5f1125d", - "s": "0x4abc115b7602f5a366827b7d646f582b418cf55d79c82447bbb269c141d8ec93", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x55", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x01884eb29311cf4fbbf59465aff0fbd123f84713", - "gas": "0xb485", - "gasPrice": "0x5f6a09d4", - "hash": "0x31109524218b0f4e2f747b5163bd532e63521b998bff69fb07fa44cb68a09298", - "input": "0xa9059cbb000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43000000000000000000000000000000000000000000000000000000000c1f0700", - "maxFeePerGas": "0x9502f900", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0x0", - "r": "0x58ea7af68f5bba2fa3a2541668f7d03e8f465cd584359ca163535b63d18fe176", - "s": "0x329bc5cf61a603dc4a36b51ff69d2bd9de531fc9f666dac13e1f25ea64e1c80d", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x56", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xeb5fb7ce4528ee42bf2c7765ae70ca1deb2ef09c", - "gas": "0xfde8", - "gasPrice": "0x4fb1722d", - "hash": "0x74f20b477ad72c790aa0a5742daf4aeadb1fbbd0edcfd74490f4ea9ec32d9a29", - "input": "0xa9059cbb000000000000000000000000203ff9f3e2af2ceb4dd62914af2bdf8ebfc5326400000000000000000000000000000000000000000000000000000000b2eb3a55", - "nonce": "0x0", - "r": "0x4e3a9dd3a0ecdf4aee14e25901da20fee27cc09df1308fa404483fcf51f8534b", - "s": "0x2ece62b2787333df6fbcc117335d7f35487fff5fe8a5b883156e349f980286a3", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x57", - "type": "0x0", - "v": "0x25", - "value": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x0e71589abe9d1215535dc94c85482fe5954fdac9", - "gas": "0x5208", - "gasPrice": "0x77359400", - "hash": "0x9cc25ee19cb4404d4bbeb96d4f9e9ceefe81ba8245f0f7c01a266900f9b4e745", - "input": "0x", - "nonce": "0x0", - "r": "0xbd8ec8a907255d6a3f36f0c12649e7921067b90bcfb07ddb889bdde4d73ed0dd", - "s": "0x68404b6c46df8c56d373c68f35c09e2543113a83afc1bc5abfed607ca5028820", - "to": "0x0b7342a7af6bf6cc0ff8909ba1d70770863c74b5", - "transactionIndex": "0x58", - "type": "0x0", - "v": "0x25", - "value": "0x5d55309626b000" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x21f2f76af55060df2a0fba013d4dd9d9f8ab2dea", - "gas": "0x4460a", - "gasPrice": "0x5f6a09d4", - "hash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", - "input": "0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000068a5d551000000000000000000000000000000000000000000000000000000000000000309050c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000006f4cc3821aa200000000000000000000000000000000000000000000000560a5b0a95e8d74b5ce300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bc2ecbe2195114b82f03680ed4270fa7008f3be0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000fee13a103a10d593b9ae06b3e05f2e7e1c000000000000000000000000000000000000000000000000000470de4df82000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000021f2f76af55060df2a0fba013d4dd9d9f8ab2dea00000000000000000000000000000000000000000000000006f05b59d3b200000c", - "maxFeePerGas": "0x6458e75e", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0x11", - "r": "0xacd0dd0c3dccb80ba925acf6772dff577c648476339758a60ccff48e2e272eed", - "s": "0x11a0782ff70ef6e3eb0e27c9c006a6610d42b5fbb514bc0def5d349d7dcd1540", - "to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", - "transactionIndex": "0x59", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x930a46935042d35cc4393ff5f9b9bf9f2e3afd09", - "gas": "0x5dc47", - "gasPrice": "0x2824a9d9", - "hash": "0xb903093efd1a45a2869f91f0169c3113ccc44fc9a70268af055392b6f4a6dece", - "input": "0x501d976c000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000013000000000000000000000000967bdfb1dd57308eb3e6910fe4357178eb6c6c6000000000000000000000000035ea699b892e9ce7ebfbcd2bbfaaedb2f17a5ad1000000000000000000000000ae650050e4264e3462df71c1f9d3be9afe311009000000000000000000000000a34e4aee609c09cef1e414a8a7123d1027451c8b0000000000000000000000004fb5e5ef3a1b036a49557fedcdefee373d831f9600000000000000000000000050d83e000fbb2bcd539125a7efc85fbca69c3550000000000000000000000000c30b83c943e25639102e6a5c982f1d572aa7c437000000000000000000000000fedfd8dc267cab022b9eec1c7d523454c9cd3ca3000000000000000000000000647d7d88cc316900642f45c080dc046edd5b113f000000000000000000000000816f3011bf8f3bf8412f5618b3627151bd126893000000000000000000000000683684277e66c5425af1d94ed3d90f8098267934000000000000000000000000d8ca026ad2d3cc48b06176c8c12f7d208794dbbc000000000000000000000000efa955acfef6a649f0a97bba849b0524f4dab49f0000000000000000000000001b01bc11993c567b7c0326620a6d36a55c8cc2280000000000000000000000007f1dcbe37bdb8c870c239f6cbc3f1c46de1b23e70000000000000000000000003ed076bbe73ca46670ad067e435d25c7709d6cbe00000000000000000000000093a495092b48db8b4e67d5b1020cc84fe67a7813000000000000000000000000da62185fe293c5a1dfd5ac315808b2de69cc88590000000000000000000000005183993ca2258547043ca96e41d3be2e4d1aeb38000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000001f54c17737c0fa60000000000000000000000000000000000000000000000000065e28cbf2c4eeb0000000000000000000000000000000000000000000000000008ee87c9450eeb0000000000000000000000000000000000000000000000000011121f3e25500000000000000000000000000000000000000000000000000000ae01f88295b7b400000000000000000000000000000000000000000000000000a1b48f9398c0000000000000000000000000000000000000000000000000000de0aa289343389400000000000000000000000000000000000000000000000000f412811f4a949700000000000000000000000000000000000000000000000002297e4b42c9397a0000000000000000000000000000000000000000000000000100cd90b2a953d20000000000000000000000000000000000000000000000000032fb70a4763390000000000000000000000000000000000000000000000000069ec1e4be1d781f000000000000000000000000000000000000000000000000015414782ca3d3e8000000000000000000000000000000000000000000000000034f026815219ee10000000000000000000000000000000000000000000000001449c67e0c5ed81f00000000000000000000000000000000000000000000000000769645a87bfaca000000000000000000000000000000000000000000000000000f4cce904020d00000000000000000000000000000000000000000000000000083734dd0b0800000000000000000000000000000000000000000000000000000a7553350ebc000", - "maxFeePerGas": "0x2a9e4d18", - "maxPriorityFeePerGas": "0x4556a05", - "nonce": "0xad1b", - "r": "0x2ff3eb498dca54f79bc122c1a38befb0ae7d726298b24b53134f5d90e0ad15c9", - "s": "0xda0884bfea67619d8760ff5967980e3760d7d8ac49eb9a5a0694c66cd3b5738", - "to": "0x5b14db1af7101ec1dafa828eaa774e13161efb53", - "transactionIndex": "0x5a", - "type": "0x2", - "v": "0x0", - "value": "0x373334a20351e1d8", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x25b944a4dc81077e483bf59f618974e177627593", - "gas": "0x5e56", - "gasPrice": "0x71ebcf1c", - "hash": "0x18663217afb22c7ab2918545d837875df6d98706ac7227a8a08b4b0cc850c9d8", - "input": "0x", - "maxFeePerGas": "0x774fd708", - "maxPriorityFeePerGas": "0x4e1c8f48", - "nonce": "0x4c", - "r": "0x33e08a09416167ed9542187ce13dde704e119ae4a3cf36b6c45c2cf70989a329", - "s": "0x7944ce143460d2a5805ce7db21bb4aa9e2563d10197928e1c1a6758dde65a674", - "to": "0x910ac37b45718838b35ba569dd926904274b682e", - "transactionIndex": "0x5b", - "type": "0x2", - "v": "0x1", - "value": "0x168478c61f0fcc8", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x896cdba2559cfdeec8a2356bb36c92fab614a4cd", - "gas": "0x11056", - "gasPrice": "0x47094b30", - "hash": "0x889b19404fe581f2b094bc9d159d0d1599870ad9cf39cb330e68a2777fb91d5e", - "input": "0xa9059cbb0000000000000000000000009ba8071de40b13c3b4807c57c2b554fb3b9e0b2b0000000000000000000000000000000000000000000000000000000004c4b400", - "maxFeePerGas": "0x510fec66", - "maxPriorityFeePerGas": "0x233a0b5c", - "nonce": "0x23", - "r": "0xb4284dd3d709cf625a29e1a18fc95f8cca80c9ab5cfd8a2b1fcf4b9f03f1b38a", - "s": "0x534e996d0a8b3067d516944f466b38b566fe81c62c9a9fc2975aa1306cf01766", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x5c", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x9b03a65530b8f9584beabe8c6d64d3d4bcadd3af", - "gas": "0x11056", - "gasPrice": "0x47094b30", - "hash": "0x0f6c5aec4835ffbfab3db13c5a4fdd44e96b7185df23626e8ea1cba5739c6649", - "input": "0xa9059cbb00000000000000000000000054519c53bc21bc7739464850268f1b7d2b3317a00000000000000000000000000000000000000000000000000000000000048c10", - "maxFeePerGas": "0x510fec66", - "maxPriorityFeePerGas": "0x233a0b5c", - "nonce": "0x0", - "r": "0x1d33b9aea3bbb9d42fc88c647b6c3dc299a1ad39f255c0a16ed491607f6a5f59", - "s": "0x383d0213b811e26df102533477c7381311b800d72cae99852ba10bae83801258", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x5d", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x7a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e", - "gas": "0x72808", - "gasPrice": "0x9b04d3d4", - "hash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", - "input": "0x846a1bc6000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000e35fa931a0000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000068000000000000000000000000000000000000000000000000000000000000006c0000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000007600000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000e35fa931a00000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000004d0e30db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b300000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d6660000000000000000000000000000000000000000000000000000e35fa931a00000000000000000000000000000000000000000000000000000000000000fcc980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000455534443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009696d6d757461626c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a307863653136463639333735353230616230313337376365374238386635424138433438463844363636000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c5000000000000000000000000000000000000000000000000000000000000000400000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000005a0000000000000000000000000000000000000000000000000000000000000072000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000ac000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000104414bf389000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d20000000000000000000000000000000000000000000000000000000000000064000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f400000000000000000000000000000000000000000000000000000198c7cbc2de00000000000000000000000000000000000000000000000000000000000fe77800000000000000000000000000000000000000000000000000000000000fc60c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000104414bf3890000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d20000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d0000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f400000000000000000000000000000000000000000000000000000198c7cbc2e000000000000000000000000000000000000000000000000000000000000fe7d80000000000000000000000000000000000000000000000001a80ae654dafe92d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000010000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000242e1a7d4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000000c509b86228a6c23bbba872ac4345d5a000000000000000000000000000000000c509b86228a6c23bbba872ac4345d5a0", - "maxFeePerGas": "0xa4203ac4", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x5", - "r": "0x88364d0c78f354f57143abba2c2356e291537d4dbdafc8399e8fc1d8885f9ab", - "s": "0x521d5fc4b4fdd533014b933805667adba546dd8cf1136d9d84e195298964e308", - "to": "0xce16f69375520ab01377ce7b88f5ba8c48f8d666", - "transactionIndex": "0x5e", - "type": "0x2", - "v": "0x1", - "value": "0xf886307c8cb7", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", - "gas": "0x5208", - "gasPrice": "0x23cf3fd4", - "hash": "0x09bee4a68da1a0248abcb8b48ef7bd15bdf4c81e2183503d5d4de68b5f558a08", - "input": "0x", - "maxFeePerGas": "0x23cf3fd4", - "maxPriorityFeePerGas": "0x0", - "nonce": "0x2c5cde", - "r": "0xe3742c154d013763c273cb775b968d1d4ba5e1a9ff1f72be6e44ad9c9f73794", - "s": "0x1867c5d750f11b533790699e71af9245d522bc241605f8bb33cb213cdbda058c", - "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", - "transactionIndex": "0x5f", - "type": "0x2", - "v": "0x1", - "value": "0x1d54a4fb28b60", - "yParity": "0x1" - }, - { - "accessList": [ - { - "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", - "storageKeys": [ - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", - "0xcb9bc6901b8328baa93d5336681aa8492517a2cac8a3fd7c32ab3c0d6bafd571" - ] - }, - { - "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000006", - "0x0000000000000000000000000000000000000000000000000000000000000009", - "0x037199b0744c1ed84f0f7ae52d5760694aa3b29cff7b52bc1088ada5714d2980", - "0x057b09ddd84d79cc63e69fb06535985afb771ee7afe4ea34abc9ef7c96980d3a", - "0x0e1b053921947bb61bee9f4bdc68bd6cab8cd39676a3cd25cbd3106515a600eb", - "0x455834699c5564190d48058e2d2e544a0b4e2838253a203e6be1389c54aae4f5", - "0x47e689df7d1790c4c0e3b3e7a7038d6249f247630a93895e36180f067cbef1c4", - "0x64ac251e964da0f5b6d07d47428fa7c41487ff293e1deb77eb407c15028dab0c", - "0xee4d6b3f5bff5ce92442e4d4a360ae064af5d0d67d9b4da1508bc4e462eae046" - ] - }, - { - "address": "0x6b175474e89094c44da98b954eedeac495271d0f", - "storageKeys": [ - "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", - "0x825c54d62ddb4b2cdc677f01a756014816eb6f8131b86522cfc1169bfa29047b" - ] - }, - { - "address": "0x6c063a6e8cd45869b5eb75291e65a3de298f3aa8", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x0000000000000000000000000000000000000000000000000000000000000008", - "0x0000000000000000000000000000000000000000000000000000000000000030", - "0x75f96ab15d697e93042dc45b5c896c4b27e89bb6eaf39475c5c371cb2513f7d2" - ] - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x5e0e0bf7c6a341550890f20eb2bee1f1fdc1279dc3d08bf94ec14b58b56d0145", - "0xa650ff812770bfb6adf143a5d896d2d2729208a6475246e58dfc98228ced296d" - ] - }, - { - "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", - "storageKeys": [] - }, - { - "address": "0xa43fe16908251ee70ef74718545e4fe6c5ccec9f", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000006", - "0x0000000000000000000000000000000000000000000000000000000000000007", - "0x0000000000000000000000000000000000000000000000000000000000000008", - "0x0000000000000000000000000000000000000000000000000000000000000009", - "0x000000000000000000000000000000000000000000000000000000000000000a", - "0x000000000000000000000000000000000000000000000000000000000000000c" - ] - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "storageKeys": [ - "0x68e65bda2915772569224994d285f0b459d64f53fd952966225bf9b4df32f338", - "0x6fb7173931c795313ec7b4fe9a203cf03726c329ceab0d00c114fca68d3c6ff9", - "0x7eb73af6c6f0a8c693c0b4dad74e68b9f2946a2cdbe741b0448caf20325be06f" - ] - }, - { - "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", - "storageKeys": [] - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000003", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x000000000000000000000000000000000000000000000000000000000000000a", - "0x1f7a81d2f1f4a077ecb92cebd9b046a5c533ba2337c06dbba67afa748fca415a", - "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", - "0x825c54d62ddb4b2cdc677f01a756014816eb6f8131b86522cfc1169bfa29047b", - "0xcc5b58d8f9820bb78bf36fd49ecd41d77319a6d68107afe17a8af7d504d30666" - ] - }, - { - "address": "0xe28b3b32b6c345a34ff64674606124dd5aceca30", - "storageKeys": [ - "0x618059526d7d1bb5608c8e3a0740d1f656fa8a764ecca600a8e0e3e0c313ce66", - "0xa44b731602b5f99009ea5bf8fe3e732f61d79da751ded1d6123bb19e45289151", - "0xa5a0ef7d3eef8b32f68dbfdaa69010f4ab6b591bbccd25e4966c64af9ad30500" - ] - }, - { - "address": "0xf3fe03cd60d1f138ebc106ce9575475100ebfc9a", - "storageKeys": [] - } - ], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xc7899ff6a3ac2ff59261bd960a8c880df06e1041", - "gas": "0xb59e4", - "gasPrice": "0x2816807a", - "hash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "input": "0x13d79a0b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000006e000000000000000000000000000000000000000000000000000000000000000080000000000000000000000006982508145454ce325ddbe47a25d4ec3d23119330000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca30000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca3000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000092ee6eb40000000000000000000000000000000000000000000000000000d71eadcb709d000000000000000000000000000000000000000000c481865574c0da3bcecb0f000000000000000000000000000000000000000000000000000b723f9c9a2a34000000000000000000000000000000000000000000000037483622c9d325650b000000000000000000000000000000000000000000000000000000003ca941af000000000000000000000000000000000000000000000008b50bca4aa290943d000000000000000000000000000000000000000000adb53acfa41aee1200000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000005000000000000000000000000511cc062c4257664427654b232dc636a424e4382000000000000000000000000000000000000000000000000000000003ca941af0000000000000000000000000000000000000000000000372bc6cdded5e5ef9c0000000000000000000000000000000000000000000000000000000068a5e7abf3ef4e1477de213e3c0a9dcc25112f3c62d65283db00bab8de61147b78f9a07b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000003ca941af00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041ef90ab93bc9a3ed02a462614a87353a5b4a8329b96bc1cf81b082f2f355ccad61945dcdad942a02c1feede9d3b9d720762200aea92f2d11e6815fcdbe3f5e9301c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758000000000000000000000000000000000000000000adb53acfa41aee12000000000000000000000000000000000000000000000000000008ab9a59eb804c280b0000000000000000000000000000000000000000000000000000000068a5d54238ea81af132723b40e895ea753af184bec74662c1e007e1a1225186b4f0d280100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000adb53acfa41aee120000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000004104517b883e0c24b47bd264a734f0b6986db0dd8f6790f5fa4d146b9d226018ab28d316b0da91f7e21d241ffbdd5fa79a018410548b909a46974b3e1c834b6de51c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001200000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000a43fe16908251ee70ef74718545e4fe6c5ccec9f000000000000000000000000000000000000000000ada5ce2d2204f16ed6fa3000000000000000000000000000000000000000000000000000000000000000000000000000000000f3fe03cd60d1f138ebc106ce9575475100ebfc9a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000284d41aacaf00000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001e4128acb080000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000724b20e5c768e2f00000000000000000000000000000000000000000000000000000001000276a400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001040000000000000000000000000000000000000000000000089f58be7673e97ea0000000000000000000000000a43fe16908251ee70ef74718545e4fe6c5ccec9f00000000000000000000a404c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2022c0d9f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000724b20e5c768e2f0000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa80000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", - "maxFeePerGas": "0x992e25a8", - "maxPriorityFeePerGas": "0x44740a6", - "nonce": "0x386a0", - "r": "0x9aed6526234382282b198649baed64ad50fdc5b96f003b0d64648e133dff7b8c", - "s": "0x573c5764c88d615469182b32d6438d130b5cbcdd6f4f50c777bbd309a829ca26", - "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "transactionIndex": "0x60", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x2f091462316f650ca24dea5b8e90f9657af6915d", - "gas": "0xfb2e", - "gasPrice": "0x479285d4", - "hash": "0xbfbbdc3e43e8e7a9629b2d3e2a7c5c998451d31542b92bab59a2de5aeefefea9", - "input": "0xa9059cbb000000000000000000000000559432e18b281731c054cd703d4b49872be4ed530000000000000000000000000000000000000000000000000000000021ca5c30", - "maxFeePerGas": "0x16b969d00", - "maxPriorityFeePerGas": "0x23c34600", - "nonce": "0x180", - "r": "0x959faf52c8891f468fbe2608b9dd9657d1a3acd95cc4e626318d2590b2b52e38", - "s": "0x49a8f64312ffc980c822ecd050914e048f8cd8fbe34c3cbcf3081299d4376c81", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x61", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x317d2da746d1360f4c113e7962a33394db2a1a4e", - "gas": "0x5cbfe", - "gasPrice": "0x9b04d3d4", - "hash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", - "input": "0xc7c7f5b300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000116c5c2e85990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e0000000000000000000000000000000000000000000000000000000000007596000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e0000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000004563918244f4000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000030d400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0xa7c2cc55", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x26", - "r": "0x62320ac2b00cedf98d4968904cdc425a6277e01b007c6bb4d499ecc443d75c36", - "s": "0x6a642d33dce74b308bced5d8a4aad693257f70bdb067c44821956aa7c345b82f", - "to": "0x1958853a8be062dc4f401750eb233f5850f0d0d2", - "transactionIndex": "0x62", - "type": "0x2", - "v": "0x1", - "value": "0x116c5c2e8599", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", - "gas": "0x5208", - "gasPrice": "0x23cf3fd4", - "hash": "0x854a247acfde5a5346f137d645aafce7266476f1ca57bbc56ff4d451686990d1", - "input": "0x", - "maxFeePerGas": "0x23cf3fd4", - "maxPriorityFeePerGas": "0x0", - "nonce": "0x2c5cdf", - "r": "0x9b3abd0ede8ec80593ae00236ddfc40f156754c88c35c6adb60d561400b67b35", - "s": "0x60f6718fce2ffd2f654a098555b5f6bb1e94c4089803827fe6b9a72bd320617d", - "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", - "transactionIndex": "0x63", - "type": "0x2", - "v": "0x1", - "value": "0x19a881fe60260", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x3908f89b206af269cd10520a39683d3e9b709a0c", - "gas": "0xf77e", - "gasPrice": "0x47094b30", - "hash": "0x34c4b2585880bbbfd2bd41d407ab91c487ab3ea1d740bb10051a2d94eae979b7", - "input": "0xa9059cbb0000000000000000000000008fa4103428737fc17ba6566285492b19f4a42c3300000000000000000000000000000000000000000000069420a776ba5cab0000", - "maxFeePerGas": "0x510fec66", - "maxPriorityFeePerGas": "0x233a0b5c", - "nonce": "0x635", - "r": "0x6e89dceefc3e5721f20af7ecf0c3bc94b13c87f1f554c28d9f77d58d261fbabd", - "s": "0x699fc9f6e49f9c7c3015c6edcea72fb07bca3ced8f9a2a13dc01b42ff5c82051", - "to": "0x699ccf919c1dfdfa4c374292f42cadc9899bf753", - "transactionIndex": "0x64", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x0d0707963952f2fba59dd06f2b425ace40b492fe", - "gas": "0x19a28", - "gasPrice": "0x5f6b1b44", - "hash": "0x881dde515af25e26e76a9f4fd56f92172e576868db77f8d0edb19546d055a6ff", - "input": "0x", - "maxFeePerGas": "0x943dace5", - "maxPriorityFeePerGas": "0x3b9bdb70", - "nonce": "0x80d17a", - "r": "0x1d8001a2513b593efe3683fddc8b2039db609193993ac6449c2c1d8f122d7138", - "s": "0x109c7a8fff5c9eead57bd75a61494ffa68d0ea132ab8890aa23c395630e4f8dc", - "to": "0x5c872bc1cdb41bc1467960e2c3b59a09cc93da05", - "transactionIndex": "0x65", - "type": "0x2", - "v": "0x0", - "value": "0x15104a419790400", - "yParity": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xfb19ffd1ff9316b7f5bba076ef4b78e4bbedf4e1", - "gas": "0xb5ea", - "gasPrice": "0x3b9aca00", - "hash": "0x7603ff263930ac4706dfc190bfa96bba194ec04561f686515626428442cfc3bc", - "input": "0xa9059cbb000000000000000000000000e76392fd5215a3e6bd794d7a31a3c8294c1eb18c0000000000000000000000000000000000000000000000000000000006359235", - "nonce": "0x4c8d8", - "r": "0xde668d1e6aa59075da47060db6d56f942bf17d48578cf8e0bce27c8037acf285", - "s": "0x40518e51eb91cfb7647820407194b60be480da4a6c0679c9f90a0dee872edb51", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x66", - "type": "0x0", - "v": "0x25", - "value": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x3814e8720156e8259aeef2803eb3fbb3cdddc549", - "gas": "0xfa1f", - "gasPrice": "0x9aa98162", - "hash": "0x7e99dbbc2acdc35b5ba4d4d460849fb57bb4fe43e62d47b34c18a922e5b9afac", - "input": "0xa9059cbb0000000000000000000000008ab12dde8535538cc1759f011ebb45856f0a8acb000000000000000000000000000000000000000000000000000000000aba9500", - "maxFeePerGas": "0x9aa98162", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x0", - "r": "0x6e1cbedf81a45effcd2bde0686bab46aba7d1d7d3eaf400550c83fbede6f6016", - "s": "0x3e0560385c9b7fc8fe6dcee8b8eb04b38de32b75e3bcd1cb18c50c40a09fc172", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x67", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x2a008273cf9c4276e3f85311ebab58b7b74fa1bb", - "gas": "0x493e0", - "gasPrice": "0x2c523e86", - "hash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", - "input": "0x7ff36ab5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000002a008273cf9c4276e3f85311ebab58b7b74fa1bb0000000000000000000000000000000000000000000000000000000068a5dc660000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e0265346277ad201609308b506e901b520150a08", - "nonce": "0x3", - "r": "0x5788b4da5ca6c26f8db8c29e054f1305484ba1c45b06dd4c7e948d170a3f7c4b", - "s": "0x22b7a34fb63d89a1ddb1cf033c9f6a3bc90ce9aa23908b65dd0aeb7db8699689", - "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", - "transactionIndex": "0x68", - "type": "0x0", - "v": "0x26", - "value": "0x740c1005bbd2a5" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xd04691fada4d78e62f74d51b77c3fab05dd5e656", - "gas": "0x5208", - "gasPrice": "0x4c762185", - "hash": "0x9cc229f51b3398a71370ab7ee4d775f9fc617c40c9379b786e03070e52fcd357", - "input": "0x", - "maxFeePerGas": "0x4dffd1f2", - "maxPriorityFeePerGas": "0x28a6e1b1", - "nonce": "0x0", - "r": "0xa6d2bb45252b7e9884132de3ea83e622d2be3cdd8fa88782f2764ab66e4f45d7", - "s": "0x5c68ff0d8a4ed88bf7da396862da303b68a7dbcd7eef2f74aab5616613fd7ab2", - "to": "0xc00313c93a1dc6befa0d4b50697ec1ef11b5967e", - "transactionIndex": "0x69", - "type": "0x2", - "v": "0x1", - "value": "0x5309d8d77f14000", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x051ad444b2c9a1678c7f4632885851c0c08285fd", - "gas": "0x47694", - "gasPrice": "0x2884b194", - "hash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", - "input": "0x0d5f0e3b000000000000000000019afd051ad444b2c9a1678c7f4632885851c0c08285fd00000000000000000000000000000000000000000000000000000000004ba428000000000000000000000000000000000000000000000000000429b0d307836000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec73ca20afc2aaa00000081b3202cffed5d56eb6a17662756ca0fdf350e732c9818", - "maxFeePerGas": "0x4d7c6d00", - "maxPriorityFeePerGas": "0x4b571c0", - "nonce": "0x7", - "r": "0x812fb4b40c56bcb2f83428115e393b8a07c88778b59649f3fd3535c83c159c", - "s": "0x1b3befc4c53338b4447f0f2ef9a18a8f50542e9630859f860d34a2bbd8fe6eae", - "to": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", - "transactionIndex": "0x6a", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x1e8b52ea011a678a888cf7b4e7aa667170f192ca", - "gas": "0x77281", - "gasPrice": "0x5f6a09d4", - "hash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", - "input": "0x2213bc0b000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000129e5915326ed86f831b0e035acda34b209633d500000000000000000000000000000000000000000000000000002d79883d2000000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000006a41fff991f0000000000000000000000001e8b52ea011a678a888cf7b4e7aa667170f192ca000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000019d6036900000000000000000000000000000000000000000000000000000000000000a065e8b85d871ee28632d7b5be0f15b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000000e4c1fb425e0000000000000000000000009c76dd6b5b200690fc9fb061a99b0a48e9a94325000000000000000000000000129e5915326ed86f831b0e035acda34b209633d500000000000000000000000000000000000000000000000000002d79883d200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5cf5b00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4103b48be000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000129e5915326ed86f831b0e035acda34b209633d500000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c76dd6b5b200690fc9fb061a99b0a48e9a943250000000000000000000000000000000000000000000000000000000000001e0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e48d68a156000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cc02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000064dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064c876d21d000000000000000000000000f5c4f3dc02c3fb9279495a8fef7b0741da956157000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000001b1a9a8400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012438c9c147000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000046000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000ad01c20d5886137e056775af56915de824c8fce50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x64e6e088", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0xdb", - "r": "0x6e904ba20f4d9d72e5f4c071be68d877617d759619a28b8cdfd79dc01ddecffc", - "s": "0x3f02dd94c35eb1ee184ec53b4381fa3c767251ca584bb3031c03e5cdf98f5492", - "to": "0x0000000000001ff3684f28c67538d4d072c22734", - "transactionIndex": "0x6b", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x97fe8b7ba616945b5031e146229b9e727830f131", - "gas": "0x35a94", - "gasPrice": "0x9b04d3d4", - "hash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", - "input": "0xa64dfa75000000000000000000000000be5f6232d8ed5a4057f33a28915bc1a8ab01335b000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000000054000000000000000000000000000000000000000000000000000000000000005600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097fe8b7ba616945b5031e146229b9e727830f131000000000000000000000000000000000000000000000000000000000000058000000000000000000000000000000000000000000000000000000000000005c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000003a697066733a2f2f516d586733513741314e386b4535394b54324d76756f6d4a41547466774e3848456d3257543647697831544578462f7b69647d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001", - "maxFeePerGas": "0xa7c2cc55", - "maxPriorityFeePerGas": "0x77359400", - "nonce": "0x3e7", - "r": "0x63642b4de7c95e847d1f75ad695f93c417f3528715a4d1e2548ba1647dcddfc7", - "s": "0x3103e58f7ad2723b1cfaa1a22066ebd2bc732306f10f914a2200a00189d66509", - "to": "0x864baa13e01d8f9e26549dc91b458cd15e34eb7c", - "transactionIndex": "0x6c", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", - "gas": "0x5208", - "gasPrice": "0x23cf3fd4", - "hash": "0xd36572df8b853ee2b6cab95a988ca7065b03d00fc8b2c1411301cadf49343092", - "input": "0x", - "maxFeePerGas": "0x23cf3fd4", - "maxPriorityFeePerGas": "0x0", - "nonce": "0x2c5ce0", - "r": "0x3c240ef59ec96ca4e3eac84f6bd5dd6bf07e1926f93391df1d54334989c26528", - "s": "0x59cb9097d1dd02d9e3939c5b14fb4b490c190e06937dfd51b9fafed5c302196e", - "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", - "transactionIndex": "0x6d", - "type": "0x2", - "v": "0x0", - "value": "0xedbdd761ba60", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xe93685f3bba03016f02bd1828badd6195988d950", - "gas": "0x8b660", - "gasPrice": "0x2dde0f0d", - "hash": "0x5cbc170410348d6fdc873705eff0fe6e22f82115fa66a032cacaf14b00d3fd73", - "input": "0x0894edf1000000000000000000000000000000000000000000000000000000000000004036e7b0f7494af14e92055752ad7efac6d5d62065da6b772b7bb98d7127e4495d000000000000000000000000000000000000000000000000000000000000005101000000000000111000007683000000000000000000000000cab283e4bb527aa9b157bae7180fef19e2aaa71a00007595000000000000000000000000f2b2bbdc9975cf680324de62a30a31bc3ab8a4d5000000000000000000000000000000", - "maxFeePerGas": "0x35078237", - "maxPriorityFeePerGas": "0xa0ecf39", - "nonce": "0x250aa2", - "r": "0xe4879c5f426e5b8b7d3b41b17f5a614cdcc78ba669d6ab6182f862e18444066c", - "s": "0x2ef31d6b3adedbaef6a1738d4d6c6d124bc48d085044104b81d8e0298f208b2d", - "to": "0xc02ab410f0734efa3f14628780e6e695156024c2", - "transactionIndex": "0x6e", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xe6767c337d50e51241257059d58508fd8fba91a1", - "gas": "0x1772f", - "gasPrice": "0x6b55cbd4", - "hash": "0x885b570f51838e21d3ee6f7635b9019859c9dc284b61a10e597428521779a514", - "input": "0xa9059cbb0000000000000000000000003732c23fe8422fa1dc7759e2f34515de41bf268b000000000000000000000000000000000000000000000000000000001c9c3800", - "maxFeePerGas": "0x792d1e40", - "maxPriorityFeePerGas": "0x47868c00", - "nonce": "0x62", - "r": "0xf1f4a5531fcd333695b2e7417fdae4e3ddcb708e3654f9c1867506eb6572399", - "s": "0x4cc7b9087b477cdc8ba54ddba333d85082f78fa79ee941911673ee58ff9e2c4d", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x6f", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x4cf7d1f09d73d05538b701c2ccd071298569b18b", - "gas": "0x5208", - "gasPrice": "0x47094b30", - "hash": "0x6dc512f88c8907da511443523a0ce1f9d83b9590fb25470b40a5c7dabecb9cb0", - "input": "0x", - "maxFeePerGas": "0x510fec66", - "maxPriorityFeePerGas": "0x233a0b5c", - "nonce": "0x1", - "r": "0x797d9e07782c1a7570722138d950c8633aef9809eeaeb8fbdb036971011f793c", - "s": "0x1708f6394868c6821120e4ce8ffbbefc2aafdd564fc7e5c11f9b2267229ef5ee", - "to": "0x4cf7d1f09d73d05538b701c2ccd071298569b18b", - "transactionIndex": "0x70", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x1a6bf7734a87c9fb327162eed8cff7b1982e7e5e", - "gas": "0x5208", - "gasPrice": "0x47094b30", - "hash": "0x293dfc29e6d24ec039d5da89eca31f7874ab0f73485242b24472991bbc4a81ac", - "input": "0x", - "maxFeePerGas": "0x510fec66", - "maxPriorityFeePerGas": "0x233a0b5c", - "nonce": "0x5", - "r": "0x2028d41e9a0141761d433e4cfc7884adef975420a963487fad220cf7d2b8a1de", - "s": "0x50eb5b6b9ffa49a76c96c444aee674f28f0dd3f8f04d3a2b39308617780f5fd1", - "to": "0xdc3a5dcd4d2299bdd8a9345169029088f4b0e0c2", - "transactionIndex": "0x71", - "type": "0x2", - "v": "0x0", - "value": "0xcb8a708304c0", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xa2d9d10acece8512a99a3048c88fa274ba59e2cf", - "gas": "0x5208", - "gasPrice": "0x47094b30", - "hash": "0x3199c465ca839a4561420e9ae7a22247c0faf5f3b8b22675e9d280871b018d5e", - "input": "0x", - "maxFeePerGas": "0x4da16a23", - "maxPriorityFeePerGas": "0x233a0b5c", - "nonce": "0x184", - "r": "0x9c93f4bd79ccb99d1be47372b5aaccfc208982f979bafc1da3b32590f373663", - "s": "0x612088c93597b86f051f32154119e30b10d7d6d503d22becefdd1ebda48ce67e", - "to": "0xf051193691fc11600e1228ca27ede7663c4de189", - "transactionIndex": "0x72", - "type": "0x2", - "v": "0x1", - "value": "0x886c98b76000", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xb0bfdffa1c53912c9d6a1f7250d2bac0f6fb0373", - "gas": "0x5208", - "gasPrice": "0x47094b30", - "hash": "0x6cb4300ccb17a849f57e47bf2e950fc2ff88e1536d19e413b23ff3c321c11e8c", - "input": "0x", - "maxFeePerGas": "0x510fec66", - "maxPriorityFeePerGas": "0x233a0b5c", - "nonce": "0x0", - "r": "0x720690819dbcd99ec4fcd2a5c6050b5688a8f9dafc0dbf6f29aef638f4bc6f52", - "s": "0x5ae4c4f5c0722b19eb4eb959e6f071b169c6838e9e0dce0e52f8980215b872c1", - "to": "0x02ca45d242a1e2cd80f860a265e42a048c67b712", - "transactionIndex": "0x73", - "type": "0x2", - "v": "0x0", - "value": "0xb1a2bc2ec50000", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x9502954fba7ca26abdefc7ef4c9dd59b8b54f03f", - "gas": "0x5208", - "gasPrice": "0x47094b30", - "hash": "0x5dd9f8f7e9b3c71c4e4c00191f358b82e5438d0ee6bbbe841d945089e2df8cba", - "input": "0x", - "maxFeePerGas": "0x4da16a23", - "maxPriorityFeePerGas": "0x233a0b5c", - "nonce": "0x0", - "r": "0xfe29aaa1afa27064570a2be9bb914bbf81fa756fa237a6cc1d5aff31e7664602", - "s": "0x63c6b6167df7e2ee0306a02786b2964541d018146c9b27d71c586842ff8707b5", - "to": "0x9502954fba7ca26abdefc7ef4c9dd59b8b54f03f", - "transactionIndex": "0x74", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }, - { - "accessList": [], - "authorizationList": [ - { - "address": "0xd2e28229f6f2c235e57de2ebc727025a1d0530fb", - "chainId": "0x1", - "nonce": "0x0", - "r": "0x62ffcce54b35a2c7c0cf41ae86c22d90d0ea9fe274a3e06e51f34078552e3356", - "s": "0x1ae7c6e429c48dcb05e3b22cf8588439c94109951186c1a6c55e32b6649bcafe", - "yParity": "0x1" - } - ], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x173449e23b2768042a7acbbf00a2b32d262b3a4b", - "gas": "0x6dd33", - "gasPrice": "0x26ca3054", - "hash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", - "input": "0x765e827f0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000173449e23b2768042a7acbbf00a2b32d262b3a4b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000124f800000000000000000000000000014df90000000000000000000000000000000000000000000000000000000000017fbc000000000000000000000000039387000000000000000000000000003751c5e500000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024426da7d880000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000007d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac0000000000000000000000000000000000000000000000000000000000180d1400000000000000000000000000000000000000000000000000000000000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000000e8495d95270c688473e88f02bb3101a3f7cec73000000000000000000000000000000000000000000000000000000000f60c480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b57d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac000000000000000000000000000061a800000000000000000000000000005daa000068a5cf6d000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000e98ea4bb7fa8f191b0588c1709ab2c1b038a113d42b76391e187187df085a48a654303c10f44cd3e9c226fed8d202651f301fca3d84052cdd089a84ed15afc22cc55b1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000004170cd8c9a9c00e848c3a93a47f52e71aedc923e3ccc6421729ab51d0d9278adb53ea1c0a4f2234e1312ac4c744a3b950dd879a387b10593570903e6e9a40081951c00000000000000000000000000000000000000000000000000000000000000", - "maxFeePerGas": "0x3075589a", - "maxPriorityFeePerGas": "0x2faf080", - "nonce": "0x4b5", - "r": "0xb8d4b1baed6404be7fcb4358fe8497a15f78bd761f0b7e62d19a077c302cc004", - "s": "0x2791874c668c0458b2fa7e0e2248d6251a40a09aad38869d7de62e93a1ee4b9f", - "to": "0x0000000071727de22e5e9d8baf0edac6f37da032", - "transactionIndex": "0x75", - "type": "0x4", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0xfcc46ea12aec1f62c3d58803fe94aa8f768f2636", - "gas": "0x171ab", - "gasPrice": "0x5f6a09d4", - "hash": "0x971833c61c63e80e90a69edadce6cf052ed708c0b89a52714e3de65174e501d2", - "input": "0xa9059cbb000000000000000000000000552549d39c22c1e55e4f91318d41f5422d204c4e00000000000000000000000000000000000000000000000000000000017d7840", - "maxFeePerGas": "0x6625e6dc", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0xf5", - "r": "0xe5d335bf550c364ffcee7c8460c803222a041c0cd746127373fd0b9729de9299", - "s": "0x4056279be100eaab0f391c8a464bd009b5b0883b7fc9fddb9965a5d1766e78c8", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionIndex": "0x76", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x52f1e1001c28f6807530470b67a83a348040e31b", - "gas": "0x1740a", - "gasPrice": "0x6458e75e", - "hash": "0x9ea42c0b70a8feb646683ef29551a4f1e35aa5c52ff4e92d41885fddc062eee3", - "input": "0xa9059cbb00000000000000000000000043e19182b2f68d8a83d56a7304665ce0ea3fb3e3000000000000000000000000000000000000000000000000000000002e4686e2", - "maxFeePerGas": "0x6458e75e", - "maxPriorityFeePerGas": "0x6458e75e", - "nonce": "0x6", - "r": "0xbf11a33a31fa408edd4e23b563e2b2baed6c6d5d7dcc425d9b2c717971bdb7e", - "s": "0x4228f38b07269ccc79ec419e5321492a7fad4a6ce9d9853021f638f9a2db166c", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionIndex": "0x77", - "type": "0x2", - "v": "0x1", - "value": "0x0", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x242ad3fac0e6820f50ce520117fe8774f21b5f9f", - "gas": "0x5208", - "gasPrice": "0x419ca4d4", - "hash": "0xa7e4c653d8b4852c0fc96106be40980b66a3bb81a9730f4c5bdd8010851faabd", - "input": "0x", - "maxFeePerGas": "0x4234f3e1", - "maxPriorityFeePerGas": "0x1dcd6500", - "nonce": "0x0", - "r": "0x6a0ad5377b1db6a5daa1475af73d72f39f15fb610af3d33c5613be5fcee0e617", - "s": "0x4b674ea61ebfb2716ed38393d86562740a9db80f43f3880d5b0c9776e17c4fc6", - "to": "0x094d77550b654f1fceb33f405ae0415c4cbcb0f1", - "transactionIndex": "0x78", - "type": "0x2", - "v": "0x0", - "value": "0x9e92c7881c800", - "yParity": "0x0" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x9f256a5703a493cac86a09fa84473517ace6ca81", - "gas": "0x45405", - "gasPrice": "0x5f6a09d4", - "hash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", - "input": "0x209178e800000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000570154115e4e30000000000000000000000000000000000000000000000000000000068a5cece0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000161bd0e0000000000000000000000000000000000000000000000000000000068a5ce4f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000fa417cd491632620a582851b07abf7e3447bba71", - "maxFeePerGas": "0x685dd9c9", - "maxPriorityFeePerGas": "0x3b9aca00", - "nonce": "0x17e5", - "r": "0x3c5a0e76f5ef8d2ea21a0eac730ce97565091a0b1a959bf95a328d06d1de9fc", - "s": "0x704b1d8f5b320e9f6bd49565962c7ed287063f8c9da91d0dcaa4d06e2c32ae0b", - "to": "0x055c48651015cf5b21599a4ded8c402fdc718058", - "transactionIndex": "0x79", - "type": "0x2", - "v": "0x1", - "value": "0x6a94d74f430000", - "yParity": "0x1" - }, - { - "accessList": [], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", - "gas": "0x565f", - "gasPrice": "0x23cf3fd4", - "hash": "0x2c522d01183e9ed70caaf75c940ba9908d573cfc9996b3e7adc90313798279c8", - "input": "0x", - "maxFeePerGas": "0x23cf3fd4", - "maxPriorityFeePerGas": "0x0", - "nonce": "0x2c5ce1", - "r": "0x4a5703e4d8daf045f021cb32897a25b17d61b9ab629a59f0731ef4cce63f93d6", - "s": "0x711812237c1fed6aaf08e9f47fc47e547fdaceba9ab7507e62af29a945354fb6", - "to": "0x388c818ca8b9251b393131c08a736a67ccb19297", - "transactionIndex": "0x7a", - "type": "0x2", - "v": "0x0", - "value": "0x12bf92aae0c2e70", - "yParity": "0x0" - } - ], - "transactionsRoot": "0xca2e7e6ebe1b08030fe5b9efabee82b95e62f07cff5a4298354002c46b41a216", - "uncles": [], - "withdrawals": [ - { - "address": "0x5b3e2bb0fc7cad985c1461fec254a9cc162ff168", - "amount": "0x12417c4", - "index": "0x5dce3db", - "validatorIndex": "0x1dd01a" - }, - { - "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", - "amount": "0x1213ae3", - "index": "0x5dce3dc", - "validatorIndex": "0x1dd01b" - }, - { - "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", - "amount": "0x120e5a4", - "index": "0x5dce3dd", - "validatorIndex": "0x1dd01c" - }, - { - "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", - "amount": "0x120df02", - "index": "0x5dce3de", - "validatorIndex": "0x1dd01d" - }, - { - "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", - "amount": "0x1210d63", - "index": "0x5dce3df", - "validatorIndex": "0x1dd01e" - }, - { - "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", - "amount": "0x120d70e", - "index": "0x5dce3e0", - "validatorIndex": "0x1dd01f" - }, - { - "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", - "amount": "0x120491b", - "index": "0x5dce3e1", - "validatorIndex": "0x1dd020" - }, - { - "address": "0xa554965fcd0d9493313e2eafa27eef5b058336f4", - "amount": "0x121f4c4", - "index": "0x5dce3e2", - "validatorIndex": "0x1dd021" - }, - { - "address": "0xa554965fcd0d9493313e2eafa27eef5b058336f4", - "amount": "0x1215726", - "index": "0x5dce3e3", - "validatorIndex": "0x1dd022" - }, - { - "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", - "amount": "0x120ae6a", - "index": "0x5dce3e4", - "validatorIndex": "0x1dd023" - }, - { - "address": "0xd29b9bb69a1890232382e5936aa195031eae1577", - "amount": "0x124a7fd", - "index": "0x5dce3e5", - "validatorIndex": "0x1dd024" - }, - { - "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", - "amount": "0x12123cb", - "index": "0x5dce3e6", - "validatorIndex": "0x1dd025" - }, - { - "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", - "amount": "0x120be70", - "index": "0x5dce3e7", - "validatorIndex": "0x1dd026" - }, - { - "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", - "amount": "0x121f5d1", - "index": "0x5dce3e8", - "validatorIndex": "0x1dd027" - }, - { - "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", - "amount": "0x1215cfe", - "index": "0x5dce3e9", - "validatorIndex": "0x1dd028" - }, - { - "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", - "amount": "0x12198a4", - "index": "0x5dce3ea", - "validatorIndex": "0x1dd029" - } - ], - "withdrawalsRoot": "0x7a3ad42fdb774c0e662597141f52a81210ffec9ce0db9dfcd841f747b0909010" -} diff --git a/substrate/frame/revive/test-assets/ethereum_receipts.json b/substrate/frame/revive/test-assets/ethereum_receipts.json deleted file mode 100644 index dea646889a014..0000000000000 --- a/substrate/frame/revive/test-assets/ethereum_receipts.json +++ /dev/null @@ -1,7779 +0,0 @@ -[ - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x3e5a5", - "effectiveGasPrice": "0x23cf3fd4", - "from": "0x693ca5c6852a7d212dabc98b28e15257465c11f3", - "gasUsed": "0x3e5a5", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", - "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" - ], - "data": "0x000000000000000000000000000000000000000000000000000000035c9618f6", - "blockNumber": "0x161bd0f", - "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", - "transactionIndex": "0x0", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x0", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", - "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" - ], - "data": "0x0000000000000000000000000000000000000000000000000001528fd550bc9a", - "blockNumber": "0x161bd0f", - "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", - "transactionIndex": "0x0", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x1", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", - "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" - ], - "data": "0x000000000000000000000000000000000000000000000000000000005c0c965e", - "blockNumber": "0x161bd0f", - "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", - "transactionIndex": "0x0", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x000000000004444c5dc75cb358380d2e3de08a90", - "topics": [ - "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", - "0xe500210c7ea6bfd9f69dce044b09ef384ec2b34832f132baec3b418208e3a657", - "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" - ], - "data": "0x000000000000000000000000000000000000000000000000000000035c9618f6ffffffffffffffffffffffffffffffffffffffffffffffffd0061697905954000000000000000000000000000000000000003c76c3128ad6b3eb40ac1d9f90e600000000000000000000000000000000000000000000000004caaa5ba8029c92000000000000000000000000000000000000000000000000000000000002f1ba0000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", - "transactionIndex": "0x0", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x3", - "removed": false - }, - { - "address": "0x000000000004444c5dc75cb358380d2e3de08a90", - "topics": [ - "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", - "0x90078845bceb849b171873cfbc92db8540e9c803ff57d9d21b1215ec158e79b3", - "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffadce6399e224f9a000000000000000000000000000000000000000000000000000000005c0c965e000000000000000000000000000000000000000000043b148c07fa0e7487fde1000000000000000000000000000000000000000000000000005049606b676761fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e360000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", - "transactionIndex": "0x0", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x4", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000073d53553ee552c1f2a9722e6407d43e41e19593f", - "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" - ], - "data": "0x0000000000000000000000000000000000000000000000002ff9e9686fa6ac00", - "blockNumber": "0x161bd0f", - "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", - "transactionIndex": "0x0", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x5", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4", - "0x00000000000000000000000073d53553ee552c1f2a9722e6407d43e41e19593f" - ], - "data": "0x000000000000000000000000000000000000000000000000000000035c16902a", - "blockNumber": "0x161bd0f", - "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", - "transactionIndex": "0x0", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x6", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4", - "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90" - ], - "data": "0x000000000000000000000000000000000000000000000000351e55bea6d51900", - "blockNumber": "0x161bd0f", - "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", - "transactionIndex": "0x0", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x7", - "removed": false - }, - { - "address": "0x0000000aa232009084bd71a5797d089aa4edfad4", - "topics": [], - "data": "0xe34cc98d396db0ad165915ad7ee8e27580670d53d2de88e52db6258aea02ab6e", - "blockNumber": "0x161bd0f", - "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", - "transactionIndex": "0x0", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x8", - "removed": false - } - ], - "logsBloom": "0x000000000000000004000000000000000000000000000000000000000000000000000000200000000010000000000100020000000c0000000000000002000002000000000000000009000108000000000000000000000020000000000000000000000000000000000000000000000000000000000000020000000010000000000000040840000000000000000000000000000000010000000000000000100000400000000000200000000080100000000000000000000000000000000000000000000802000000000000000000000000000000400000004000000000000001000000200000000000004000000080000000001000000800080000000000000000", - "status": "0x1", - "to": "0x0000000aa232009084bd71a5797d089aa4edfad4", - "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", - "transactionIndex": "0x0", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x87f43", - "effectiveGasPrice": "0x23cf3fd4", - "from": "0xc445a471debbc8ef54dbfd90af406b6a682313e3", - "gasUsed": "0x4999e", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640", - "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259" - ], - "data": "0x0000000000000000000000000000000000000000000000000000004d163ab3f6", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", - "transactionIndex": "0x1", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x9", - "removed": false - }, - { - "address": "0x4342b77fe3417bcb09d0a4383301b0dc733c755b", - "topics": [ - "0x9b97792d4bc68bb4ac03fb65cd7d887197ae9100c1afea4383f9700cf8637cfb", - "0xd82c2736ad6fe23474357b319e12205803b760f7f9d1e419ad91e64f09f99c74" - ], - "data": "0x00000000000000000000000000000000000000000000460cdc7e35644d59cff70000000000000000000000000000000000000000000000044cca9748c816200e", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", - "transactionIndex": "0x1", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xa", - "removed": false - }, - { - "address": "0xd315a9c38ec871068fec378e4ce78af528c76293", - "topics": [ - "0x2170c741c41531aec20e7c107c24eecfdd15e69c9bb0a8dd37b1840b9e0b207b", - "0x4342b77fe3417bcb09d0a4383301b0dc733c755b000200000000000000000002", - "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000004d0563b78d0000000000000000000000000000000000000000000000044cca9748c816200e", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", - "transactionIndex": "0x1", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xb", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259", - "0x000000000000000000000000d315a9c38ec871068fec378e4ce78af528c76293" - ], - "data": "0x0000000000000000000000000000000000000000000000000000004d0563b78d", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", - "transactionIndex": "0x1", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xc", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000d315a9c38ec871068fec378e4ce78af528c76293", - "0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640" - ], - "data": "0x0000000000000000000000000000000000000000000000044cca9748c816200e", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", - "transactionIndex": "0x1", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xd", - "removed": false - }, - { - "address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259", - "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffb2e9c54c0a0000000000000000000000000000000000000000000000044cca9748c816200e0000000000000000000000000000000000003c7922239c6e6f4650809908a91600000000000000000000000000000000000000000000000051b0f41e60a05433000000000000000000000000000000000000000000000000000000000002f1bd", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", - "transactionIndex": "0x1", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xe", - "removed": false - } - ], - "logsBloom": "0x0000000001000000000000000000400000000000800000000000000004000020000000200000000000000a000000000002080000080020002000000100400000000000000000200808000008000820804000000000000000000000000000000000000000000000004000000000000000000000400000000000000010000800000000800000000000002000400000000200000000210000000000001000000000000000000000200000000000000000000000000000000000002800000008000000000002000000000000200000080000000000000004000100000000000000000000200000000000000010000000000004000000002000040000000000000000", - "status": "0x1", - "to": "0xc90d7c41974397cb8b260238ec9ecb6bbd965259", - "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", - "transactionIndex": "0x1", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xcb6de", - "effectiveGasPrice": "0x23cf3fd4", - "from": "0x8361a4786bd2081acbf4a0802aab618d6aa1c674", - "gasUsed": "0x4379b", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", - "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000f14ae20b1", - "blockNumber": "0x161bd0f", - "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", - "transactionIndex": "0x2", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xf", - "removed": false - }, - { - "address": "0x315a892a4d02c5c1169d5f0e4f7cb4130cc0d138", - "topics": [ - "0x9b97792d4bc68bb4ac03fb65cd7d887197ae9100c1afea4383f9700cf8637cfb", - "0x9b65abd5af36b457eec7bcae8438283bfdee71c23b6129a9b75b63f758674743" - ], - "data": "0x000000000000000000000000000000000000000000000db439926f2897826ffd000000000000000000000000000000000000000000000000d763281af8acbffc", - "blockNumber": "0x161bd0f", - "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", - "transactionIndex": "0x2", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x10", - "removed": false - }, - { - "address": "0xd315a9c38ec871068fec378e4ce78af528c76293", - "topics": [ - "0x2170c741c41531aec20e7c107c24eecfdd15e69c9bb0a8dd37b1840b9e0b207b", - "0x315a892a4d02c5c1169d5f0e4f7cb4130cc0d138000200000000000000000009", - "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7", - "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000f115584f7000000000000000000000000000000000000000000000000d763281af8acbffc", - "blockNumber": "0x161bd0f", - "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", - "transactionIndex": "0x2", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x11", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259", - "0x000000000000000000000000d315a9c38ec871068fec378e4ce78af528c76293" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000f115584f7", - "blockNumber": "0x161bd0f", - "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", - "transactionIndex": "0x2", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x12", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000d315a9c38ec871068fec378e4ce78af528c76293", - "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b" - ], - "data": "0x000000000000000000000000000000000000000000000000d763281af8acbffc", - "blockNumber": "0x161bd0f", - "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", - "transactionIndex": "0x2", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x13", - "removed": false - }, - { - "address": "0xc7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259", - "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259" - ], - "data": "0x000000000000000000000000000000000000000000000000d763281af8acbffcfffffffffffffffffffffffffffffffffffffffffffffffffffffff0eb51df4f000000000000000000000000000000000000000000043b6637f8c724bd98d5df0000000000000000000000000000000000000000000000000f7eaa8ee01d5748fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e3c", - "blockNumber": "0x161bd0f", - "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", - "transactionIndex": "0x2", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x14", - "removed": false - } - ], - "logsBloom": "0x10000040000000000000000002004000000000000000000000000000000000200000002000000000000000000000010002000000080020000080000100000000000010000000200800000208000820804000001000000000000000000000000000000000002000000000000000000000000000600000000000000010000800000000000800000000002000400000000000000000200000000000001000100000000000000000000000000080200000000000000000000000000800000000004000002002000008000000000000080800000000020004000000000000000000030000200000000000000000000000000000000000002000000000000000000000", - "status": "0x1", - "to": "0xc90d7c41974397cb8b260238ec9ecb6bbd965259", - "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", - "transactionIndex": "0x2", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x12a596", - "effectiveGasPrice": "0x2d2a4df1", - "from": "0x6b063481f8216b5624ec496dd72376bef00faffd", - "gasUsed": "0x5eeb8", - "logs": [ - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", - "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" - ], - "data": "0x00000000000000000000000084ca8bc7997272c7cfb4d0cd3d55cd942b3c9419000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000230ec810de9c63d000000000000000000000000000000000000000000000000000000000001ae32af8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000003829475008131557bbcd760e6b5f8e8ff5e2160f6082c1a62fa964054a6ff448ac89b537d4e0de035303dc1bdae18394f7a6c15c3668a5cea00000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x15", - "removed": false - }, - { - "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x0000000000000000000000000000000000000000000000230ec810de9c63d000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x16", - "removed": false - }, - { - "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", - "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffffffecc9a02e668c0ffc70606", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x17", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000b60b34d830f26c5a11c47ddb1e0a1f31d90a78b1", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x00000000000000000000000000000000000000000000000000d3c631f934190e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x18", - "removed": false - }, - { - "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x000000000000000000000000b60b34d830f26c5a11c47ddb1e0a1f31d90a78b1" - ], - "data": "0x0000000000000000000000000000000000000000000000134f6e6f97fa338eb8", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x19", - "removed": false - }, - { - "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" - ], - "data": "0x0000000000000000000000000000000000000000ffffff2b13d40994899ed471", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x1a", - "removed": false - }, - { - "address": "0xb60b34d830f26c5a11c47ddb1e0a1f31d90a78b1", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x0000000000000000000000000000000000000000000000134f6e6f97fa338eb8ffffffffffffffffffffffffffffffffffffffffffffffffff2c39ce06cbe6f20000000000000000000000000000000000000000035057e9b5ae5c4a4943b8de0000000000000000000000000000000000000000000000953a360f14392059effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeac5e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x1b", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a14afc841a2742cbd52587b705f00f322309580e", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000c09061f", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x1c", - "removed": false - }, - { - "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x000000000000000000000000a14afc841a2742cbd52587b705f00f322309580e" - ], - "data": "0x00000000000000000000000000000000000000000000000fa7469b560e451907", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x1d", - "removed": false - }, - { - "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" - ], - "data": "0x0000000000000000000000000000000000000000ffffff1b6c8d6e3e7b59bb6a", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x1e", - "removed": false - }, - { - "address": "0xa14afc841a2742cbd52587b705f00f322309580e", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x00000000000000000000000000000000000000000000000fa7469b560e451907fffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f6f9e1000000000000000000000000000000000000000000000e0a911b42c1dd6fb73a000000000000000000000000000000000000000000000000028436a16f2261c2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbbab3", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x1f", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000007858e59e0c01ea06df3af3d20ac7b0003275d4bf", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000eda6b92", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x20", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x0000000000000000000000007858e59e0c01ea06df3af3d20ac7b0003275d4bf" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000edb15d4", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x21", - "removed": false - }, - { - "address": "0x7858e59e0c01ea06df3af3d20ac7b0003275d4bf", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffff125946e000000000000000000000000000000000000000000000000000000000edb15d40000000000000000000000000000000000000000fff55b68b5f9b667ec39892600000000000000000000000000000000000000000000000000022514b6f71388fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x22", - "removed": false - }, - { - "address": "0x2db07a3a657b6e16999b67d48500486a1cb0d649", - "topics": [ - "0xd7cf88e4bcca455701f69cc774034a649b16dcf4c3607676ea5f556353332623" - ], - "data": "0x000000000000000000000000000000000020471041ccf0884a74288beb780000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x23", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000047a4a98900000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x24", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" - ], - "data": "0x000000000000000000000000000000000000000000000000000000001ae32af8", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x25", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", - "0x000000000000000000000000a9d635ef85bc37eb9ff9d6165481ea230ed32392" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x26", - "removed": false - } - ], - "logsBloom": "0x00401000000000000000040000001000004000000000000000010000000000002000000800440000000000006000010002000040080420000000000000200c00000400000000000808180008000000000000000900000000000000000000000000000000000000000000804000100000000200002000000010004010008800000000000000000040000000008000000000848000c50000000000000000100000020000600000200000000080000000000000001000000000010000000000000000000002000800200001000000000000000020000000840000000000000000000010202000000000000002000104000000204000000000100000000000000000", - "status": "0x1", - "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", - "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", - "transactionIndex": "0x3", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x12fc80", - "effectiveGasPrice": "0x38cc2a7c", - "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", - "gasUsed": "0x56ea", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xfbd6acca70a8632061593f1a07056affb7965ac3", - "transactionHash": "0xa655290cbb744571dd7455dacd45109cb3c7adce13392aa7ed3f2f64f5b644e4", - "transactionIndex": "0x4", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x135e15", - "effectiveGasPrice": "0x6b55cbd4", - "from": "0x6d478cb16317680a517ff89253f82032efdc31ba", - "gasUsed": "0x6195", - "logs": [ - { - "address": "0x3b50805453023a91a8bf641e279401a0b23fa6f9", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x0000000000000000000000006d478cb16317680a517ff89253f82032efdc31ba", - "0x000000000000000000000000111111125421ca6dc452d289314280a0f8842a65" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xfeee6a0b16850d3300339f32be2765355e301689b0f430b9f7db1695806ace46", - "transactionIndex": "0x5", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x27", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000100000000000000000000000000000000000001000000000000000000000002000000000000000000000000000000200000000000000000000000400000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000004000000000020000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000010000000000000000000000000000000080000000000000000000000000000", - "status": "0x1", - "to": "0x3b50805453023a91a8bf641e279401a0b23fa6f9", - "transactionHash": "0xfeee6a0b16850d3300339f32be2765355e301689b0f430b9f7db1695806ace46", - "transactionIndex": "0x5", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x18616d", - "effectiveGasPrice": "0x708ad4a2", - "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", - "gasUsed": "0x50358", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef", - "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222" - ], - "data": "0x000000000000000000000000000000000000000000000000000000001185c2f9", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x28", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222", - "0x0000000000000000000000000000000000001ff3684f28c67538d4d072c22734" - ], - "data": "0x000000000000000000000000000000000000000000000000000000001185c2f9", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x29", - "removed": false - }, - { - "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", - "topics": [ - "0x93485dcd31a905e3ffd7b012abe3438fa8fa77f98ddc9f50e879d3fa7ccdc324" - ], - "data": "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000000000000000001ff3684f28c67538d4d072c22734000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x2a", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" - ], - "data": "0x000000000000000000000000000000000000000000000000000000001185c2f9", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x2b", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x000000000000000000000000000000000000000000000000000000001185c2f9", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x2c", - "removed": false - }, - { - "address": "0x163f8c2467924be0ae7b5347228cabf260318753", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", - "0x000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff" - ], - "data": "0x0000000000000000000000000000000000000000000054407b5110567d6a792f", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x2d", - "removed": false - }, - { - "address": "0x163f8c2467924be0ae7b5347228cabf260318753", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" - ], - "data": "0x0000000000000000000000000000000000000000000000114bfd68823e680000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x2e", - "removed": false - }, - { - "address": "0xdef1c0ded9bec7f1a1670819833240f027b25eff", - "topics": [ - "0xac75f773e3a92f1a02b12134d65e1f47f8a14eabe4eaf1e24624918e6a8b269f" - ], - "data": "0x6d6c1b356c6aa0fa097186ea2b390cafdb337780b03f47be9cfcfd204a3e633200000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000163f8c2467924be0ae7b5347228cabf260318753000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000114bfd68823e680000000000000000000000000000000000000000000000000000000000001185c2f9", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x2f", - "removed": false - }, - { - "address": "0x163f8c2467924be0ae7b5347228cabf260318753", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", - "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222" - ], - "data": "0x0000000000000000000000000000000000000000000000114bfd68823e680000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x30", - "removed": false - }, - { - "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", - "topics": [ - "0x93485dcd31a905e3ffd7b012abe3438fa8fa77f98ddc9f50e879d3fa7ccdc324" - ], - "data": "0x0000000000000000000000000000000000001ff3684f28c67538d4d072c227340000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c42213bc0b000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f9000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004e41fff991f000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222000000000000000000000000163f8c2467924be0ae7b5347228cabf26031875300000000000000000000000000000000000000000000001135683983035c6d9000000000000000000000000000000000000000000000000000000000000000a09ec76e970eebf8e87ffa04210af43c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e4c1fb425e000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5cf7d00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028438c9c147000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000002710000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001a4dac748d4000000000000000000000000163f8c2467924be0ae7b5347228cabf260318753000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000114bfd68823e680000000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef0000000068a5ce8e000000000000000000000000000000000000000068a5ce520000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001c308445be1fba35529ad765babeb7d04e657d10b1e885929e9088fb8de4e8a73137377dc9e14ddb6b6209e77701b660572de494c7eab10db93d7249805bba87eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x31", - "removed": false - }, - { - "address": "0x163f8c2467924be0ae7b5347228cabf260318753", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222", - "0x000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c3" - ], - "data": "0x0000000000000000000000000000000000000000000000114bfd68823e680000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x32", - "removed": false - }, - { - "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", - "topics": [ - "0x93485dcd31a905e3ffd7b012abe3438fa8fa77f98ddc9f50e879d3fa7ccdc324" - ], - "data": "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e2220000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001243b2253c8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000163f8c2467924be0ae7b5347228cabf2603187530000000000000000000000000000000000000000000000000000000000000001000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c30000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x33", - "removed": false - } - ], - "logsBloom": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000008000000000010000000000000000000080008004020020000000000000000000200800000800000000000004020004100000000000000000000001000080000040000000000800044000004000000000000000001000000000000000001000000000000000000000000000000001000000000000000000000002800000000020000000408202000002000000000000000000400000000000400100008a000000000800000000008000000000000400000000000000000008000090000000000000000000000000000000000000000000000800000000000000", - "status": "0x1", - "to": "0xbbbfd134e9b44bfb5123898ba36b01de7ab93d98", - "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", - "transactionIndex": "0x6", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x1d9f55", - "effectiveGasPrice": "0x65045d54", - "from": "0x6bf97afe2d2c790999cded2a8523009eb8a0823f", - "gasUsed": "0x53de8", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554", - "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x34", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", - "0x00000000000000000000000060bf78233f48ec42ee3f101b9a05ec7878728006" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000760f2a0b00000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x35", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", - "0x000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554" - ], - "data": "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000899d774e0f8e14810d628db63e65dfacea682343000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000006b06fe010314e3e0681000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000380bae44426440f171dbd7817d8375281635d1209ebc616a66fab075a25cef1271366aa56191e89d219ac36b33406fce85da1e755468a5d4fb0000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x36", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000bebc200", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x37", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x00000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff86" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000bebc200", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x38", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff86", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x00000000000000000000000000000000000000000000000000aa03ac85e927d0", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x39", - "removed": false - }, - { - "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", - "topics": [ - "0xadd7095becdaa725f0f33243630938c861b0bba83dfd217d4055701aa768ec2e", - "0x000000000000000000000000000000006d9aa07971bc4e6731b47ed80776c574" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x3a", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", - "0x000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000004dcebcba00000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x3b", - "removed": false - }, - { - "address": "0x899d774e0f8e14810d628db63e65dfacea682343", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001346d1ee3fb1b65fecfcb65c149ca0702c286f53", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x0000000000000000000000000000000000000000000006c52e602622b8b3a20b", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x3c", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x0000000000000000000000001346d1ee3fb1b65fecfcb65c149ca0702c286f53" - ], - "data": "0x00000000000000000000000000000000000000000000000000aa03ac85e927d0", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x3d", - "removed": false - }, - { - "address": "0x1346d1ee3fb1b65fecfcb65c149ca0702c286f53", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffffffff93ad19fd9dd474c5df500000000000000000000000000000000000000000000000000aa03ac85e927d000000000000000000000000000000000000000000059466393d63f7ecd2357870000000000000000000000000000000000000000000000095bc56c6d693f8780fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfc74", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x3e", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", - "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000004e45aaf00000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x3f", - "removed": false - }, - { - "address": "0x899d774e0f8e14810d628db63e65dfacea682343", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554" - ], - "data": "0x0000000000000000000000000000000000000000000006b06fe010314e3e0681", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x40", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", - "0x0000000000000000000000006bf97afe2d2c790999cded2a8523009eb8a0823f" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x41", - "removed": false - } - ], - "logsBloom": "0x0000100000000000000000002000100000400000000008000000000000000000000000004040000040000000000000000200004008102000000000408020000200040000008000082800000c000000400800000100008000000000000000000200000000080000000000800000000000000002000000200010004010000818000000080000000000000900000000002000000000410000000000000000000400020000600000200000000000000000000004000000000000010000000000000100004002000800000008000000000000400020002000000000000100000000020410200000000000000002000000080000004000000000000000000000000010", - "status": "0x1", - "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "transactionIndex": "0x7", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x20ea7d", - "effectiveGasPrice": "0x2d50b891", - "from": "0xc8ad355c8291cbd52e738ed1df1f5ccbbbbf00ee", - "gasUsed": "0x34b28", - "logs": [ - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", - "0x000000000000000000000000ee007a00b876742c33491454447a40bc63d3d468" - ], - "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f4308b0263723b121056938c2172868e408079d00000000000000000000000000000000000000000000000000000000002160ec0000000000000000000000000000000000000000000000001a0d9ab1774735d13000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000038f5de8823a77b47687c9ff654873353ee47ab098b384a1bc844eb441aef6277a9ee007a00b876742c33491454447a40bc63d3d46868a5d50f0000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", - "transactionIndex": "0x8", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x42", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ee007a00b876742c33491454447a40bc63d3d468", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000002160ec0", - "blockNumber": "0x161bd0f", - "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", - "transactionIndex": "0x8", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x43", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x00000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff86" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000020b32aa", - "blockNumber": "0x161bd0f", - "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", - "transactionIndex": "0x8", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x44", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff86", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000000001d27419875a766", - "blockNumber": "0x161bd0f", - "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", - "transactionIndex": "0x8", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x45", - "removed": false - }, - { - "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", - "topics": [ - "0xadd7095becdaa725f0f33243630938c861b0bba83dfd217d4055701aa768ec2e", - "0x000000000000000000000000000000003eeca8e9088f6bdbdb18cf6634723120" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", - "transactionIndex": "0x8", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x46", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", - "0x000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000004dcebcba00000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", - "transactionIndex": "0x8", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x47", - "removed": false - }, - { - "address": "0xf4308b0263723b121056938c2172868e408079d0", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x000000000000000000000000ee007a00b876742c33491454447a40bc63d3d468" - ], - "data": "0x000000000000000000000000000000000000000000000001a0d9ab1774735d13", - "blockNumber": "0x161bd0f", - "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", - "transactionIndex": "0x8", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x48", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", - "0x000000000000000000000000a9d635ef85bc37eb9ff9d6165481ea230ed32392" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", - "transactionIndex": "0x8", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x49", - "removed": false - } - ], - "logsBloom": "0x00001000000000000000000000001000004000000200000000000000000000000000000000040000000000004000010002000000080000000000004000000002000000000000000020000008000000400000000100200000000000000000002202000000080000000000800000000000000000000000000010004010000010000000080000000000000000000000002000000000400000000000000008100000000000600000000000000080000000000010002000000000010000000000000100000002000800200008000000000000000020000000000000000000000000000000200000000000000002000004000000084000000000000000000000000010", - "status": "0x1", - "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", - "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", - "transactionIndex": "0x8", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x284fcd", - "effectiveGasPrice": "0x2d50b891", - "from": "0x943810707e090f1bdc486c4c990d43da3b162e52", - "gasUsed": "0x76550", - "logs": [ - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", - "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" - ], - "data": "0x000000000000000000000000f5581dfefd8fb0e4aec526be659cfab1f8c781da000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000318d845d95db27be800000000000000000000000000000000000000000000000000000000003c18ecd8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000383f4edaedae765e7131d494e6fca613763c52f46aef71574f2190c6b20724dbdf89b537d4e0de035303dc1bdae18394f7a6c15c3668a5ce8d0000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x4a", - "removed": false - }, - { - "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", - "topics": [ - "0x06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", - "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110", - "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000318d845d95db27be8000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x4b", - "removed": false - }, - { - "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000318d845d95db27be800", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x4c", - "removed": false - }, - { - "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", - "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffec5e7ea7a67c21739266ba", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x4d", - "removed": false - }, - { - "address": "0x6b175474e89094c44da98b954eedeac495271d0f", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000087986ae1e99f99da1f955d16930dc8914ffbed56", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000030c83b065345ecd3f5", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x4e", - "removed": false - }, - { - "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", - "topics": [ - "0x06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x00000000000000000000000087986ae1e99f99da1f955d16930dc8914ffbed56" - ], - "data": "0x0000000000000000000000000000000000000000000002c2b9c5fcc62d5453390000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x4f", - "removed": false - }, - { - "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x00000000000000000000000087986ae1e99f99da1f955d16930dc8914ffbed56" - ], - "data": "0x0000000000000000000000000000000000000000000002c2b9c5fcc62d545339", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x50", - "removed": false - }, - { - "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" - ], - "data": "0x0000000000000000000000000000000000000000ffffd59a39059bc5a28618a8", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x51", - "removed": false - }, - { - "address": "0x87986ae1e99f99da1f955d16930dc8914ffbed56", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffcf37c4f9acba132c0b0000000000000000000000000000000000000000000002c2b9c5fcc62d5453390000000000000000000000000000000000000003ce3e190a8a5ab790bdc2670a000000000000000000000000000000000000000000010d01c59477b71ba1ad1f000000000000000000000000000000000000000000000000000000000000686a", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x52", - "removed": false - }, - { - "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", - "topics": [ - "0x06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x00000000000000000000000092c2fc5f306405eab0ff0958f6d85d7f8892cf4d" - ], - "data": "0x000000000000000000000000000000000000000000000054e9ab31a1339be5930000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x53", - "removed": false - }, - { - "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x00000000000000000000000092c2fc5f306405eab0ff0958f6d85d7f8892cf4d" - ], - "data": "0x000000000000000000000000000000000000000000000054e9ab31a1339be593", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x54", - "removed": false - }, - { - "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" - ], - "data": "0x0000000000000000000000000000000000000000ffffd5454f5a6a246eea3315", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x55", - "removed": false - }, - { - "address": "0x6b175474e89094c44da98b954eedeac495271d0f", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000092c2fc5f306405eab0ff0958f6d85d7f8892cf4d", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000005e0bb5fb57e3f0b03", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x56", - "removed": false - }, - { - "address": "0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x00000000000000000000000000000000000000000000040e2b05566d40762733000000000000000000000000000000000000000000003abd82aa5833b3997cd7", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x57", - "removed": false - }, - { - "address": "0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d", - "topics": [ - "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054e9ab31a1339be593000000000000000000000000000000000000000000000005e0bb5fb57e3f0b030000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x58", - "removed": false - }, - { - "address": "0x2db07a3a657b6e16999b67d48500486a1cb0d649", - "topics": [ - "0xd7cf88e4bcca455701f69cc774034a649b16dcf4c3607676ea5f556353332623" - ], - "data": "0x00000000000000000000000000000000002e7bdc06b21b40b0cc17df2b421598", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x59", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", - "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000047a4a98900000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x5a", - "removed": false - }, - { - "address": "0x6b175474e89094c44da98b954eedeac495271d0f", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x000000000000000000000000f6e72db5454dd049d0788e411b06cfaf16853042" - ], - "data": "0x000000000000000000000000000000000000000000000036a8f6d6fbd1977000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x5b", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000037305b1cd40574e4c5ce33f8e8306be057fd7341", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000000000000003c196d47", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x5c", - "removed": false - }, - { - "address": "0xf6e72db5454dd049d0788e411b06cfaf16853042", - "topics": [ - "0x085d06ecf4c34b237767a31c0888e121d89546a77f186f1987c6b8715e1a8caa", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000000000000003c196d470000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x5d", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", - "0x000000000000000000000000f6e72db5454dd049d0788e411b06cfaf16853042" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000008d7ef9bb00000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x5e", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" - ], - "data": "0x000000000000000000000000000000000000000000000000000000003c18ecd8", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x5f", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", - "0x000000000000000000000000a9d635ef85bc37eb9ff9d6165481ea230ed32392" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x60", - "removed": false - } - ], - "logsBloom": "0x0060100000000020000000008000108002400000001000200000000000000020000000000044000000000000c000000800000040000420000000000080200400000400001000000808000008000000210000000100000000000010200000000010000000000000000000804000000000000200402000000010004010000800000000000000000000000000008000000000040000450001080800004200000000020000680100200000000000000000000000008000000000010000000000000000000002000800600001040000000020000022080000041000002008000000400010002000000000000002000004000000104000000000000000010000000000", - "status": "0x1", - "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", - "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", - "transactionIndex": "0x9", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x2947ba", - "effectiveGasPrice": "0x708ad4a2", - "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", - "gasUsed": "0xf7ed", - "logs": [ - { - "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", - "topics": [ - "0xd35467972d1fda5b63c735f59d3974fa51785a41a92aa3ed1b70832836f8dba6" - ], - "data": "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e2220000000000000000000000000000000000000000000000000304e4108473ed6d", - "blockNumber": "0x161bd0f", - "transactionHash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", - "transactionIndex": "0xa", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x61", - "removed": false - }, - { - "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", - "topics": [ - "0x93485dcd31a905e3ffd7b012abe3438fa8fa77f98ddc9f50e879d3fa7ccdc324" - ], - "data": "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e22200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000304e4108473ed6d0000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", - "transactionIndex": "0xa", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x62", - "removed": false - }, - { - "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", - "topics": [ - "0xd35467972d1fda5b63c735f59d3974fa51785a41a92aa3ed1b70832836f8dba6" - ], - "data": "0x000000000000000000000000ae1a530128950b1735674a975e1622872e556b590000000000000000000000000000000000000000000000000304e4108473ed6d", - "blockNumber": "0x161bd0f", - "transactionHash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", - "transactionIndex": "0xa", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x63", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000080000000000000000000000000000000000000000000000000040000000000000000000000000000004000000000000000000000000000000040000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000080000000000000000000000000000000000000000000000800000000000000", - "status": "0x1", - "to": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", - "transactionHash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", - "transactionIndex": "0xa", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x2b1f0f", - "effectiveGasPrice": "0x2c523e86", - "from": "0x80c700683ec017a190b132a4ce042beeb7c6b821", - "gasUsed": "0x1d755", - "logs": [ - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" - ], - "data": "0x00000000000000000000000000000000000000000000000000621b921b80f2af", - "blockNumber": "0x161bd0f", - "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", - "transactionIndex": "0xb", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x64", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", - "0x0000000000000000000000006f9f435fa79e30e34f7679211904fcabc87ad924" - ], - "data": "0x00000000000000000000000000000000000000000000000000621b921b80f2af", - "blockNumber": "0x161bd0f", - "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", - "transactionIndex": "0xb", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x65", - "removed": false - }, - { - "address": "0xe0265346277ad201609308b506e901b520150a08", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000006f9f435fa79e30e34f7679211904fcabc87ad924", - "0x00000000000000000000000080c700683ec017a190b132a4ce042beeb7c6b821" - ], - "data": "0x00000000000000000000000000000000000000000000fcc9f4e9bd2d304d8e56", - "blockNumber": "0x161bd0f", - "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", - "transactionIndex": "0xb", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x66", - "removed": false - }, - { - "address": "0x6f9f435fa79e30e34f7679211904fcabc87ad924", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x000000000000000000000000000000000000000000000000154aea80178ffe200000000000000000000000000000000000000000003609cc562e12cf568499f7", - "blockNumber": "0x161bd0f", - "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", - "transactionIndex": "0xb", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x67", - "removed": false - }, - { - "address": "0x6f9f435fa79e30e34f7679211904fcabc87ad924", - "topics": [ - "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", - "0x00000000000000000000000080c700683ec017a190b132a4ce042beeb7c6b821" - ], - "data": "0x00000000000000000000000000000000000000000000000000621b921b80f2af0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcc9f4e9bd2d304d8e56", - "blockNumber": "0x161bd0f", - "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", - "transactionIndex": "0xb", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x68", - "removed": false - } - ], - "logsBloom": "0x00200000000000000000000080000000000000000000000000010000000000000100000000000000000000000000000002000000080000000000000000000000000000000000000000000008080000a00000000000000000000000008001000010000000000000000000000008000000000000000000000000000010000000000000000000000000004000000000000000000001000000080000004000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000004004000080000000000000000001000000000100020000000200000000000000000000000000000000000000001400000000001000000", - "status": "0x1", - "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", - "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", - "transactionIndex": "0xb", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x2e78ec", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0x7830c87c02e56aff27fa8ab1241711331fa86f43", - "gasUsed": "0x359dd", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "transactionHash": "0x65dfef793509b00a864042275789801fd0c89fe3fe1d67648c4bba8148fd511c", - "transactionIndex": "0xc", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x3119a3", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0x078430ebd8db8288fd056d137e0e11cf67fb8fc1", - "gasUsed": "0x2a0b7", - "logs": [ - { - "address": "0xb1911d8ffcc2d8ca6c5ea4f4f18be6ea675c1ce7", - "topics": [ - "0x6bae97ad4b952cdee3720ed0ea228b5eb79d5adb4475c05d9f3f6539627d8e2a", - "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" - ], - "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c540000000000000000000000000000000000000000000000000000000068a5ce5b", - "blockNumber": "0x161bd0f", - "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", - "transactionIndex": "0xd", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x69", - "removed": false - }, - { - "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000b1911d8ffcc2d8ca6c5ea4f4f18be6ea675c1ce7", - "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" - ], - "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", - "blockNumber": "0x161bd0f", - "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", - "transactionIndex": "0xd", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x6a", - "removed": false - }, - { - "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1", - "0x00000000000000000000000032c1f663919102dc032dc3c22fe434af686f3b15" - ], - "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", - "blockNumber": "0x161bd0f", - "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", - "transactionIndex": "0xd", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x6b", - "removed": false - }, - { - "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1", - "0x00000000000000000000000032c1f663919102dc032dc3c22fe434af686f3b15" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", - "transactionIndex": "0xd", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x6c", - "removed": false - }, - { - "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1", - "0x00000000000000000000000071a41517fe65890fe835d67fce17a9747112696c" - ], - "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", - "blockNumber": "0x161bd0f", - "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", - "transactionIndex": "0xd", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x6d", - "removed": false - }, - { - "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000071a41517fe65890fe835d67fce17a9747112696c", - "0x000000000000000000000000c059a531b4234d05e9ef4ac51028f7e6156e2cce" - ], - "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", - "blockNumber": "0x161bd0f", - "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", - "transactionIndex": "0xd", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x6e", - "removed": false - }, - { - "address": "0xc059a531b4234d05e9ef4ac51028f7e6156e2cce", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" - ], - "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", - "blockNumber": "0x161bd0f", - "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", - "transactionIndex": "0xd", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x6f", - "removed": false - }, - { - "address": "0xc059a531b4234d05e9ef4ac51028f7e6156e2cce", - "topics": [ - "0x1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90", - "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" - ], - "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c540000000000000000000000000000000000000000000000000000000068a5ce5b", - "blockNumber": "0x161bd0f", - "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", - "transactionIndex": "0xd", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x70", - "removed": false - }, - { - "address": "0x71a41517fe65890fe835d67fce17a9747112696c", - "topics": [ - "0x1d667fd3a2b3ff56d86b9f53a15185be64f72321819599d0f059e609581169ba", - "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" - ], - "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c540000000000000000000000000000000000000000000000000000000068a5ce5b", - "blockNumber": "0x161bd0f", - "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", - "transactionIndex": "0xd", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x71", - "removed": false - } - ], - "logsBloom": "0x000000000040000000000000000008000008000000000000001000000002000000000080000004000200020000040000000010800000000000000000002000000002000900008000000000080000000000000000000000200000000000000000000000000200000001000200000008000000000000000000000000100000000000001000000002000000020000000000044000004000000000000000000100000200002000100000000c00000000000000000000000000000000000000000040000000020001000000000000000000000000000000000000000000000008200000100000000000000000000000008000c0000000000000000000000000000000", - "status": "0x1", - "to": "0x71a41517fe65890fe835d67fce17a9747112696c", - "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", - "transactionIndex": "0xd", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x39a5c0", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0x7830c87c02e56aff27fa8ab1241711331fa86f43", - "gasUsed": "0x88c1d", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x0000000000000000000000004fa31bbbb0729c76ca3fb7c5d466c1b30764749b" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000015476340", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x72", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x0000000000000000000000008e1e9185870f026be6b59219f673fe84481a329a" - ], - "data": "0x000000000000000000000000000000000000000000000000000000002d27ecbb", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x73", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x00000000000000000000000060c531e7594102a7a9be19197c969639bebf5fae" - ], - "data": "0x000000000000000000000000000000000000000000000000000000001cf8f755", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x74", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x000000000000000000000000f8b2374fc5335176857aa83f8a37be8afdf8bac7" - ], - "data": "0x000000000000000000000000000000000000000000000000000000002113fe2a", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x75", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x00000000000000000000000088a857dfc3ed7b4e326adbbe79224de634982235" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000e4e1c00", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x76", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x000000000000000000000000f668293ea8362fe9dccd4499c23fcb0025919613" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000002a9f1f7", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x77", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x00000000000000000000000026b23da6eb7d863bef139feb51ba027ec2f0769a" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000002faf080", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x78", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x000000000000000000000000de396526ede4218a67327cec9658e7571a0eac5c" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000017f2b8d", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x79", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x000000000000000000000000f5261acdfbe5b46b6c79271ea86d933603236899" - ], - "data": "0x000000000000000000000000000000000000000000000000000000014437f0cd", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x7a", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x0000000000000000000000006de7232e53fd11e218842e5506577837134a1171" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000311d3e0", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x7b", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x0000000000000000000000006de7232e53fd11e218842e5506577837134a1171" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000077e07a0", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x7c", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x000000000000000000000000d5b12d6651b94d6340699077258feb3314d6b1ae" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000004661940", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x7d", - "removed": false - }, - { - "address": "0xbe9895146f7af43049ca1c1ae358b0541ea49704", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x000000000000000000000000000000000000000000000002ec03212a197a0c00", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x7e", - "removed": false - }, - { - "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" - ], - "data": "0x0000000000000000000000000000000000000000000000230ec810de9c63d000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x7f", - "removed": false - }, - { - "address": "0x0d8775f648430679a709e98d2b0cb6250d2887ef", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x0000000000000000000000007c06dfc7576ef157e111d80cd8ce98f8ab60feaf" - ], - "data": "0x0000000000000000000000000000000000000000000000008b95e9381c0e2400", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x80", - "removed": false - }, - { - "address": "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x00000000000000000000000006fd4ba7973a0d39a91734bbc35bc2bcaa99e3b0" - ], - "data": "0x0000000000000000000000000000000000000000000000334af9bea1f4c02c00", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x81", - "removed": false - }, - { - "address": "0x4a220e6096b25eadb88358cb44068a3248254675", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x0000000000000000000000009f3b333f36069244901885d5e520ffee722a4585" - ], - "data": "0x000000000000000000000000000000000000000000000000106df6c44af68000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x82", - "removed": false - }, - { - "address": "0xfaba6f8e4a5e8ab82f62fe7c39859fa577269be3", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x000000000000000000000000c3bf801d58a4c0418d96eda0164fb743ad065aca" - ], - "data": "0x0000000000000000000000000000000000000000000000016d4f128775330000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x83", - "removed": false - }, - { - "address": "0x6c3ea9036406852006290770bedfcaba0e23a0e8", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "0x0000000000000000000000002c8b4fba3b3706827c96f3e4ccbc0d1442dcd074" - ], - "data": "0x00000000000000000000000000000000000000000000000000000016e43d727e", - "blockNumber": "0x161bd0f", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x84", - "removed": false - } - ], - "logsBloom": "0x00000000200001000000000060000000000000010000000400000000000000800000004000000000000000100000011000000028040000000080040000020600000000000000020008000008100000000000200000040000000100000000000008000000000000008400000000000800000000400000000000a80030018402200000000000000000008000000000200000000100010000200001000200122000000000800000204010000080000000000000000420000000000080000000000000000003000000002401400408001000002000000442040000000400000800000000000000000000000200000102000000000000002000900000200000000100", - "status": "0x1", - "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43", - "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", - "transactionIndex": "0xe", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x3adc08", - "effectiveGasPrice": "0xa6f095d4", - "from": "0xa03400e098f4421b34a3a44a1b4e571419517687", - "gasUsed": "0x13648", - "logs": [ - { - "address": "0xf8ebf4849f1fa4faf0dff2106a173d3a6cb2eb3a", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a03400e098f4421b34a3a44a1b4e571419517687", - "0x0000000000000000000000000fac5094987a848754db82a7db870e635f126939" - ], - "data": "0x00000000000000000000000000000000000000006d06bff6e90832e72f68a000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x706cc7072418792c08feb0ace7ba254538265f6bfdb6282584f936160791d8e1", - "transactionIndex": "0xf", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x85", - "removed": false - } - ], - "logsBloom": "0x00004000000000000000402000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000002008000000000000000000000000000000002000000000000000000000000180000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xf8ebf4849f1fa4faf0dff2106a173d3a6cb2eb3a", - "transactionHash": "0x706cc7072418792c08feb0ace7ba254538265f6bfdb6282584f936160791d8e1", - "transactionIndex": "0xf", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x3e8c4b", - "effectiveGasPrice": "0x2f779f57", - "from": "0xae2fc483527b8ef99eb5d9b44875f005ba1fae13", - "gasUsed": "0x3b043", - "logs": [ - { - "address": "0x615987d46003cc37387dbe544ff4f16fa1200077", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000dd6e1a4e35d307497da8d5d4052173410951b3d5", - "0x0000000000000000000000006c618dd1040a79923cd74113ef0ed07c07d2b0e7" - ], - "data": "0x000000000000000000000000000000000000000000000000000010d97cfd0001", - "blockNumber": "0x161bd0f", - "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", - "transactionIndex": "0x10", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x86", - "removed": false - }, - { - "address": "0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000007c706586679af2ba6d1a9fc2da9c6af59883fdd3", - "0x000000000000000000000000dd6e1a4e35d307497da8d5d4052173410951b3d5" - ], - "data": "0x00000000000000000000000000000000000000000000000000000001456521ca", - "blockNumber": "0x161bd0f", - "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", - "transactionIndex": "0x10", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x87", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", - "0x0000000000000000000000007c706586679af2ba6d1a9fc2da9c6af59883fdd3" - ], - "data": "0x000000000000000000000000000000000000000000000000003deea5386727c3", - "blockNumber": "0x161bd0f", - "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", - "transactionIndex": "0x10", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x88", - "removed": false - }, - { - "address": "0x7c706586679af2ba6d1a9fc2da9c6af59883fdd3", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", - "0x000000000000000000000000dd6e1a4e35d307497da8d5d4052173410951b3d5" - ], - "data": "0x000000000000000000000000000000000000000000000000003deea5386727c3fffffffffffffffffffffffffffffffffffffffffffffffffffffffeba9ade3600000000000000000000000000000000000000000024babbbd70e20d3f4fd5180000000000000000000000000000000000000000000000000567142df5d24d20fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdb710", - "blockNumber": "0x161bd0f", - "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", - "transactionIndex": "0x10", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x89", - "removed": false - }, - { - "address": "0xdd6e1a4e35d307497da8d5d4052173410951b3d5", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", - "0x0000000000000000000000006c618dd1040a79923cd74113ef0ed07c07d2b0e7" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffef268302ffff00000000000000000000000000000000000000000000000000000001456521ca000000000000000000000000000000000000000004654a0d63ff5dd89c18ba8400000000000000000000000000000000000000000000000000001b39705b4ba0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec270", - "blockNumber": "0x161bd0f", - "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", - "transactionIndex": "0x10", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x8a", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000006c618dd1040a79923cd74113ef0ed07c07d2b0e7", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387" - ], - "data": "0x000000000000000000000000000000000000000000000000003e9e4299000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", - "transactionIndex": "0x10", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x8b", - "removed": false - }, - { - "address": "0x6c618dd1040a79923cd74113ef0ed07c07d2b0e7", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x000000000000000000000000000000000000000000000000009ca8a393168f4300000000000000000000000000000000000000000000000247b2f0cb40170fc5", - "blockNumber": "0x161bd0f", - "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", - "transactionIndex": "0x10", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x8c", - "removed": false - }, - { - "address": "0x6c618dd1040a79923cd74113ef0ed07c07d2b0e7", - "topics": [ - "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", - "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387" - ], - "data": "0x000000000000000000000000000000000000000000000000000010d97cfd000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e9e4299000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", - "transactionIndex": "0x10", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x8d", - "removed": false - } - ], - "logsBloom": "0x002000000000000000000000800000010000000000000000000000000000000000000000000000000000020020000008020000040800200000000000000000000000000000000008000000080000002000000000000000000400000400000800000000000000000000000204000000000000008000000010008000100008000020000000000000000000000000000000000000000000000c0000004080000000040000000400001000000000000000004000000010000000000000000000000000004002000000000000000000000000000c00000000001000000000000000000000202000000000000000000000000000400000000000000000000000000000", - "status": "0x1", - "to": "0x1f2f10d1c40777ae1da742455c65828ff36df387", - "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", - "transactionIndex": "0x10", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x3ede53", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xa5ccd022e4b4ac431deadb329e20aa76c4a80f5a", - "transactionHash": "0x341b093276998eaf55ba531d7cb2be1ff32f44a398c85b60d4180791cdadf218", - "transactionIndex": "0x11", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x3f7fbc", - "effectiveGasPrice": "0x4fb1722d", - "from": "0xd24b2b3f3420cda82d40e0c8584b88ce7ec386e8", - "gasUsed": "0xa169", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000d24b2b3f3420cda82d40e0c8584b88ce7ec386e8", - "0x0000000000000000000000005626213e557182a6d19048d29b535b5d7f5408be" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000129d00963", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa7c324afd989fec33f0436d148f3e9ef90f7159b55075827aab7b72d6840a977", - "transactionIndex": "0x12", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x8e", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000801000000000000000000000000000000000010000000000000000000000000000000000000000001000000020000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000002000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0xa7c324afd989fec33f0436d148f3e9ef90f7159b55075827aab7b72d6840a977", - "transactionIndex": "0x12", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x403018", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0x260b364fe0d3d37e6fd3cda0fa50926a06c54cea", - "gasUsed": "0xb05c", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000260b364fe0d3d37e6fd3cda0fa50926a06c54cea", - "0x0000000000000000000000005a617641788bc9c3a91696eda1bb66c60034c9b6" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000042636c39", - "blockNumber": "0x161bd0f", - "transactionHash": "0xe5cb77f931850a0890a14d4ae7f73fe1bad375114d0ccf680c7c744d1f73a045", - "transactionIndex": "0x13", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x8f", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000200000000000000000000000000000000000000000000000200000001002000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000040000000000000000000000", - "status": "0x1", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionHash": "0xe5cb77f931850a0890a14d4ae7f73fe1bad375114d0ccf680c7c744d1f73a045", - "transactionIndex": "0x13", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x42847e", - "effectiveGasPrice": "0x6b55cbd4", - "from": "0x5000afd95cbc51054caf4c5330342890ead87b70", - "gasUsed": "0x25466", - "logs": [ - { - "address": "0x000000000004444c5dc75cb358380d2e3de08a90", - "topics": [ - "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", - "0x00b9edc1583bf6ef09ff3a09f6c23ecb57fd7d0bb75625717ec81eed181e22d7", - "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffecae9f6008a80000000000000000000000000000000000000000000000000000000000015a9d16e000000000000000000000000000000000000000000043c6e58a0426bb3e170af0000000000000000000000000000000000000000000000000601e4d79975daecfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e4f0000000000000000000000000000000000000000000000000000000000000064", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", - "transactionIndex": "0x14", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x90", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", - "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000015a9d16e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", - "transactionIndex": "0x14", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x91", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af", - "0x00000000000000000000000027213e28d7fda5c57fe9e5dd923818dbccf71c47" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000ddd52", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", - "transactionIndex": "0x14", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x92", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af", - "0x0000000000000000000000005000afd95cbc51054caf4c5330342890ead87b70" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000159bf41c", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", - "transactionIndex": "0x14", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x93", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000001000000000000020080000001000000000000000000000040000000000000000000000000000000000000008000008004000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000010000000000008000800000000400000000000000000000000010000000008000000000000000000000000200000000000100000000000000000000000000000000000000200000882400020000000001000000000000400400000000000000000000000000000000000000000004000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", - "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", - "transactionIndex": "0x14", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x43552f", - "effectiveGasPrice": "0x2c523e86", - "from": "0xc35fb86f962ea955751a793a007b5cdd44f798d7", - "gasUsed": "0xd0b1", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000007d7990b713c3497937fac4331176c127710b97d5", - "0x00000000000000000000000016fbc59070699f26c094fa8716b743561e0c53d3" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000148b1abe", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8af00935a2db3f2e066c91359011f9e29093f62a7616e816413f2710dbfc4b41", - "transactionIndex": "0x15", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x94", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000008000004000000000000000000000000000000000000000000000000000000000000010000010000000000000000000000000000000000000000000010000000000000000000000000000000000200000000000000000000000800000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000008000000002000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionHash": "0x8af00935a2db3f2e066c91359011f9e29093f62a7616e816413f2710dbfc4b41", - "transactionIndex": "0x15", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x43a737", - "effectiveGasPrice": "0x330fb22a", - "from": "0x5de41533c43766bb1181de4826a7f8f2e4e64549", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x0c8aa5263afde3c43a0fe88aed2b10ade922e666", - "transactionHash": "0x7c406076c4f872219370ca69e2e9dfb8096c47f514615aecda99577551b8cba1", - "transactionIndex": "0x16", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x445793", - "effectiveGasPrice": "0x14bfac694", - "from": "0x3ffa6671d869ae0d923a17505e633e700fb8e35a", - "gasUsed": "0xb05c", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000003ffa6671d869ae0d923a17505e633e700fb8e35a", - "0x000000000000000000000000842264311e492fdb425e8430472b6f9a4f660483" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000001ed2a0", - "blockNumber": "0x161bd0f", - "transactionHash": "0xef7c2d4ba0dbc86ccfd07a62ca7f843ea8cdc1587011fd8c14ba640f1535ac79", - "transactionIndex": "0x17", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x95", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000010000000000000000002000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000010000000000000000000000000000000000000000000200000010000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000040000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionHash": "0xef7c2d4ba0dbc86ccfd07a62ca7f843ea8cdc1587011fd8c14ba640f1535ac79", - "transactionIndex": "0x17", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x44a99b", - "effectiveGasPrice": "0xd69f9dd4", - "from": "0x552fe7e19ecd9789e57131c09712977b4d075cbe", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x76eeb4c8b149738a9b198d866c80e8087a0a4f17", - "transactionHash": "0xac88e9bd517db66ea5eebd8caba9d5c33ddfce1f779eef3e6821e15510f4c864", - "transactionIndex": "0x18", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x453a97", - "effectiveGasPrice": "0x6a5efc76", - "from": "0x4791eb2224d272655e8d5da171bb07dd5a805ff6", - "gasUsed": "0x90fc", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x62b53c45305d29bbe4b1bfa49dd78766b2f1e624", - "transactionHash": "0xda8bc5dc5617758c6af0681d71642f68ce679bb92df4d8cf48493f0cfad14e20", - "transactionIndex": "0x19", - "type": "0x4" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x458c9f", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xe401a6a38024d8f5ab88f1b08cad476ccaca45e8", - "transactionHash": "0xd7938913fd206fc1ef384e45dada725badd5a3ff87a793d9c432b70488a7bcdb", - "transactionIndex": "0x1a", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x45dea7", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x3b26af33b78b1414e40c83be39a6f1b924b1e08a", - "transactionHash": "0x80c2402d4dbfadb46899b4ceb48f3851c8be0d08eb399608b6966f401653e60d", - "transactionIndex": "0x1b", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x4fac28", - "effectiveGasPrice": "0x23d05144", - "from": "0x2c61206798f1ab3bce5833ecdd4a78aeba2e6b36", - "gasUsed": "0x9cd81", - "logs": [ - { - "address": "0xb167d99000cec6232e3b27f7f01d2b41c60f7fdc", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000073ada7d3ce2c1dcf9bb4100b650196ccc2ccdfa6", - "0x000000000000000000000000000000000000000000000000000000000000dead" - ], - "data": "0x000000000000000000000000000000000000000000002c70a2a249e16480990e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x96", - "removed": false - }, - { - "address": "0x73ada7d3ce2c1dcf9bb4100b650196ccc2ccdfa6", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x00000000000000000000000000000000000000000045438d7af1264ba46e8e420000000000000000000000000000000000000000000000000bb6892df1dc2d88", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x97", - "removed": false - }, - { - "address": "0xb167d99000cec6232e3b27f7f01d2b41c60f7fdc", - "topics": [ - "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x98", - "removed": false - }, - { - "address": "0xb167d99000cec6232e3b27f7f01d2b41c60f7fdc", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", - "0x00000000000000000000000073ada7d3ce2c1dcf9bb4100b650196ccc2ccdfa6" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x99", - "removed": false - }, - { - "address": "0x3b9c214a501b2ae33ab1793b57b09879a754f2ef", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000df37c5d3eea96515faa286c30e8f6b05640cad00", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ], - "data": "0x000000000000000000000000000000000000000000001f9f41f9e900fbd8e19c", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x9a", - "removed": false - }, - { - "address": "0xdf37c5d3eea96515faa286c30e8f6b05640cad00", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x000000000000000000000000000000000000000000314937d48228888707a2d90000000000000000000000000000000000000000000000001e8e8ddba5bec78b", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x9b", - "removed": false - }, - { - "address": "0x3b9c214a501b2ae33ab1793b57b09879a754f2ef", - "topics": [ - "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x9c", - "removed": false - }, - { - "address": "0x3b9c214a501b2ae33ab1793b57b09879a754f2ef", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", - "0x000000000000000000000000df37c5d3eea96515faa286c30e8f6b05640cad00" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x9d", - "removed": false - }, - { - "address": "0xc5327f8a6f6ea98928ff6a893d74a5cbc743f170", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000b21cef20389f300cdc7b2572f0a9a1afe62f4479", - "0x000000000000000000000000000000000000000000000000000000000000dead" - ], - "data": "0x000000000000000000000000000000000000000163e01624a3721a46e1ad41a4", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x9e", - "removed": false - }, - { - "address": "0xb21cef20389f300cdc7b2572f0a9a1afe62f4479", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x0000000000000000000000000000000000000000000000000db819c1093f63c1000000000000000000000000000000000000022aaa42831abed6f479bd094fbd", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x9f", - "removed": false - }, - { - "address": "0xc5327f8a6f6ea98928ff6a893d74a5cbc743f170", - "topics": [ - "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xa0", - "removed": false - }, - { - "address": "0xc5327f8a6f6ea98928ff6a893d74a5cbc743f170", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", - "0x000000000000000000000000b21cef20389f300cdc7b2572f0a9a1afe62f4479" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xa1", - "removed": false - }, - { - "address": "0xf92c421115b1f11203abcfce78eed1aadad3e0a5", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000f1edbdf579ad83cc86064bd089300b6b9362f084", - "0x000000000000000000000000000000000000000000000000000000000000dead" - ], - "data": "0x00000000000000000000000000000000000000000089245c8e692932e3213cf6", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xa2", - "removed": false - }, - { - "address": "0xf1edbdf579ad83cc86064bd089300b6b9362f084", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x000000000000000000000000000000000000000000000000134aeb69c5d6d9290000000000000000000000000000000000000000d5bfac41f5e7365000ce0402", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xa3", - "removed": false - }, - { - "address": "0xf92c421115b1f11203abcfce78eed1aadad3e0a5", - "topics": [ - "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xa4", - "removed": false - }, - { - "address": "0xf92c421115b1f11203abcfce78eed1aadad3e0a5", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", - "0x000000000000000000000000f1edbdf579ad83cc86064bd089300b6b9362f084" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xa5", - "removed": false - }, - { - "address": "0xf801db2654e911e922665c4cb885d8cca4c155bf", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000321166c624541dde00025d2d916d117410ba8421", - "0x000000000000000000000000000000000000000000000000000000000000dead" - ], - "data": "0x0000000000000000000000000000000000000000000013d075815ec17b746f4c", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xa6", - "removed": false - }, - { - "address": "0x321166c624541dde00025d2d916d117410ba8421", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x00000000000000000000000000000000000000000000000010d3766833cb24380000000000000000000000000000000000000000001ee1e724a2af8f6a797837", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xa7", - "removed": false - }, - { - "address": "0xf801db2654e911e922665c4cb885d8cca4c155bf", - "topics": [ - "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xa8", - "removed": false - }, - { - "address": "0xf801db2654e911e922665c4cb885d8cca4c155bf", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", - "0x000000000000000000000000321166c624541dde00025d2d916d117410ba8421" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xa9", - "removed": false - }, - { - "address": "0xc7e957681720875f3a2143f1afb72e7fb6ffdd78", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000e1e82ee891f469897a815b0bfcc34dd5d597f76a", - "0x000000000000000000000000000000000000000000000000000000000000dead" - ], - "data": "0x000000000000000000000000000000000000000000005e5d99029678a6debc2e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xaa", - "removed": false - }, - { - "address": "0xe1e82ee891f469897a815b0bfcc34dd5d597f76a", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x000000000000000000000000000000000000000000000000165e66cb28b490a20000000000000000000000000000000000000000009313e17b08860c15274d0f", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xab", - "removed": false - }, - { - "address": "0xc7e957681720875f3a2143f1afb72e7fb6ffdd78", - "topics": [ - "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xac", - "removed": false - }, - { - "address": "0xc7e957681720875f3a2143f1afb72e7fb6ffdd78", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", - "0x000000000000000000000000e1e82ee891f469897a815b0bfcc34dd5d597f76a" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockNumber": "0x161bd0f", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xad", - "removed": false - } - ], - "logsBloom": "0x000810000000100000400000804000000000802800000000000000000000000000000000000000000240040000000040008200000000000800200020000200002000001000000000081000a800004000000002014000000002000000000002000000000002000000000000000000080040000100080000000000001004000000000000000000400000000400000000000200000004000008080000002000200080000000010020050000001000000800000000000800000000000000000000000800040a200000000000000000000000000010000000001000000000000020000000000004000000202000002000000020000000000001000000000008000100", - "status": "0x1", - "to": "0xceb550db4b2f889782936bbedfe42ab406e8243d", - "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", - "transactionIndex": "0x1c", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x51fb32", - "effectiveGasPrice": "0x6b55cbd4", - "from": "0xaf8648ea8cecb238158b6fdf3fd3faf57f7e5828", - "gasUsed": "0x24f0a", - "logs": [ - { - "address": "0x0000000000000068f116a894984e2db1123eb395", - "topics": [ - "0x6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d", - "0x000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ], - "data": "0xe3e0fb0a038bc3551a6478b42b4afe222d3b9ee58ccab68dabb1768a550cbfb0", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", - "transactionIndex": "0x1d", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xae", - "removed": false - }, - { - "address": "0x0000000000000068f116a894984e2db1123eb395", - "topics": [ - "0x6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d", - "0x000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ], - "data": "0x4b4dfcc04791d09879f5d1f22ca4507605c8f30e1892892a740ca1d2a0da73df", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", - "transactionIndex": "0x1d", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xaf", - "removed": false - }, - { - "address": "0x0000000000000068f116a894984e2db1123eb395", - "topics": [ - "0x6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d", - "0x000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ], - "data": "0xec28195d952db26d0c13238998280ed9bac737582347b18e92b7df7bdc8279d1", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", - "transactionIndex": "0x1d", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xb0", - "removed": false - }, - { - "address": "0x0000000000000068f116a894984e2db1123eb395", - "topics": [ - "0x6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d", - "0x000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ], - "data": "0xf9a5a3ac5d66d04c588fe7308aa48021df65decd1ae3024cc267b23e5382b3dc", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", - "transactionIndex": "0x1d", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xb1", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000008000000000000000000020000000000800000000800002000000000000000000000000000010200000200000000000000000000000000000000000000000000000000000000000000010010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x0000000000000068f116a894984e2db1123eb395", - "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", - "transactionIndex": "0x1d", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x529c8f", - "effectiveGasPrice": "0x4fb1722d", - "from": "0xe75de7c288e72bb44ce46d4a795bb794bd19664b", - "gasUsed": "0xa15d", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000e75de7c288e72bb44ce46d4a795bb794bd19664b", - "0x000000000000000000000000408cb2bb16d073f0b6d4785fdab75b184e59e41e" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000831967dc", - "blockNumber": "0x161bd0f", - "transactionHash": "0xffe56e6ac055509a585cbce2c45f16125695652d5214c2d06b0c4a1646780b0e", - "transactionIndex": "0x1e", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xb2", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000200000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000010000000002000000000000000000000000000000000088000000000000200000000000000000000000000000000000000000000000000000000000040000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0xffe56e6ac055509a585cbce2c45f16125695652d5214c2d06b0c4a1646780b0e", - "transactionIndex": "0x1e", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x57572f", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0x1cca465c62fb70741dd181ee86b53974db7d4122", - "gasUsed": "0x4baa0", - "logs": [ - { - "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001cca465c62fb70741dd181ee86b53974db7d4122", - "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a" - ], - "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca49", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xb3", - "removed": false - }, - { - "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x0000000000000000000000001cca465c62fb70741dd181ee86b53974db7d4122", - "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffff905d7d1052a9f197aad6f249", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xb4", - "removed": false - }, - { - "address": "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", - "topics": [ - "0x42bd73ea702d7cf4505c06a7ac02a171536177d9cc2c7665443151ec91cc43fc", - "0x0000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790", - "0x0000000000000000000000001cca465c62fb70741dd181ee86b53974db7d4122" - ], - "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xb5", - "removed": false - }, - { - "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", - "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xb6", - "removed": false - }, - { - "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", - "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" - ], - "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca49", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xb7", - "removed": false - }, - { - "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", - "0x000000000000000000000000bf16540c857b4e32ce6c37d2f7725c8eec869b8b" - ], - "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca49", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xb8", - "removed": false - }, - { - "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", - "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xb9", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000bf16540c857b4e32ce6c37d2f7725c8eec869b8b", - "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" - ], - "data": "0x00000000000000000000000000000000000000000000000002c4c470058b00c2", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xba", - "removed": false - }, - { - "address": "0xbf16540c857b4e32ce6c37d2f7725c8eec869b8b", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x000000000000000000000000000000000000013bc94e104376a8b240900c19ee00000000000000000000000000000000000000000000000bfdd04708f7656da8", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xbb", - "removed": false - }, - { - "address": "0xbf16540c857b4e32ce6c37d2f7725c8eec869b8b", - "topics": [ - "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", - "0x0000000000000000000000005141b82f5ffda4c6fe1e372978f1c5427640a190", - "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" - ], - "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c4c470058b00c2", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xbc", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582", - "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a" - ], - "data": "0x00000000000000000000000000000000000000000000000002c4c470058b00c2", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xbd", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", - "0x000000000000000000000000965dc72531bc322cab5537d432bb14451cabb30d" - ], - "data": "0x0000000000000000000000000000000000000000000000000004f61c6ea17c2a", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xbe", - "removed": false - }, - { - "address": "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", - "topics": [ - "0xfc431937278b84c6fa5b23bcc58f673c647fea974d3656e766b22d8c1412e544", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x0000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790", - "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" - ], - "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000002bfce5396e9849800000000000000000000000000000000000000000000000002b477372c53d6800000000000000000000000000000000000000000000000000004f61c6ea17c2a00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000022812aa3caf0000000000000000000000005141b82f5ffda4c6fe1e372978f1c5427640a1900000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000bf16540c857b4e32ce6c37d2f7725c8eec869b8b000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000002b477372c53d6800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008500000000000000000000000000000000000000000000000000000000006700206ae40711b8002dc6c0bf16540c857b4e32ce6c37d2f7725c8eec869b8b1111111254eeb25477b68fb85ed929f73a96058200000000000000000000000000000000000000000000000002b477372c53d6803ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000000000000000000000000000000000c4e3736f000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xbf", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", - "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a" - ], - "data": "0x00000000000000000000000000000000000000000000000002bfce5396e98498", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xc0", - "removed": false - }, - { - "address": "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", - "topics": [ - "0xb4d99315c288c112a1d49da08c3fa85f78e2c83392f63f0a8964418f96aa24ed" - ], - "data": "0x00000000000000000000000000000000000000000000000002bfce5396e9849800000000000000000000000000000000000000000000000002bfce5396e9849800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xc1", - "removed": false - }, - { - "address": "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", - "topics": [ - "0x33be7eabd8ed368ca1aa14ce2ad1e90a0c9bf21edbb3820d5591546e4eb84157", - "0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", - "0x0000000000000000000000001cca465c62fb70741dd181ee86b53974db7d4122" - ], - "data": "0x00000000000000000000000000000000000000000000000002bfce5396e98498000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xc2", - "removed": false - }, - { - "address": "0x3c11f6265ddec22f4d049dde480615735f451646", - "topics": [ - "0x68f46c45a243a0e9065a97649faf9a5afe1692f2679e650c2f853b9cd734cc0e" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xc3", - "removed": false - } - ], - "logsBloom": "0x002000000000010000000000800000000000000004000000008c0000000000000040000000000000000020000100080002004000080000200010004000200000000000000000080000000008000000a00000000020600000000004000000020008000000040000000000000000080000000004000000040002000010000000000000000000000080000000400000000000004000000000080000004000020080020000000100081000400000008004000000040000000000002000200000002010020002800000000000001000380000000000109000001000000002000000001110200000000020000400000040000000002000000800000000000000000000", - "status": "0x1", - "to": "0x3c11f6265ddec22f4d049dde480615735f451646", - "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", - "transactionIndex": "0x1f", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x57a937", - "effectiveGasPrice": "0x495818a5", - "from": "0x776e7ad582e7ccc660f628774c54dd5aad1f14a1", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xb9bd424575359fcc3d3c1538b2e11e37fb517fcf", - "transactionHash": "0x0230cf61b59c8ac739a7cced4477df1611842ca8faeadeab19307145889782a7", - "transactionIndex": "0x20", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x58f4f1", - "effectiveGasPrice": "0x4182b434", - "from": "0xaf31d6f4e3841b28c5b0581770ffaf2e1f558515", - "gasUsed": "0x14bba", - "logs": [ - { - "address": "0x0000bbddc7ce488642fb579f8b00f3a590007251", - "topics": [], - "data": "0xaf31d6f4e3841b28c5b0581770ffaf2e1f5585158703a14049cde59eeb9733a488b963e44544990641bab848f807b8ccb680947fe318ac28dd993d7af5d9873f1127af77a360d4f3c1018b5a8782d75c7509fe8d383311432833c2c8a293f0a2a7b1bbcdbcc53df43624b7dea2c3eaa1e640bc5c", - "blockNumber": "0x161bd0f", - "transactionHash": "0x30c4df0d162a8e6b3a0677be57584d0a50da42677eff50c900f15f36ca1ad7a9", - "transactionIndex": "0x21", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xc4", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x0000bbddc7ce488642fb579f8b00f3a590007251", - "transactionHash": "0x30c4df0d162a8e6b3a0677be57584d0a50da42677eff50c900f15f36ca1ad7a9", - "transactionIndex": "0x21", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x59a902", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0x70df61c20275d9088c4e50c12de9af6d23276e5c", - "gasUsed": "0xb411", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000070df61c20275d9088c4e50c12de9af6d23276e5c", - "0x00000000000000000000000069275b5c10143c8fd1cbdb2637348b1558c73660" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000001312d00", - "blockNumber": "0x161bd0f", - "transactionHash": "0x315141d0a9a6f772f7a151235bdc319a32aed88e0ddd6ca34a94f903cdecd562", - "transactionIndex": "0x22", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xc5", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000200000400000000000000000000000000000000000000000000008000004000000000000000000000000000200000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000400000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0x315141d0a9a6f772f7a151235bdc319a32aed88e0ddd6ca34a94f903cdecd562", - "transactionIndex": "0x22", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x5a9c36", - "effectiveGasPrice": "0x3fce7f68", - "from": "0x10fdba297c8da9fa8904ffd699ce81de5615985c", - "gasUsed": "0xf334", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000010fdba297c8da9fa8904ffd699ce81de5615985c", - "0x00000000000000000000000025d772eb5e0c9dcd7229c7b9158b1e6cb73dadc1" - ], - "data": "0x00000000000000000000000000000000000000000000000000000007aef40a00", - "blockNumber": "0x161bd0f", - "transactionHash": "0xd208e85483ab2355d80676863ecac1a0c67f2455f8af2bcaa68e6cc9bbf92fe6", - "transactionIndex": "0x23", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xc6", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000008000008000008000000000000000020000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000200000000000000000040000000000000000000000004000000000000002000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionHash": "0xd208e85483ab2355d80676863ecac1a0c67f2455f8af2bcaa68e6cc9bbf92fe6", - "transactionIndex": "0x23", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x5b655a", - "effectiveGasPrice": "0xdc3a2c62", - "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", - "gasUsed": "0xc924", - "logs": [ - { - "address": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009642b23ed1e01df1092b92641051881a322f5d4e", - "0x000000000000000000000000a842ba73e0bfe9adeacd527570cc3ab2617de753" - ], - "data": "0x000000000000000000000000000000000000000000000012f365a5d8850e0000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8e59ea830734462addb7c73571c2092c1d2bfcc0689987a2d08dd234827e5c5e", - "transactionIndex": "0x24", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xc7", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000010000000000000000000800000000000000000000000000000000000000000000000000000000000020000000000000800000000000000000000000000000000000000000000000002000000000000000000000000000000000000400000208000000000000000000000000000000000800000000000000000000000000000000000000010", - "status": "0x1", - "to": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", - "transactionHash": "0x8e59ea830734462addb7c73571c2092c1d2bfcc0689987a2d08dd234827e5c5e", - "transactionIndex": "0x24", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x5c4c54", - "effectiveGasPrice": "0x29c520d4", - "from": "0xb1b2d032aa2f52347fbcfd08e5c3cc55216e8404", - "gasUsed": "0xe6fa", - "logs": [ - { - "address": "0xc52c326331e9ce41f04484d3b5e5648158028804", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000b1b2d032aa2f52347fbcfd08e5c3cc55216e8404", - "0x0000000000000000000000008e7dedd9b1a7fd101a08b1c95f3c602fe0d4b486" - ], - "data": "0x00000000000000000000000000000000000000000000001fd4a70fe0b9180000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xeb72be22b2d9521239741a245f8c90a561199b1df62649eea12f1d504fcf0511", - "transactionIndex": "0x25", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xc8", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000008000200000000000000000000000000000100000000000000000000000000000000002000000000000000000800000010000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000008000000000000000000000000000002000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xc52c326331e9ce41f04484d3b5e5648158028804", - "transactionHash": "0xeb72be22b2d9521239741a245f8c90a561199b1df62649eea12f1d504fcf0511", - "transactionIndex": "0x25", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x5e876a", - "effectiveGasPrice": "0x251c128e", - "from": "0x87fcc6982257de5bdaa679d08e56117aa0b5a5d1", - "gasUsed": "0x23b16", - "logs": [ - { - "address": "0xcced7736d6781f2a3aa9c7a2a24fea935c9fa9f8", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000087fcc6982257de5bdaa679d08e56117aa0b5a5d1", - "0x00000000000000000000000016da6c5883387edeb9e701efecd9ef9f8b902605" - ], - "data": "0x0000000000000000000000000000000000000000000000000002dc9608740d6e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", - "transactionIndex": "0x26", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xc9", - "removed": false - }, - { - "address": "0xcced7736d6781f2a3aa9c7a2a24fea935c9fa9f8", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x00000000000000000000000087fcc6982257de5bdaa679d08e56117aa0b5a5d1", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" - ], - "data": "0x0000000000000000000000000000000000000000000000000dd7807d23929f5c", - "blockNumber": "0x161bd0f", - "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", - "transactionIndex": "0x26", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xca", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000016da6c5883387edeb9e701efecd9ef9f8b902605", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" - ], - "data": "0x00000000000000000000000000000000000000000000000007ed690ca0ae0f23", - "blockNumber": "0x161bd0f", - "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", - "transactionIndex": "0x26", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xcb", - "removed": false - }, - { - "address": "0x16da6c5883387edeb9e701efecd9ef9f8b902605", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x000000000000000000000000000000000000000000000001cc51093ba644c15e00000000000000000000000000000000000000000000000000a887c79105ea90", - "blockNumber": "0x161bd0f", - "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", - "transactionIndex": "0x26", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xcc", - "removed": false - }, - { - "address": "0x16da6c5883387edeb9e701efecd9ef9f8b902605", - "topics": [ - "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002dc9608740d6e00000000000000000000000000000000000000000000000007ed690ca0ae0f230000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", - "transactionIndex": "0x26", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xcd", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" - ], - "data": "0x00000000000000000000000000000000000000000000000007ed690ca0ae0f23", - "blockNumber": "0x161bd0f", - "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", - "transactionIndex": "0x26", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xce", - "removed": false - } - ], - "logsBloom": "0x00200000000000000000000080000000000000000000000000010000000000000000000000000000000000000000000002000000080000000000000000204000200000000000000000000008000000200000000000400000000080000000000008000000000000000000000000000000000000000000040000000110000000000000040000000000004000000000000000000100000000080000004000000000020008000000000800000000000000000800000000000000000000000000000000000002000000000000000000000000000000000000001000040002000020000010200000000000000000000000000000000000000000080000000000000000", - "status": "0x1", - "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", - "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", - "transactionIndex": "0x26", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x5ee957", - "effectiveGasPrice": "0x338a0fe7", - "from": "0xf51710015536957a01f32558402902a2d9c35d82", - "gasUsed": "0x61ed", - "logs": [ - { - "address": "0x6f4bb3d0625b2cfd4400c6834943fde26c057f7a", - "topics": [ - "0xa419615bc8fda4c87663805ee2a3597a6d71c1d476911d9892f340d965bc7bf1" - ], - "data": "0x000000000000000000000000f51710015536957a01f32558402902a2d9c35d820000000000000000000000000000000000000000000000000635fb4242c74000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xf01b080912591defbcce2bb82770072f83b3a91a83ccf4bd7d54893f8cb9cbae", - "transactionIndex": "0x27", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xcf", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000", - "status": "0x1", - "to": "0x6f4bb3d0625b2cfd4400c6834943fde26c057f7a", - "transactionHash": "0xf01b080912591defbcce2bb82770072f83b3a91a83ccf4bd7d54893f8cb9cbae", - "transactionIndex": "0x27", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x5f3b5f", - "effectiveGasPrice": "0x29c520d4", - "from": "0x9696f59e4d72e237be84ffd425dcad154bf96976", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x19d315d10037a99d54d099a13e5e3a99a826ecae", - "transactionHash": "0xfd26a9f8e2db5d764cf715384c0bfac63f02b7562b0e6f955709d4da06ef261c", - "transactionIndex": "0x28", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x5f8d67", - "effectiveGasPrice": "0x29c520d4", - "from": "0x4976a4a02f38326660d17bf34b431dc6e2eb2327", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x7a9c7afb0673dfb0cacb2bfde0a55c873c59fe1c", - "transactionHash": "0xea9ffed304d53fbaabf6114693e8bb852ce67b3246f6db6bf20e2bb63c606cb6", - "transactionIndex": "0x29", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x5fdf6f", - "effectiveGasPrice": "0x27e37c7e", - "from": "0x6dce2424e724a02d231cbcf64edeee8d15bd9e4b", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xb386dff391830280763869d8f416206d16289e31", - "transactionHash": "0x6bbd906f6a605b46a4863de27fbd8497f1e320ddb54b8daf1c932fb25ecce27b", - "transactionIndex": "0x2a", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x60938c", - "effectiveGasPrice": "0x3b9aca00", - "from": "0x2d0d297c319be90844fab9b4ee070b8a81243163", - "gasUsed": "0xb41d", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000002d0d297c319be90844fab9b4ee070b8a81243163", - "0x000000000000000000000000cff7b816bdcc412d3a8ee0461ba7a30a9b6a5cac" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000da054a19", - "blockNumber": "0x161bd0f", - "transactionHash": "0x3f164f5ef4d0c9cea6fd7defbda6abdfb3f6dd12957fe85f721d1443e8ac1998", - "transactionIndex": "0x2b", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xd0", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000010000000000000000000000000001000040000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000008000000000000000000800000000000100000000000000000000000000080000000000000000000000000000000000000000000000002010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0x3f164f5ef4d0c9cea6fd7defbda6abdfb3f6dd12957fe85f721d1443e8ac1998", - "transactionIndex": "0x2b", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x60e594", - "effectiveGasPrice": "0x261331f8", - "from": "0xb5357b69181efcf8f6f45198b601e21e270a20ff", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x7bf38c17a6519dd17842bc37044cc30b92b81dc5", - "transactionHash": "0xe79c391b1b8ee215a67c818d1b3318872b9c8282d8ea3956349a831fa7fffbcd", - "transactionIndex": "0x2c", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x61379c", - "effectiveGasPrice": "0x23d0d9fc", - "from": "0x2cff890f0378a11913b6129b2e97417a2c302680", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xa455eb2c7a4f4b90106cad96cc9c36e62cd46806", - "transactionHash": "0x124c9963d0414550d86a8c6d796b054f04ab221dfd4df6fc37135a5d2a33ed09", - "transactionIndex": "0x2d", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x6189a4", - "effectiveGasPrice": "0x23d0d9fc", - "from": "0x0da475ffc29623e805bbcf7216ea8a438209882c", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x4762631fdff1a1fed3eedf95a685d57007cf9b43", - "transactionHash": "0x4d99f405c49268e1d4a3845a46e54178c6b1becd3e2dacc512d18007f1be3076", - "transactionIndex": "0x2e", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x635d27", - "effectiveGasPrice": "0xa3c4056e0", - "from": "0x6f0a91ef8adeb54db0e63be507747ab9a31d3926", - "gasUsed": "0x1d383", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000e0554a476a092703abdb3ef35c80e0d76d32939f", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000739d1d714", - "blockNumber": "0x161bd0f", - "transactionHash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", - "transactionIndex": "0x2f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xd1", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", - "0x000000000000000000000000e0554a476a092703abdb3ef35c80e0d76d32939f" - ], - "data": "0x000000000000000000000000000000000000000000000000672ed4843c7fdc00", - "blockNumber": "0x161bd0f", - "transactionHash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", - "transactionIndex": "0x2f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xd2", - "removed": false - }, - { - "address": "0xe0554a476a092703abdb3ef35c80e0d76d32939f", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffff8c62e28ec000000000000000000000000000000000000000000000000672ed4843c7fdc000000000000000000000000000000000000003c7b65443ee3c32ab7469f75cd270000000000000000000000000000000000000000000000000893bb9df6efdc72000000000000000000000000000000000000000000000000000000000002f1c0", - "blockNumber": "0x161bd0f", - "transactionHash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", - "transactionIndex": "0x2f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xd3", - "removed": false - } - ], - "logsBloom": "0x00000000000000002000000000000000010000000400000000000000000000000000000000000000000000000000000002000000080020000000040000000000000000000000000808000008000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000010000800000000000000000000000000000000000000000000010000000020000000000000000000000000200000000000000000000000000400000000000000000000000000000002000000000000000000000000000000000400000000000000000000000000200000000000000000000000000001000000000000000000000000000000", - "status": "0x1", - "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", - "transactionHash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", - "transactionIndex": "0x2f", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x67f3da", - "effectiveGasPrice": "0xe53094a6", - "from": "0xdada79040afa6ac7d7660e7e18f8a9b82c31f49a", - "gasUsed": "0x496b3", - "logs": [ - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", - "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db" - ], - "data": "0x00000000000000000000000000000000000000000000000013464f00da493600", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", - "transactionIndex": "0x30", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xd4", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db", - "0x000000000000000000000000d51a44d3fae010294c616388b506acda1bfaae46" - ], - "data": "0x00000000000000000000000000000000000000000000000013464f00da493600", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", - "transactionIndex": "0x30", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xd5", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000d51a44d3fae010294c616388b506acda1bfaae46", - "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db" - ], - "data": "0x00000000000000000000000000000000000000000000000000000001598b4135", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", - "transactionIndex": "0x30", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xd6", - "removed": false - }, - { - "address": "0xd51a44d3fae010294c616388b506acda1bfaae46", - "topics": [ - "0xb2e76ae99761dc136e598d4a629bb347eccb9532a5f8bbd72e18467c3c34cc98", - "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000013464f00da493600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001598b4135", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", - "transactionIndex": "0x30", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xd7", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000001598b4135", - "blockNumber": "0x161bd0f", - "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", - "transactionIndex": "0x30", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xd8", - "removed": false - } - ], - "logsBloom": "0x00000000000000800000000000000000000000000000000020000000000000000000000000000000000000000000010002000000080000000040040000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000000000000040000000000010000000000000000000000000000000000000000000000000000000000000000002100000000080000000000000000080000000000080000000000000000000000000000000000002000000000040000000000000000000000400001000000000000000000000200001000000000000000020000000000000000000000000000000000000", - "status": "0x1", - "to": "0xec6fc9be2d5e505b40a2df8b0622cd25333823db", - "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", - "transactionIndex": "0x30", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x6ac18b", - "effectiveGasPrice": "0x153bf91bc", - "from": "0xebedc8e9ff409b23dd251f87ccbffa8075f87255", - "gasUsed": "0x2cdb1", - "logs": [ - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", - "0x0000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b" - ], - "data": "0x00000000000000000000000000000000000000000000000016c1d8e56b090000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", - "transactionIndex": "0x31", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xd9", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", - "0x0000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b" - ], - "data": "0x00000000000000000000000000000000000000000000000016c1d8e56b090000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", - "transactionIndex": "0x31", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xda", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000197f3bff3", - "blockNumber": "0x161bd0f", - "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", - "transactionIndex": "0x31", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xdb", - "removed": false - }, - { - "address": "0x7f86bf177dd4f3494b841a37e810a34dd56c829b", - "topics": [ - "0x143f1f8e861fbdeddd5b46e844b7d3ac7b86a122f36e8c463859ee6811b1f29c", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000016c1d8e56b09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000197f3bff3000000000000000000000000000000000000000000000000000000000031dbf900000000000000e1a52b2444049dac570000000000001802d2bd63425c10da74", - "blockNumber": "0x161bd0f", - "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", - "transactionIndex": "0x31", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xdc", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000002000100080000000000040000000000000000000000000008000008000000000000002000440000001000000000000000000000000000000000000000000000000000000000040000000010000000000000000000000000000040000000000000010004010000000000000000000000000000000000201000000000000000000000000000000000000000000000000000000002000000000000020000000000000000000400000000000002000000000000200000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", - "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", - "transactionIndex": "0x31", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x6d2246", - "effectiveGasPrice": "0x3a5d5e6a8d", - "from": "0xac8b6e55c809e4dd83dc9943cf460c1caca84125", - "gasUsed": "0x260bb", - "logs": [ - { - "address": "0x000000000004444c5dc75cb358380d2e3de08a90", - "topics": [ - "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", - "0x21c67e77068de97969ba93d4aab21826d33ca12bb9f565d8496e8fda8a82ca27", - "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffd0a718657b2178000000000000000000000000000000000000000000000000000000000350c60dcb5000000000000000000000000000000000000000000043bb7248357b1b91f72f70000000000000000000000000000000000000000000000003a6da3f97343c983fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e4200000000000000000000000000000000000000000000000000000000000001f4", - "blockNumber": "0x161bd0f", - "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", - "transactionIndex": "0x32", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xdd", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", - "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" - ], - "data": "0x000000000000000000000000000000000000000000000002f58e79a84de88000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", - "transactionIndex": "0x32", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xde", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", - "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" - ], - "data": "0x000000000000000000000000000000000000000000000002f58e79a84de88000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", - "transactionIndex": "0x32", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xdf", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x000000000000000000000000000000000000000000000000000000350c60dcb5", - "blockNumber": "0x161bd0f", - "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", - "transactionIndex": "0x32", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xe0", - "removed": false - } - ], - "logsBloom": "0x000000000000020000000000000000000000000000000000000000080000000000000000200000000010000000000000020000000c0000000000040000000000000000000000000008000008000000000000000000440020000000000000000000000000000000000000000000000000000000000000040000000010000000000000000800000000000002000000000000000000010000000000000000000000080008000000200000000000100000000000000000000000000000000000000000000802000000000000000000000000000000400400000000000002000000000000200000000000004000000000000000000000000000000000000000004000", - "status": "0x1", - "to": "0xba47cbfdd61029833841fcaa2ec2591ddfa87e51", - "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", - "transactionIndex": "0x32", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x6ef9d5", - "effectiveGasPrice": "0x182f2c39bc", - "from": "0xeaa9ebddd373c4bd8bb92dfcc9c7e7fcdb268e51", - "gasUsed": "0x1d78f", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000011b815efb8f581194ae79006d24e0d814b7697f6", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000f9ce27d34", - "blockNumber": "0x161bd0f", - "transactionHash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", - "transactionIndex": "0x33", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xe1", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", - "0x00000000000000000000000011b815efb8f581194ae79006d24e0d814b7697f6" - ], - "data": "0x000000000000000000000000000000000000000000000000defc43c79ba7e000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", - "transactionIndex": "0x33", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xe2", - "removed": false - }, - { - "address": "0x11b815efb8f581194ae79006d24e0d814b7697f6", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x000000000000000000000000000000000000000000000000defc43c79ba7e000fffffffffffffffffffffffffffffffffffffffffffffffffffffff0631d82cc000000000000000000000000000000000000000000043ba34777dac0e090457c00000000000000000000000000000000000000000000000010b912988f66a1bafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e41", - "blockNumber": "0x161bd0f", - "transactionHash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", - "transactionIndex": "0x33", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xe3", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010002000000080020000000040000000000000000000000000800000008000000000000000000040000000010000000000000000000000000000000000000000000000000000000000000000090000800000000000000000000000000000000000000000000000000000400000000100000000000000000000000000080000000000000000000000000000004000000000000000002000000000000000000000000000000000400000000000000000000000000200000000000000000000000000000000000000000000008001000000000", - "status": "0x1", - "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", - "transactionHash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", - "transactionIndex": "0x33", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x71623a", - "effectiveGasPrice": "0xee6546334", - "from": "0x45923a43492d0deb458cb97c4ca8b7ccb0a20c71", - "gasUsed": "0x26865", - "logs": [ - { - "address": "0x000000000004444c5dc75cb358380d2e3de08a90", - "topics": [ - "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", - "0x72331fcb696b0151904c03584b66dc8365bc63f8a144d89a773384e3a579ca73", - "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffff4b85e6bd418c18000000000000000000000000000000000000000000000000000000000ca2eaebe7000000000000000000000000000000000000000000043ba347af94015f704a750000000000000000000000000000000000000000000000000dac0e6095949700fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e4100000000000000000000000000000000000000000000000000000000000001f4", - "blockNumber": "0x161bd0f", - "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", - "transactionIndex": "0x34", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xe4", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", - "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" - ], - "data": "0x000000000000000000000000000000000000000000000000b47a1942be73e800", - "blockNumber": "0x161bd0f", - "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", - "transactionIndex": "0x34", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xe5", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", - "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" - ], - "data": "0x000000000000000000000000000000000000000000000000b47a1942be73e800", - "blockNumber": "0x161bd0f", - "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", - "transactionIndex": "0x34", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xe6", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000ca2eaebe7", - "blockNumber": "0x161bd0f", - "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", - "transactionIndex": "0x34", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xe7", - "removed": false - } - ], - "logsBloom": "0x000000000000020000000000000000000000000000000000000000000000000000000000200000000010000000000100020000000c0000000000040000000000000000000000000000000008000000000020000000440020000000000000000000000000000000000000000000000000000000000000040000000010000000000000000800000000000002000000000000000000000000000000080000100000000008000000000000000080100000000000000000000000000000000000000000000802100000000000000000000000000000400400000000000002000000000000200000000000004000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xba47cbfdd61029833841fcaa2ec2591ddfa87e51", - "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", - "transactionIndex": "0x34", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x736cc5", - "effectiveGasPrice": "0x23cf3fd5", - "from": "0x639b2d751e6436667b97fe350c0fed111fc33fb4", - "gasUsed": "0x20a8b", - "logs": [ - { - "address": "0x000000000004444c5dc75cb358380d2e3de08a90", - "topics": [ - "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", - "0x00b9edc1583bf6ef09ff3a09f6c23ecb57fd7d0bb75625717ec81eed181e22d7", - "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffb2dc9c126573b1060000000000000000000000000000000000000000000000000000000566e5c345000000000000000000000000000000000000000000043b8825a96b1a400000000000000000000000000000000000000000000000000000000601e4d79975daecfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e3f0000000000000000000000000000000000000000000000000000000000000064", - "blockNumber": "0x161bd0f", - "transactionHash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", - "transactionIndex": "0x35", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xe8", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", - "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000566e5c345", - "blockNumber": "0x161bd0f", - "transactionHash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", - "transactionIndex": "0x35", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xe9", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", - "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" - ], - "data": "0x0000000000000000000000000000000000000000000000004d2363ed9a8c4efa", - "blockNumber": "0x161bd0f", - "transactionHash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", - "transactionIndex": "0x35", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xea", - "removed": false - } - ], - "logsBloom": "0x000000000000000000000000000000000000000000000000000000000000000000000000200000000010000000000000020000000c0000000000000000000000000000000000000008000008000000000000000000520020000000000000000000000000000000000000000000000000000000000000040000000010000000000000000800000000400000000000000000000000010000000000000000000000000000000000200000000000100000000000000000000000000000000000000000000802400000000000001000000000000000400000000000000002000000000000200000000000004000000100000000000000000000000000000000000000", - "status": "0x1", - "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", - "transactionHash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", - "transactionIndex": "0x35", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x75a487", - "effectiveGasPrice": "0x23cf3fd5", - "from": "0x5c132e26694e1f3bad52a4f55c9cfd0f181d7463", - "gasUsed": "0x237c2", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000007df7c84f2f9dcef3c0813e539878b76b89a916f8", - "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000013ee400b", - "blockNumber": "0x161bd0f", - "transactionHash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", - "transactionIndex": "0x36", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xeb", - "removed": false - }, - { - "address": "0x2dff88a56767223a5529ea5960da7a3f5f766406", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167", - "0x0000000000000000000000007df7c84f2f9dcef3c0813e539878b76b89a916f8" - ], - "data": "0x000000000000000000000000000000000000000000000074e8b8f27fc31243d9", - "blockNumber": "0x161bd0f", - "transactionHash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", - "transactionIndex": "0x36", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xec", - "removed": false - }, - { - "address": "0x7df7c84f2f9dcef3c0813e539878b76b89a916f8", - "topics": [ - "0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83", - "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167", - "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" - ], - "data": "0x000000000000000000000000000000000000000000000074e8b8f27fc31243d9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffec11bff500000000000000000000000000000000000000000000069c1adf3fbff1400000000000000000000000000000000000000000000000000000082a8a4ae870e18dfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7fd500000000000000000000000000000000000000000000000017f16700ebe17fd90000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", - "transactionIndex": "0x36", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xed", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000002000002000000000000000000008800400000000000040000000040000008000008000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000040200000000002000000000000000000000000000000000000000000000002000000020000000000000000000000000000000000000000000000000008000000000000000000000100000000100000000000000000000000000000", - "status": "0x1", - "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", - "transactionHash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", - "transactionIndex": "0x36", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x77af0a", - "effectiveGasPrice": "0x23cf3fd5", - "from": "0x69021e92840bd777cf2c495f3be516700e430a5b", - "gasUsed": "0x20a83", - "logs": [ - { - "address": "0x000000000004444c5dc75cb358380d2e3de08a90", - "topics": [ - "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", - "0x1e58170b9bd63a7394ddb486ed8e94d2255568a7913fb02a24f30e079f4e0e9a", - "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb2a5900000000000000000000000000000000000000000000000000000000156908bb0000000000000000000000000000000000000021ac6aeaccbcfc000000000000000000000000000000000000000000000000000000000000000000024894324700000000000000000000000000000000000000000000000000000000000112c100000000000000000000000000000000000000000000000000000000000004e2", - "blockNumber": "0x161bd0f", - "transactionHash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", - "transactionIndex": "0x37", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xee", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", - "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000156908bb", - "blockNumber": "0x161bd0f", - "transactionHash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", - "transactionIndex": "0x37", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xef", - "removed": false - }, - { - "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167", - "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000004d5a7", - "blockNumber": "0x161bd0f", - "transactionHash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", - "transactionIndex": "0x37", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xf0", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000200000000000000000000020000000001000000000010000000000040000000000000000000000000000000000000000000008000001000000000000120020000000000000000000000000000000000000000000000000020000000000000000000010000000000000000800000010000000000000000000000000000000000000000000100000010000000000000000000080100000000000000000000000000000000000000000000802000000000000000000000000000000400000000000000000000000000000000000000000004000000100000000200000000000000000000000000000", - "status": "0x1", - "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", - "transactionHash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", - "transactionIndex": "0x37", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x7a1d3c", - "effectiveGasPrice": "0x36eb8fdca", - "from": "0x545da54509ef233642343b8beac5ef4443e79d73", - "gasUsed": "0x26e32", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000006ca298d2983ab03aa1da7679389d955a4efee15c", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000002b22ae61e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", - "transactionIndex": "0x38", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xf1", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", - "0x0000000000000000000000006ca298d2983ab03aa1da7679389d955a4efee15c" - ], - "data": "0x0000000000000000000000000000000000000000000000002680cb38d1649c00", - "blockNumber": "0x161bd0f", - "transactionHash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", - "transactionIndex": "0x38", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xf2", - "removed": false - }, - { - "address": "0x6ca298d2983ab03aa1da7679389d955a4efee15c", - "topics": [ - "0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83", - "0x0000000000000000000000003b55732f6d3997a7d44a041b8496e1a60712a35f", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x0000000000000000000000000000000000000000000000002680cb38d1649c00fffffffffffffffffffffffffffffffffffffffffffffffffffffffd4dd519e2000000000000000000000000000000000000000000043b9fdf238091c45e86f900000000000000000000000000000000000000000000000002b610f914e5d61bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e410000000000000000000000000000000000000000000000000001acf7b91288990000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", - "transactionIndex": "0x38", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xf3", - "removed": false - } - ], - "logsBloom": "0x00000040000000000000002000000000000000000000400000000000000000000000000000000000000000000002010002000008080000000000040000000000040000000040000000000008000000000000000000040000000000000000000000000000000000000000000000000000000004000000000200000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000002800000000000000000000000000000000002000000000000000000000000000000000400000000000004000000000000200000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x3b55732f6d3997a7d44a041b8496e1a60712a35f", - "transactionHash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", - "transactionIndex": "0x38", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x7d266f", - "effectiveGasPrice": "0x214369152", - "from": "0x448166a91e7bc50d0ac720c2fbed29e0963f5af8", - "gasUsed": "0x30933", - "logs": [ - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", - "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37" - ], - "data": "0x0000000000000000000000000000000000000000000000007bde86a2e53bb9a6", - "blockNumber": "0x161bd0f", - "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", - "transactionIndex": "0x39", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xf4", - "removed": false - }, - { - "address": "0x52aa899454998be5b000ad077a46bbe360f4e497", - "topics": [ - "0x4d93b232a24e82b284ced7461bf4deacffe66759d5c24513e6f29e571ad78d15", - "0x000000000000000000000000836951eb21f3df98273517b7249dceff270d34bf", - "0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" - ], - "data": "0x0000000000000000000000000000000000000000000000004fcfa02432be1e80ffffffffffffffffffffffffffffffffffffffffffffffffd3f119814d8be3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c917b591b25869140000000000000000e6be8696f7624f140000000000000007d4adbffcd8000007b35e662761a29611bc01e8ac43e80127", - "blockNumber": "0x161bd0f", - "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", - "transactionIndex": "0x39", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xf5", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000052aa899454998be5b000ad077a46bbe360f4e497", - "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37" - ], - "data": "0x00000000000000000000000000000000000000000000000000000008ac01b3f7", - "blockNumber": "0x161bd0f", - "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", - "transactionIndex": "0x39", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xf6", - "removed": false - }, - { - "address": "0x52aa899454998be5b000ad077a46bbe360f4e497", - "topics": [ - "0x4d93b232a24e82b284ced7461bf4deacffe66759d5c24513e6f29e571ad78d15", - "0x000000000000000000000000836951eb21f3df98273517b7249dceff270d34bf", - "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffa699cc60d00000000000000000000000000000000000000000000000000000003159e7a04000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37000000000000000000dd001001890700000000000000000001111c3fd1050d0000000000000000085fc905d39000000815a8992621a297309c01e82f03e80299", - "blockNumber": "0x161bd0f", - "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", - "transactionIndex": "0x39", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xf7", - "removed": false - }, - { - "address": "0x836951eb21f3df98273517b7249dceff270d34bf", - "topics": [ - "0xdc004dbca4ef9c966218431ee5d9133d337ad018dd5b5c5493722803f75c64f7" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007bde86a2e53bb9a600000000000000000000000000000000000000000000000000000008ac01b3f7000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37", - "blockNumber": "0x161bd0f", - "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", - "transactionIndex": "0x39", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xf8", - "removed": false - } - ], - "logsBloom": "0x00000000000008000000000000000000000000000000000000800000000000000004000000000000000002400000000002000000080000000010000000000000000000000000000008000008000000000000000000500000000000000000000000040000000002000002020000000008000000000400040000000010000000000000000000000000000000000000000200000000010010000000000000040000000000000000200000000000000000000000000000000000000800200000000000000002000000000000000000100800000000004000000008000002000002000000240000000000000000000000000004400000000000000000000200000000", - "status": "0x1", - "to": "0xfbd4cdb413e45a52e2c8312f670e9ce67e794c37", - "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", - "transactionIndex": "0x39", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x809ce1", - "effectiveGasPrice": "0x1ebd76860", - "from": "0x7f982f64ee9dfd024acb8c2abb5884fef0b9d440", - "gasUsed": "0x37672", - "logs": [ - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", - "0x0000000000000000000000005236333ef2baa45b450689b69e4e4b277d84f954" - ], - "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae900000000000000000000000000000000000000000000000000000003548cbd98000000000000000000000000000000000000000000000002b5e3af16b1880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000388afd5e921fa3ba3fa6b9bd5d1e0ef74af410ac2b1755d3d886b693e6f421fd755236333ef2baa45b450689b69e4e4b277d84f95468a5d5340000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", - "transactionIndex": "0x3a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xf9", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000005236333ef2baa45b450689b69e4e4b277d84f954", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x00000000000000000000000000000000000000000000000000000003548cbd98", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", - "transactionIndex": "0x3a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xfa", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" - ], - "data": "0x000000000000000000000000000000000000000000000000000000035413c376", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", - "transactionIndex": "0x3a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xfb", - "removed": false - }, - { - "address": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000002b5e3af16b1880000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", - "transactionIndex": "0x3a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xfc", - "removed": false - }, - { - "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", - "topics": [ - "0xadd7095becdaa725f0f33243630938c861b0bba83dfd217d4055701aa768ec2e", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", - "transactionIndex": "0x3a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xfd", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", - "0x000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000004dcebcba00000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", - "transactionIndex": "0x3a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xfe", - "removed": false - }, - { - "address": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x0000000000000000000000005236333ef2baa45b450689b69e4e4b277d84f954" - ], - "data": "0x000000000000000000000000000000000000000000000002b5e3af16b1880000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", - "transactionIndex": "0x3a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0xff", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", - "0x0000000000000000000000004dd1be0cd607e5382dd2844fa61d3a17e3e83d56" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", - "transactionIndex": "0x3a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x100", - "removed": false - } - ], - "logsBloom": "0x000010040000000000000000000010000040000800000000000000000000000000000000000000000000000000000100000000000000000020000440000000020000000000000000202000080000000000000001000400000000000000000002000000000a0000000000800000000880000000000000000010004010000010000000080000000000000201000000002000000000400000000000000000100000000000600000000000000080000000000000000000000000010000000000000000000002000800000008000000000000000020000400000800000000000020000000000000000000000002000000000000004000000000000000000000000000", - "status": "0x1", - "to": "0x4dd1be0cd607e5382dd2844fa61d3a17e3e83d56", - "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", - "transactionIndex": "0x3a", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x82156c", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0x55823001c8cd87a6e86716ca768bce51f2d89c9c", - "gasUsed": "0x1788b", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000f7b52be96b229dc63e6301bea175a1b5f756c274", - "0x000000000000000000000000ce5586f0fbe00a3efbfc8d2caa714fdbe6a052eb" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000129fc57bd", - "blockNumber": "0x161bd0f", - "transactionHash": "0xbc730be36c276ca5a0a02eeaa192ed302cf87c7453ad567e22fc951a0bf8d7e8", - "transactionIndex": "0x3b", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x101", - "removed": false - } - ], - "logsBloom": "0x00000100000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000008000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000100000000000000000000000000000", - "status": "0x1", - "to": "0xf7b52be96b229dc63e6301bea175a1b5f756c274", - "transactionHash": "0xbc730be36c276ca5a0a02eeaa192ed302cf87c7453ad567e22fc951a0bf8d7e8", - "transactionIndex": "0x3b", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x9134a0", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0x8611abf54b7ad26ccbfe99a213c201ee60dba0e5", - "gasUsed": "0xf1f34", - "logs": [ - { - "address": "0x13a5a916356242879b9509fd12bf8e4760a3f438", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000022", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x102", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5", - "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000f4240", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x103", - "removed": false - }, - { - "address": "0x13a5a916356242879b9509fd12bf8e4760a3f438", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000f384c", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x104", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438", - "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000f4240", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x105", - "removed": false - }, - { - "address": "0x79fd640000f8563a866322483524a4b48f1ed702", - "topics": [ - "0x15c027cc4fd826d986cad358803439f7326d3aa4ed969ff90dbee4bc150f68e9" - ], - "data": "0x00000000000000000000000000000000000000000000000000000018cdea085e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x106", - "removed": false - }, - { - "address": "0x79fd640000f8563a866322483524a4b48f1ed702", - "topics": [ - "0x548669ea9bcc24888e6d74a69c9865fa98d795686853b8aa3eb87814261bbb71" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x107", - "removed": false - }, - { - "address": "0x79fd640000f8563a866322483524a4b48f1ed702", - "topics": [ - "0xf66f28b40975dbb933913542c7e6a0f50a1d0f20aa74ea6e0efe65ab616323ec" - ], - "data": "0x00000000000000000000000000000000000000000000000000000018cdea085e0000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x108", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438", - "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000f4240", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x109", - "removed": false - }, - { - "address": "0x79fd640000f8563a866322483524a4b48f1ed702", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" - ], - "data": "0x0000000000000000000000000000000000000000000000000daf726dd543ad01", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x10a", - "removed": false - }, - { - "address": "0x79fd640000f8563a866322483524a4b48f1ed702", - "topics": [ - "0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7", - "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438", - "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000daf726dd543ad01", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x10b", - "removed": false - }, - { - "address": "0x870ac11d48b15db9a138cf899d20f13f79ba00bc", - "topics": [ - "0x7120161a7b3d31251e01294ab351ef15a41b91659a36032e4641bb89b121e321", - "0xa921ef34e2fc7a27ccc50ae7e4b154e16c9799d3387076c421423ef52ac4df99" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000062669641000000000000000000000000000000000000000000000000000000004cd5602e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x10c", - "removed": false - }, - { - "address": "0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb", - "topics": [ - "0x9d9bd501d0657d7dfe415f779a620a62b78bc508ddc0891fbbd8b7ac0f8fce87", - "0xa921ef34e2fc7a27ccc50ae7e4b154e16c9799d3387076c421423ef52ac4df99" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000062669641000000000000000000000000000000000000000000000000000000000b47db310000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x10d", - "removed": false - }, - { - "address": "0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb", - "topics": [ - "0xedf8870433c83823eb071d3df1caa8d008f12f6440918c20d75a3602cda30fe0", - "0xa921ef34e2fc7a27ccc50ae7e4b154e16c9799d3387076c421423ef52ac4df99", - "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702", - "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000d51ee5a890", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x10e", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702", - "0x000000000000000000000000bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000f4240", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x10f", - "removed": false - }, - { - "address": "0x79fd640000f8563a866322483524a4b48f1ed702", - "topics": [ - "0x15c027cc4fd826d986cad358803439f7326d3aa4ed969ff90dbee4bc150f68e9" - ], - "data": "0x00000000000000000000000000000000000000000000000000000018cdf94a9e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x110", - "removed": false - }, - { - "address": "0x034771103dc1e9b1f2ebda95896fc44b6d63edc7", - "topics": [ - "0x34f2a7363b1ef64b0b62a223c88cf3f54a68686acfcb9531d7deb46004f37c46", - "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x111", - "removed": false - }, - { - "address": "0x13a5a916356242879b9509fd12bf8e4760a3f438", - "topics": [ - "0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7", - "0x0000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5", - "0x0000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000f384c", - "blockNumber": "0x161bd0f", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x112", - "removed": false - } - ], - "logsBloom": "0x00000000000040000000000000000080000000000000000001000000000040000000400000000000000000000000010000000000000000000000000020a4400000000040001000000000000880000000004000080028000000000108000000000000000002000002000000000000080000000000000400000000001800000000000800000000000800200000000000000000000000000000003004000010040002000000002000000000008000000000004010000400040000000000000000002800000200000000000100000000000008000000810900000000000000002040c010000001000000000000240201000400000002000008000000000400080000", - "status": "0x1", - "to": "0x13a5a916356242879b9509fd12bf8e4760a3f438", - "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", - "transactionIndex": "0x3c", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x9186a8", - "effectiveGasPrice": "0xdc3a2c62", - "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x1b216d8b75a050041e59860ff7fda6e3411424f4", - "transactionHash": "0x6ae2f1fd6116d2b93223ae3548caf9d85e43d8fefec88814d36f38b916bab652", - "transactionIndex": "0x3d", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x91d8b0", - "effectiveGasPrice": "0xdc3a2c62", - "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x2e17aa7437b4ac446e5750202ab1d48c7884f5d9", - "transactionHash": "0x3991e33f52ae3cf5167bf1f07cc8d358caf226022c5128ad991fe279b702a27d", - "transactionIndex": "0x3e", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x92a1d4", - "effectiveGasPrice": "0xdc3a2c62", - "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", - "gasUsed": "0xc924", - "logs": [ - { - "address": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009642b23ed1e01df1092b92641051881a322f5d4e", - "0x000000000000000000000000a882df02283fa89d5659a870414e2c1803fd54ca" - ], - "data": "0x00000000000000000000000000000000000000000000000ab407c9eb05200000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xed80b011a517f5aab29dc7b79061fd54b68cc36c2023bfaff2812be53328e7fd", - "transactionIndex": "0x3f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x113", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000800000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000010000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000208000000000000000000000000000000000800000000000000000000000800000000000000000", - "status": "0x1", - "to": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", - "transactionHash": "0xed80b011a517f5aab29dc7b79061fd54b68cc36c2023bfaff2812be53328e7fd", - "transactionIndex": "0x3f", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x92f3dc", - "effectiveGasPrice": "0xdc3a2c62", - "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x0b9b42d7edb6b669a24f50157f80e5d909cb6eb8", - "transactionHash": "0x06d504980fbacf359463537147c81348f5978476433367b067b185ad95be82e0", - "transactionIndex": "0x40", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x9345e4", - "effectiveGasPrice": "0xdc3a2c62", - "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x0f000db45a0f4320ac77c5ba21312ae52174326a", - "transactionHash": "0xd33b517a15607a18d3c33ddc1f237aa61e9a3947b21287768ce3ba86d2495a03", - "transactionIndex": "0x41", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x93fbd4", - "effectiveGasPrice": "0xd6455cd2", - "from": "0x7586854ec236f3ef8e7e5c7cc55dd3b449feed98", - "gasUsed": "0xb5f0", - "logs": [ - { - "address": "0xfa417cd491632620a582851b07abf7e3447bba71", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x0000000000000000000000007586854ec236f3ef8e7e5c7cc55dd3b449feed98", - "0x00000000000000000000000077edae6a5f332605720688c7fda7476476e8f83f" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "blockNumber": "0x161bd0f", - "transactionHash": "0x1827070bb19ea45e3bf9eec57ccc94690038337ada1bc618ab79eb21a8078dac", - "transactionIndex": "0x42", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x114", - "removed": false - } - ], - "logsBloom": "0x01000000000000000000000000001000100000000000000000000000000000200000000000000000000000000000000400000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000002000000000020000000000000000000000000000000000", - "status": "0x1", - "to": "0xfa417cd491632620a582851b07abf7e3447bba71", - "transactionHash": "0x1827070bb19ea45e3bf9eec57ccc94690038337ada1bc618ab79eb21a8078dac", - "transactionIndex": "0x42", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x94ac3c", - "effectiveGasPrice": "0xd69f9dd4", - "from": "0x3fdd41c3622aa33227d42d87c6838aaa9dca0dcf", - "gasUsed": "0xb068", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000003fdd41c3622aa33227d42d87c6838aaa9dca0dcf", - "0x0000000000000000000000008476de5d91038c1015c73e6fec0a97d45d91ec18" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000008ebb1c8", - "blockNumber": "0x161bd0f", - "transactionHash": "0xc8d9083af83a6c8fa73051663d8a2c9d79195be21063c09066d39d562d1be993", - "transactionIndex": "0x43", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x115", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000002000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000080000000000000000000000000000000000000000000000000000000000000000000010000000010000000000000000000000000000000000000000000000000010000080000000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionHash": "0xc8d9083af83a6c8fa73051663d8a2c9d79195be21063c09066d39d562d1be993", - "transactionIndex": "0x43", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x959f70", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0x93228d328c9c74c2bfe9f97638bbb5ef322f2bd5", - "gasUsed": "0xf334", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000093228d328c9c74c2bfe9f97638bbb5ef322f2bd5", - "0x00000000000000000000000041ea4e72b88a8e84b83b739f4092339d721574cf" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000ac9d740", - "blockNumber": "0x161bd0f", - "transactionHash": "0x7e1bbe3049928a58a967ff5188615b894fc8093d92778abcdedbdbdf9957c052", - "transactionIndex": "0x44", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x116", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000010000000000000000000000000000000000000000000000000010000000000000000008080000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000400", - "status": "0x1", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionHash": "0x7e1bbe3049928a58a967ff5188615b894fc8093d92778abcdedbdbdf9957c052", - "transactionIndex": "0x44", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x96ec8c", - "effectiveGasPrice": "0x7a4ab68f", - "from": "0x8347cd390c696372aa5ac17865117d5521c5476a", - "gasUsed": "0x14d1c", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a", - "0x0000000000000000000000005c7bcd6e7de5423a257d81b442095a1a6ced35c5" - ], - "data": "0x000000000000000000000000000000000000000000000000000000005120bce0", - "blockNumber": "0x161bd0f", - "transactionHash": "0x75205100cde683dcb84a3b361f7320c0a0adad9f4c151a7088938db3a90c682b", - "transactionIndex": "0x45", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x117", - "removed": false - }, - { - "address": "0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5", - "topics": [ - "0x32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3", - "0x0000000000000000000000000000000000000000000000000000000000002105", - "0x00000000000000000000000000000000000000000000000000000000002e16ea", - "0x0000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a" - ], - "data": "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000005120bce000000000000000000000000000000000000000000000000000000000511e68ef0000000000000000000000000000000000000000000000000000000068a5cd170000000000000000000000000000000000000000000000000000000068a5fc010000000000000000000000000000000000000000000000000000000068a5ce730000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a000000000000000000000000394311a6aaa0d8e3411d8b62de4578d41322d1bd00000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x75205100cde683dcb84a3b361f7320c0a0adad9f4c151a7088938db3a90c682b", - "transactionIndex": "0x45", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x118", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000001000000000000000001000000000000000000000000000008000108000000000000000000000000000000000000000000010000000000000000000000000000000120000000000000000010000000000000000800000008000800100000001000000000210008000000000020000000001000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000010000000000000000000000000000000000000000000004000000000000000000000000000000", - "status": "0x1", - "to": "0x8347cd390c696372aa5ac17865117d5521c5476a", - "transactionHash": "0x75205100cde683dcb84a3b361f7320c0a0adad9f4c151a7088938db3a90c682b", - "transactionIndex": "0x45", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x97d8c6", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0x91d40e4818f4d4c57b4578d9eca6afc92ac8debe", - "gasUsed": "0xec3a", - "logs": [ - { - "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000091d40e4818f4d4c57b4578d9eca6afc92ac8debe", - "0x000000000000000000000000124f9ec75369ea83cdfdb1d87c5874ca7f081107" - ], - "data": "0x000000000000000000000000000000000000000000026d04ab7d750dfb350000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6a3001d1458aaae959847d930c1f1b4e813899c8702e5a3f7ea14123b633ee52", - "transactionIndex": "0x46", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x119", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000080000000000000008000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000010000000000000000000000000000000000010000000000000000000000000800200000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000001000000000000000000000000000000000000080001000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x6982508145454ce325ddbe47a25d4ec3d2311933", - "transactionHash": "0x6a3001d1458aaae959847d930c1f1b4e813899c8702e5a3f7ea14123b633ee52", - "transactionIndex": "0x46", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x997e69", - "effectiveGasPrice": "0x5f6a09d5", - "from": "0x0fc7cb62247151faf5e7a948471308145f020d2e", - "gasUsed": "0x1a5a3", - "logs": [ - { - "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000004585fe77225b41b697c938b018e2ac67ac5a20c0", - "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000003a4592", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", - "transactionIndex": "0x47", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x11a", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c", - "0x0000000000000000000000004585fe77225b41b697c938b018e2ac67ac5a20c0" - ], - "data": "0x0000000000000000000000000000000000000000000000000e6292767661e2a9", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", - "transactionIndex": "0x47", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x11b", - "removed": false - }, - { - "address": "0x4585fe77225b41b697c938b018e2ac67ac5a20c0", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c", - "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc5ba6e0000000000000000000000000000000000000000000000000e6292767661e2a9000000000000000000000000000000000007f2bc5dc46b0bc91a11635bcf1c480000000000000000000000000000000000000000000000000032f67f85989ef7000000000000000000000000000000000000000000000000000000000004046f", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", - "transactionIndex": "0x47", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x11c", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000001000001000000000000000000000000000000000000000000000000000000000002000000080020000000000000000000000080000000000800000208000000000000000000000000000000000000000000080000000002000000000000002000020000000000000000000010000800000020000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000800000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000200000000000000000000000000000", - "status": "0x1", - "to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c", - "transactionHash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", - "transactionIndex": "0x47", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x9b1a6d", - "effectiveGasPrice": "0x5f6a09d5", - "from": "0x234de29cc82f9ce20cdc71b8b4baf6d51f4a1a64", - "gasUsed": "0x19c04", - "logs": [ - { - "address": "0x6b175474e89094c44da98b954eedeac495271d0f", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000060594a405d53811d3bc4766596efd80fd545a270", - "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c" - ], - "data": "0x00000000000000000000000000000000000000000000004b2c431fda9185ee5e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", - "transactionIndex": "0x48", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x11d", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c", - "0x00000000000000000000000060594a405d53811d3bc4766596efd80fd545a270" - ], - "data": "0x000000000000000000000000000000000000000000000000049bff3124b7bb06", - "blockNumber": "0x161bd0f", - "transactionHash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", - "transactionIndex": "0x48", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x11e", - "removed": false - }, - { - "address": "0x60594a405d53811d3bc4766596efd80fd545a270", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c", - "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffb4d3bce0256e7a11a2000000000000000000000000000000000000000000000000049bff3124b7bb06000000000000000000000000000000000000000003f68e899e4ccafb82674bf5000000000000000000000000000000000000000000000431bb9918fecc9757c6fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeba58", - "blockNumber": "0x161bd0f", - "transactionHash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", - "transactionIndex": "0x48", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x11f", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000020000001000000000000000000000040000000000000000000000000000000000000000002000000080020000000000000000000000080000000000800000008000000000000000000000000000000000000000010000000000000000000080000002000000000000000002000000010000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000002000000020000000000000000000002000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c", - "transactionHash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", - "transactionIndex": "0x48", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x9d6f74", - "effectiveGasPrice": "0x3bb9cbd0", - "from": "0x22b0351d445840db59b97df3808dd642dcb17e96", - "gasUsed": "0x25507", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36", - "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37" - ], - "data": "0x000000000000000000000000000000000000000000000000000000002c5a0de9", - "blockNumber": "0x161bd0f", - "transactionHash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", - "transactionIndex": "0x49", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x120", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37", - "0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36" - ], - "data": "0x0000000000000000000000000000000000000000000000000278f7f1db3b9b5e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", - "transactionIndex": "0x49", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x121", - "removed": false - }, - { - "address": "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36", - "topics": [ - "0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83", - "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37", - "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffd3a5f2170000000000000000000000000000000000000000000000000278f7f1db3b9b5e0000000000000000000000000000000000003c7390d650dc073538d9dde88a3e0000000000000000000000000000000000000000000000000037a1a246968f30000000000000000000000000000000000000000000000000000000000002f1b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b8bfa78220d", - "blockNumber": "0x161bd0f", - "transactionHash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", - "transactionIndex": "0x49", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x122", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000000000000000000002000002000000080000000000000000000000040000000040000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000010000000000000000000000000000000000000000000000000010000100000000000000000000000000000200000000000000000800000000000000000008000000000000000001002000000000000000000000800000000000000000000000000000000000000240000000000000000000000000000000000000000000000000040000000", - "status": "0x1", - "to": "0xfbd4cdb413e45a52e2c8312f670e9ce67e794c37", - "transactionHash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", - "transactionIndex": "0x49", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x9e1fdc", - "effectiveGasPrice": "0x77359400", - "from": "0x46340b20830761efd32832a74d7169b29feb9758", - "gasUsed": "0xb068", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000046340b20830761efd32832a74d7169b29feb9758", - "0x00000000000000000000000025637c1059b044c262cb1108c899cad44c8cd908" - ], - "data": "0x000000000000000000000000000000000000000000000000000000001d34ce80", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa2a8edbe294afde748bf14aae5427b8af22a65d9e1ea8de5c410057d577a480e", - "transactionIndex": "0x4a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x123", - "removed": false - } - ], - "logsBloom": "0x00040000008000000000000000000000000000000000000000000010000000000000000040000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000010000000000000000800000000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionHash": "0xa2a8edbe294afde748bf14aae5427b8af22a65d9e1ea8de5c410057d577a480e", - "transactionIndex": "0x4a", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0x9e71e4", - "effectiveGasPrice": "0xd69f9dd4", - "from": "0x1864d150aa60111fb312a1b8f4cf8e6dabd3094c", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x0abbc482fbd91dbf413e3d6cc5622e03552ac13a", - "transactionHash": "0x1de9ccef004f5f226c9468fb6abdc40755e1e5c7ddfcf1dd4ea2cbb708cc2165", - "transactionIndex": "0x4b", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xa384be", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0x5962604feb383ca4164107583d147b2aa1d86d54", - "gasUsed": "0x512da", - "logs": [ - { - "address": "0x2401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000005962604feb383ca4164107583d147b2aa1d86d54", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ], - "data": "0x00000000000000000000000000000000000000000000000000502072edbac1fa", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", - "transactionIndex": "0x4c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x124", - "removed": false - }, - { - "address": "0x00a0be1bbc0c99898df7e6524bf16e893c1e3bb9", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000002401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", - "0x0000000000000000000000008d6fd650500f82c7d978a440348e5a9b886943bf" - ], - "data": "0x000000000000000000000000000000000000000000000000004f723c6b53a4a8", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", - "transactionIndex": "0x4c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x125", - "removed": false - }, - { - "address": "0x8d6fd650500f82c7d978a440348e5a9b886943bf", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000005962604feb383ca4164107583d147b2aa1d86d54", - "0x00000000000000000000000000013dd60000000000000000004f723c6b53a4a8" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", - "transactionIndex": "0x4c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x126", - "removed": false - }, - { - "address": "0x8d6fd650500f82c7d978a440348e5a9b886943bf", - "topics": [ - "0x0080df45f12186856da484a1494bb51907e2abec5abc9a401e443c116bed71a5", - "0x0000000000000000000000005962604feb383ca4164107583d147b2aa1d86d54" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000013dd600000000000000000000000000013dd60000000000000000004f723c6b53a4a800000000000000000000000000000000000000000000425cb1e1774c9a683cbd000000000000000000000000000000000000000000000000004f723c6b53a4a80000000000000000000000000000000000000000000000000054d440ddba222e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", - "transactionIndex": "0x4c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x127", - "removed": false - }, - { - "address": "0x2401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", - "topics": [ - "0x75aa83b91343398bcfa338c4017c29780f24e0178bb796993453746801d80b03", - "0x0000000000000000000000005962604feb383ca4164107583d147b2aa1d86d54" - ], - "data": "0x00000000000000000000000000000000000000000000000000502072edbac1fa000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004f723c6b53a4a8", - "blockNumber": "0x161bd0f", - "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", - "transactionIndex": "0x4c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x128", - "removed": false - } - ], - "logsBloom": "0x0000000000000000000000000000000000000000000000400000000000000000000010000000800000000080000000080000000000000008000001000000000221000200000000000000200800000000000000000000000000000000000000000000000002000000000001008000080000000000000000000000001000000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000020100000000200000000000000200a000000000000000000006000000000000000100000000000000000000000000000000000020002001000000000000000000000000000000040000000000000000000000000000", - "status": "0x1", - "to": "0x2401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", - "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", - "transactionIndex": "0x4c", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xa54f01", - "effectiveGasPrice": "0x419ca4d4", - "from": "0x663b7c32c90f6c3fee8e8eecced18c007d69193a", - "gasUsed": "0x1ca43", - "logs": [ - { - "address": "0x10ee9f68ee4e4d311e854ae14c53f5b25a917f85", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000663b7c32c90f6c3fee8e8eecced18c007d69193a", - "0x000000000000000000000000332a24318d56f9cca677a242aff668314492bf80" - ], - "data": "0x00000000000000000000000000000000000000000000eeba4b9f0d5bdd105a3e", - "blockNumber": "0x161bd0f", - "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", - "transactionIndex": "0x4d", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x129", - "removed": false - }, - { - "address": "0x10ee9f68ee4e4d311e854ae14c53f5b25a917f85", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000663b7c32c90f6c3fee8e8eecced18c007d69193a", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffffff834724815ff43060e8e12", - "blockNumber": "0x161bd0f", - "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", - "transactionIndex": "0x4d", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x12a", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000332a24318d56f9cca677a242aff668314492bf80", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" - ], - "data": "0x00000000000000000000000000000000000000000000000029fbecd9a1c2b9f4", - "blockNumber": "0x161bd0f", - "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", - "transactionIndex": "0x4d", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x12b", - "removed": false - }, - { - "address": "0x332a24318d56f9cca677a242aff668314492bf80", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x00000000000000000000000000000000000000000014e7932d666db6140a089200000000000000000000000000000000000000000000000385e1aa5adf62d095", - "blockNumber": "0x161bd0f", - "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", - "transactionIndex": "0x4d", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x12c", - "removed": false - }, - { - "address": "0x332a24318d56f9cca677a242aff668314492bf80", - "topics": [ - "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" - ], - "data": "0x00000000000000000000000000000000000000000000eeba4b9f0d5bdd105a3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029fbecd9a1c2b9f4", - "blockNumber": "0x161bd0f", - "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", - "transactionIndex": "0x4d", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x12d", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" - ], - "data": "0x00000000000000000000000000000000000000000000000029fbecd9a1c2b9f4", - "blockNumber": "0x161bd0f", - "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", - "transactionIndex": "0x4d", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x12e", - "removed": false - } - ], - "logsBloom": "0x00200000004000000000000080000000000000000000200000010000000020010000000000000000000000000000000002004000080000100000000000200000000000000000000000000008000000200000000000400000000000000000000000000000000000000000000000000000000000000000040000000010100000000000000008000000004400000000000000000000000000080000004021000000020000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000001000000002000020000010200000000000000000000000000000000000000000000000000000000004", - "status": "0x1", - "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", - "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", - "transactionIndex": "0x4d", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xa5a109", - "effectiveGasPrice": "0xb2d05e00", - "from": "0xb6839dc14ace0934a2c422369aa34b39b8c534b1", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x2fd2ea3b0545bf12dd03ef6274aede12274da9a6", - "transactionHash": "0x9ffbef1785c43203687d9ecebc2e1dc67bd4b69337d9576d9992039d328ba5c3", - "transactionIndex": "0x4e", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xa5f311", - "effectiveGasPrice": "0xae1aec40", - "from": "0x91604f590d66ace8975eed6bd16cf55647d1c499", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xfbc09172b41c69aa617629847e5d80e35981932d", - "transactionHash": "0x2cbad0ad9584888bb5ad6d856ea602fa2a3afe764252499f2de6afe2a69ffdae", - "transactionIndex": "0x4f", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xa64519", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xe47d43dcd14e9fcaf96c232dae3f84d81c1ac725", - "transactionHash": "0x88871027255d345a9f5887127c9acb33704c9a1db48142f8185eabceeab719e1", - "transactionIndex": "0x50", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xa69721", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0xa9ac43f5b5e38155a288d1a01d2cbc4478e14573", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xe337299f1d8f5a249147bf2e795d612b891ab90e", - "transactionHash": "0x5803753b8b9f1a604f6590849d3a9cd2a7c0f6fb6334d02a01ba5d66206c450a", - "transactionIndex": "0x51", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xad1f73", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0xbe19155113cbfa0b0555d6c316b18133b10b312d", - "gasUsed": "0x68852", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xd152f549545093347a162dce210e7293f1452150", - "transactionHash": "0x09ebf2e04dbaab1d0ad74c275b776c6398084d5558290d804063d0a6f477c61e", - "transactionIndex": "0x52", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xad717b", - "effectiveGasPrice": "0x23cf3fd4", - "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", - "transactionHash": "0xd20af84c937b6bfb1cbd0dbcde686c9bbdd6a3904257523bba99bd50e879f8a1", - "transactionIndex": "0x53", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xae12d8", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0x7d7e377ee0168ddb578ef10661827cf1f71a6712", - "gasUsed": "0xa15d", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000007d7e377ee0168ddb578ef10661827cf1f71a6712", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43" - ], - "data": "0x000000000000000000000000000000000000000000000000000000002fb9b660", - "blockNumber": "0x161bd0f", - "transactionHash": "0xef162cf825f7bd785fd8229e52972e62855b7d44dcdd3038990fd95625a9dc56", - "transactionIndex": "0x54", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x12f", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000010000000008000000000000000000000000000001000000000000000008000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000010000000000000000000000000000000000020000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0xef162cf825f7bd785fd8229e52972e62855b7d44dcdd3038990fd95625a9dc56", - "transactionIndex": "0x54", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xaeb429", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0xf8ae00151ae5c2b5d430ab4e9dab01a770c1fca9", - "gasUsed": "0xa151", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000f8ae00151ae5c2b5d430ab4e9dab01a770c1fca9", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43" - ], - "data": "0x000000000000000000000000000000000000000000000000000000001dcd6500", - "blockNumber": "0x161bd0f", - "transactionHash": "0x6f4c0ef6cf1c52b0261982d2c8bdfc3f9073dd8af06ffdd253d5b3e49d3152cf", - "transactionIndex": "0x55", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x130", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000010000000000000000000000000000000000000000000100000000010000000008000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000100000000000000000080000000000000000000000000000000000000020000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0x6f4c0ef6cf1c52b0261982d2c8bdfc3f9073dd8af06ffdd253d5b3e49d3152cf", - "transactionIndex": "0x55", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xaf557a", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0x01884eb29311cf4fbbf59465aff0fbd123f84713", - "gasUsed": "0xa151", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000001884eb29311cf4fbbf59465aff0fbd123f84713", - "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000c1f0700", - "blockNumber": "0x161bd0f", - "transactionHash": "0x31109524218b0f4e2f747b5163bd532e63521b998bff69fb07fa44cb68a09298", - "transactionIndex": "0x56", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x131", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000010040000000000000000000000000000000000000000000000000010000000008000000000000000000000000000000000000000000000008010000000000000000000000000000000000000000000000000000000000000000008800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0x31109524218b0f4e2f747b5163bd532e63521b998bff69fb07fa44cb68a09298", - "transactionIndex": "0x56", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xaff6d7", - "effectiveGasPrice": "0x4fb1722d", - "from": "0xeb5fb7ce4528ee42bf2c7765ae70ca1deb2ef09c", - "gasUsed": "0xa15d", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000eb5fb7ce4528ee42bf2c7765ae70ca1deb2ef09c", - "0x000000000000000000000000203ff9f3e2af2ceb4dd62914af2bdf8ebfc53264" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000b2eb3a55", - "blockNumber": "0x161bd0f", - "transactionHash": "0x74f20b477ad72c790aa0a5742daf4aeadb1fbbd0edcfd74490f4ea9ec32d9a29", - "transactionIndex": "0x57", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x132", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000010000000000000000000000000000000000008000000000000000000000002000000100000000000000000020000000080000000000000000000000000000000000000000000000002000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0x74f20b477ad72c790aa0a5742daf4aeadb1fbbd0edcfd74490f4ea9ec32d9a29", - "transactionIndex": "0x57", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xb048df", - "effectiveGasPrice": "0x77359400", - "from": "0x0e71589abe9d1215535dc94c85482fe5954fdac9", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x0b7342a7af6bf6cc0ff8909ba1d70770863c74b5", - "transactionHash": "0x9cc25ee19cb4404d4bbeb96d4f9e9ceefe81ba8245f0f7c01a266900f9b4e745", - "transactionIndex": "0x58", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xb2bbe6", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0x21f2f76af55060df2a0fba013d4dd9d9f8ab2dea", - "gasUsed": "0x27307", - "logs": [ - { - "address": "0xbc2ecbe2195114b82f03680ed4270fa7008f3be0", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000021f2f76af55060df2a0fba013d4dd9d9f8ab2dea", - "0x00000000000000000000000071c7cbbf81ed4b571ace4ed3d1480453faf82ee1" - ], - "data": "0x00000000000000000000000000000000000000000000559cc592cfc03332c9f5", - "blockNumber": "0x161bd0f", - "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", - "transactionIndex": "0x59", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x133", - "removed": false - }, - { - "address": "0xbc2ecbe2195114b82f03680ed4270fa7008f3be0", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x00000000000000000000000021f2f76af55060df2a0fba013d4dd9d9f8ab2dea", - "0x000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffa511c5b23133bf3a360a", - "blockNumber": "0x161bd0f", - "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", - "transactionIndex": "0x59", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x134", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000071c7cbbf81ed4b571ace4ed3d1480453faf82ee1", - "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" - ], - "data": "0x00000000000000000000000000000000000000000000000006f4cc3821aa2000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", - "transactionIndex": "0x59", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x135", - "removed": false - }, - { - "address": "0x71c7cbbf81ed4b571ace4ed3d1480453faf82ee1", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x000000000000000000000000000000000000000000044fc279a9fb0403a48aa200000000000000000000000000000000000000000000000052f9e728c85ce95c", - "blockNumber": "0x161bd0f", - "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", - "transactionIndex": "0x59", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x136", - "removed": false - }, - { - "address": "0x71c7cbbf81ed4b571ace4ed3d1480453faf82ee1", - "topics": [ - "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", - "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af", - "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" - ], - "data": "0x00000000000000000000000000000000000000000000559cc592cfc03332c9f50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f4cc3821aa2000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", - "transactionIndex": "0x59", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x137", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af", - "0x000000000000000000000000000000fee13a103a10d593b9ae06b3e05f2e7e1c" - ], - "data": "0x000000000000000000000000000000000000000000000000000470de4df82000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", - "transactionIndex": "0x59", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x138", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", - "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" - ], - "data": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", - "transactionIndex": "0x59", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x139", - "removed": false - } - ], - "logsBloom": "0x00200000000000000000000080000000000000000000000000100000000080000000000000080000000000040000000002000000880000000000000000200000000000000000000000004808004000200000000000400800000000000000000000000000000000200000008000000000000000000000040200000010040000000000000000000000000000020020000000000000000000080000004000004000020000000000000000020000000000000000000000000000000000000000000000000002000000000000000000000000000400000000001000000002000000000010200000000000000000004000000020000000000000800000000000000000", - "status": "0x1", - "to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", - "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", - "transactionIndex": "0x59", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xb887d7", - "effectiveGasPrice": "0x2824a9d9", - "from": "0x930a46935042d35cc4393ff5f9b9bf9f2e3afd09", - "gasUsed": "0x5cbf1", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x5b14db1af7101ec1dafa828eaa774e13161efb53", - "transactionHash": "0xb903093efd1a45a2869f91f0169c3113ccc44fc9a70268af055392b6f4a6dece", - "transactionIndex": "0x5a", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xb8d9df", - "effectiveGasPrice": "0x71ebcf1c", - "from": "0x25b944a4dc81077e483bf59f618974e177627593", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x910ac37b45718838b35ba569dd926904274b682e", - "transactionHash": "0x18663217afb22c7ab2918545d837875df6d98706ac7227a8a08b4b0cc850c9d8", - "transactionIndex": "0x5b", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xb98df0", - "effectiveGasPrice": "0x47094b30", - "from": "0x896cdba2559cfdeec8a2356bb36c92fab614a4cd", - "gasUsed": "0xb411", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000896cdba2559cfdeec8a2356bb36c92fab614a4cd", - "0x0000000000000000000000009ba8071de40b13c3b4807c57c2b554fb3b9e0b2b" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000004c4b400", - "blockNumber": "0x161bd0f", - "transactionHash": "0x889b19404fe581f2b094bc9d159d0d1599870ad9cf39cb330e68a2777fb91d5e", - "transactionIndex": "0x5c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x13a", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000002000000000000000000000040000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000008000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000400", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0x889b19404fe581f2b094bc9d159d0d1599870ad9cf39cb330e68a2777fb91d5e", - "transactionIndex": "0x5c", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xba4201", - "effectiveGasPrice": "0x47094b30", - "from": "0x9b03a65530b8f9584beabe8c6d64d3d4bcadd3af", - "gasUsed": "0xb411", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009b03a65530b8f9584beabe8c6d64d3d4bcadd3af", - "0x00000000000000000000000054519c53bc21bc7739464850268f1b7d2b3317a0" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000048c10", - "blockNumber": "0x161bd0f", - "transactionHash": "0x0f6c5aec4835ffbfab3db13c5a4fdd44e96b7185df23626e8ea1cba5739c6649", - "transactionIndex": "0x5d", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x13b", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000100002000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000080000000000000000000000000000080000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0x0f6c5aec4835ffbfab3db13c5a4fdd44e96b7185df23626e8ea1cba5739c6649", - "transactionIndex": "0x5d", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xbe80c7", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0x7a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e", - "gasUsed": "0x43ec6", - "logs": [ - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", - "0x000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f4" - ], - "data": "0x0000000000000000000000000000000000000000000000000000e35fa931a000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", - "transactionIndex": "0x5e", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x13c", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f4", - "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45" - ], - "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "blockNumber": "0x161bd0f", - "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", - "transactionIndex": "0x5e", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x13d", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640", - "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000fe8a6", - "blockNumber": "0x161bd0f", - "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", - "transactionIndex": "0x5e", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x13e", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f4", - "0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640" - ], - "data": "0x0000000000000000000000000000000000000000000000000000e35fa931a000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", - "transactionIndex": "0x5e", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x13f", - "removed": false - }, - { - "address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45", - "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0175a0000000000000000000000000000000000000000000000000000e35fa931a0000000000000000000000000000000000000003c792226649b937aad676540d94000000000000000000000000000000000000000000000000051b0f41e60a05433000000000000000000000000000000000000000000000000000000000002f1bd", - "blockNumber": "0x161bd0f", - "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", - "transactionIndex": "0x5e", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x140", - "removed": false - }, - { - "address": "0x2d5d7d31f671f86c782533cc367f14109a082712", - "topics": [ - "0x8c092067e86e85e8cfbaf187202ef580cdfd7ec37fbec89191607de73ca80005", - "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666", - "0xaacfff03944e6d066f4cb7307f4999b5d174d6a13a2ad4b768adb2d08a0effd6" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000fe8a600000000000000000000000000000000000000000000000000001526874aecb70000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e0000000000000000000000000000000000000000000000000000000000000009696d6d757461626c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a3078636531364636393337353532306162303133373763653742383866354241384334384638443636360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", - "transactionIndex": "0x5e", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x141", - "removed": false - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666", - "0x0000000000000000000000004f4495243837681061c4743b74b3eedf548d56a5" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000fe8a6", - "blockNumber": "0x161bd0f", - "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", - "transactionIndex": "0x5e", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x142", - "removed": false - }, - { - "address": "0x4f4495243837681061c4743b74b3eedf548d56a5", - "topics": [ - "0x7e50569d26be643bda7757722291ec66b1be66d8283474ae3fab5a98f878a7a2", - "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666", - "0xaacfff03944e6d066f4cb7307f4999b5d174d6a13a2ad4b768adb2d08a0effd6" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000dc000000000000000000000000000000000000000000000000000000000000fe8a60000000000000000000000000000000000000000000000000000000000000009696d6d757461626c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a307863653136463639333735353230616230313337376365374238386635424138433438463844363636000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c5000000000000000000000000000000000000000000000000000000000000000400000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000005a0000000000000000000000000000000000000000000000000000000000000072000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000ac000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000104414bf389000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d20000000000000000000000000000000000000000000000000000000000000064000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f400000000000000000000000000000000000000000000000000000198c7cbc2de00000000000000000000000000000000000000000000000000000000000fe77800000000000000000000000000000000000000000000000000000000000fc60c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000104414bf3890000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d20000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d0000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f400000000000000000000000000000000000000000000000000000198c7cbc2e000000000000000000000000000000000000000000000000000000000000fe7d80000000000000000000000000000000000000000000000001a80ae654dafe92d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000010000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000242e1a7d4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000000c509b86228a6c23bbba872ac4345d5a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", - "transactionIndex": "0x5e", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x143", - "removed": false - } - ], - "logsBloom": "0x20000000010000000001000800002000000000000000000000000000040000008000000000000000000008000000000002000001080020000000000000200000000000000000008808000008000000000000000000000000000000208000000000000000000000000080000100000000800000000000000000000010000800000000000000000000000820000000000000000001018000000000000000010000020000000000200000000000002000000000000000000000002001100008000000000002000000000200000200000000000000000000000004000100000000000010200000000000000010000200480000100000000000400000000000000000", - "status": "0x1", - "to": "0xce16f69375520ab01377ce7b88f5ba8c48f8d666", - "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", - "transactionIndex": "0x5e", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xbed2cf", - "effectiveGasPrice": "0x23cf3fd4", - "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", - "transactionHash": "0x09bee4a68da1a0248abcb8b48ef7bd15bdf4c81e2183503d5d4de68b5f558a08", - "transactionIndex": "0x5f", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xc47fc1", - "effectiveGasPrice": "0x2816807a", - "from": "0xc7899ff6a3ac2ff59261bd960a8c880df06e1041", - "gasUsed": "0x5acf2", - "logs": [ - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", - "0x000000000000000000000000511cc062c4257664427654b232dc636a424e4382" - ], - "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000000000000003ca941af000000000000000000000000000000000000000000000037483622c9d325650b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000003881e77fb200aff93fadf0e7d0ddd256e609485aef90e429d48208cc1919083cc7511cc062c4257664427654b232dc636a424e438268a5e7ab0000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x144", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", - "0x000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758" - ], - "data": "0x0000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca30000000000000000000000000000000000000000000adb53acfa41aee12000000000000000000000000000000000000000000000000000008b50bca4aa290943d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000381b2cf1821e81b1a7ad30ec63cdc0107313fd569fa8eb3c68f223785113c9aeecec9b9e8e450dbde63e00f6469ed43b3be463b75868a5d5420000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x145", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000511cc062c4257664427654b232dc636a424e4382", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000000000000003ca941af", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x146", - "removed": false - }, - { - "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000adb53acfa41aee12000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x147", - "removed": false - }, - { - "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758", - "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffff8cf68ca7a4acef3cb4b947e", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x148", - "removed": false - }, - { - "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x000000000000000000000000a43fe16908251ee70ef74718545e4fe6c5ccec9f" - ], - "data": "0x000000000000000000000000000000000000000000ada5ce2d2204f16ed6fa30", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x149", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", - "0x0000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x14a", - "removed": false - }, - { - "address": "0xe28b3b32b6c345a34ff64674606124dd5aceca30", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa8", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x000000000000000000000000000000000000000000000008b50bca4aa29034cb", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x14b", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000a43fe16908251ee70ef74718545e4fe6c5ccec9f", - "0x0000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa8" - ], - "data": "0x0000000000000000000000000000000000000000000000000724b20e5c768e2f", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x14c", - "removed": false - }, - { - "address": "0xa43fe16908251ee70ef74718545e4fe6c5ccec9f", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x0000000000000000000000000000000000000023920207f1f45bc6639b70e2cc000000000000000000000000000000000000000000000177b1611de185bbb111", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x14d", - "removed": false - }, - { - "address": "0xa43fe16908251ee70ef74718545e4fe6c5ccec9f", - "topics": [ - "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", - "0x000000000000000000000000f3fe03cd60d1f138ebc106ce9575475100ebfc9a", - "0x0000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa8" - ], - "data": "0x000000000000000000000000000000000000000000ada5ce2d2204f16ed6fa30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000724b20e5c768e2f", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x14e", - "removed": false - }, - { - "address": "0x6c063a6e8cd45869b5eb75291e65a3de298f3aa8", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x000000000000000000000000f3fe03cd60d1f138ebc106ce9575475100ebfc9a", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" - ], - "data": "0x0000000000000000000000000000000000000000000000000724b20e5c768e2ffffffffffffffffffffffffffffffffffffffffffffffff74af435b55d6fcb350000000000000000000000000000000000000011adffe438c588bbe56c140b16000000000000000000000000000000000000000000000174ccea0b5ceceed3d2000000000000000000000000000000000000000000000000000000000000e06b", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x14f", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", - "0x000000000000000000000000f3fe03cd60d1f138ebc106ce9575475100ebfc9a" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000d41aacaf00000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x150", - "removed": false - }, - { - "address": "0x6b175474e89094c44da98b954eedeac495271d0f", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x000000000000000000000000511cc062c4257664427654b232dc636a424e4382" - ], - "data": "0x000000000000000000000000000000000000000000000037483622c9d325650b", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x151", - "removed": false - }, - { - "address": "0xe28b3b32b6c345a34ff64674606124dd5aceca30", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", - "0x000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758" - ], - "data": "0x000000000000000000000000000000000000000000000008b50bca4aa290943d", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x152", - "removed": false - }, - { - "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "topics": [ - "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", - "0x000000000000000000000000c7899ff6a3ac2ff59261bd960a8c880df06e1041" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x153", - "removed": false - } - ], - "logsBloom": "0x00201000000000000000000080001800004000400000000000000000000000000000002000400000000000000000010102000040080020000000000000200000010400080000000800000008000001200000000104000000000000000000000010000000000000000000c000020000800000004020000000100040100008000000000000000080000080000400000400000000004000000800000042001000000200046000000000000000800080000200000000000000000100000000000000010000120008000c0000000000000000000022000000001000000000000000001010200001000000020002000400000000004000000000000000000000900000", - "status": "0x1", - "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", - "transactionIndex": "0x60", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xc5211e", - "effectiveGasPrice": "0x479285d4", - "from": "0x2f091462316f650ca24dea5b8e90f9657af6915d", - "gasUsed": "0xa15d", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000002f091462316f650ca24dea5b8e90f9657af6915d", - "0x000000000000000000000000559432e18b281731c054cd703d4b49872be4ed53" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000021ca5c30", - "blockNumber": "0x161bd0f", - "transactionHash": "0xbfbbdc3e43e8e7a9629b2d3e2a7c5c998451d31542b92bab59a2de5aeefefea9", - "transactionIndex": "0x61", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x154", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000010000080000000000000000000000000200000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000001000000000000000000000000000000000002000000000000008000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0xbfbbdc3e43e8e7a9629b2d3e2a7c5c998451d31542b92bab59a2de5aeefefea9", - "transactionIndex": "0x61", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xc8db11", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0x317d2da746d1360f4c113e7962a33394db2a1a4e", - "gasUsed": "0x3b9f3", - "logs": [ - { - "address": "0x1958853a8be062dc4f401750eb233f5850f0d0d2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ], - "data": "0x0000000000000000000000000000000000000000000000004563918244f40000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", - "transactionIndex": "0x62", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x155", - "removed": false - }, - { - "address": "0xbb2ea70c9e858123480642cf96acbcce1372dce1", - "topics": [ - "0x61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a" - ], - "data": "0x000000000000000000000000173272739bd7aa6e4e214714048a9fe69945305900000000000000000000000000000000000000000000000000000fa021204bb5", - "blockNumber": "0x161bd0f", - "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", - "transactionIndex": "0x62", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x156", - "removed": false - }, - { - "address": "0xbb2ea70c9e858123480642cf96acbcce1372dce1", - "topics": [ - "0x07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db24644" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000589dedbd617e0cbcb916a9223f4d1300c294236b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000001cc3b0e39e4", - "blockNumber": "0x161bd0f", - "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", - "transactionIndex": "0x62", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x157", - "removed": false - }, - { - "address": "0x1a44076050125825900e736c501f859c50fe728c", - "topics": [ - "0x1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000120000000000000000000000000bb2ea70c9e858123480642cf96acbcce1372dce10000000000000000000000000000000000000000000000000000000000000099010000000000000001000075950000000000000000000000001958853a8be062dc4f401750eb233f5850f0d0d200007596000000000000000000000000b4818bb69478730ef4e33cc068dd94278e2766cbab4f14bf5341bfe02be7a2603f8daf3e28b48cfb62732673ce438829f67016e7000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e00000000004c4b4000000000000000000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000030d4000000000000000000000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", - "transactionIndex": "0x62", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x158", - "removed": false - }, - { - "address": "0x1958853a8be062dc4f401750eb233f5850f0d0d2", - "topics": [ - "0x85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a", - "0xab4f14bf5341bfe02be7a2603f8daf3e28b48cfb62732673ce438829f67016e7", - "0x000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000075960000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000004563918244f40000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", - "transactionIndex": "0x62", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x159", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000200000000000000000000000000000000000001000000400000000000000000000000000000000000000000000000000500000010000000042000000000000000008000000000000200000000000000000000000000000000000020000008000000000000800000000000010000000000010000000000000000000000000001000080000000000000000000000000000004000000000000000008000000000100000000000000000000000400000000440000000000800000002000000000000000080000000000000000400000000000000000020000000040000000000000000000100002000000000018000000000000000000000", - "status": "0x1", - "to": "0x1958853a8be062dc4f401750eb233f5850f0d0d2", - "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", - "transactionIndex": "0x62", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xc92d19", - "effectiveGasPrice": "0x23cf3fd4", - "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", - "transactionHash": "0x854a247acfde5a5346f137d645aafce7266476f1ca57bbc56ff4d451686990d1", - "transactionIndex": "0x63", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xc9bd28", - "effectiveGasPrice": "0x47094b30", - "from": "0x3908f89b206af269cd10520a39683d3e9b709a0c", - "gasUsed": "0x900f", - "logs": [ - { - "address": "0x699ccf919c1dfdfa4c374292f42cadc9899bf753", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000003908f89b206af269cd10520a39683d3e9b709a0c", - "0x0000000000000000000000008fa4103428737fc17ba6566285492b19f4a42c33" - ], - "data": "0x00000000000000000000000000000000000000000000069420a776ba5cab0000", - "blockNumber": "0x161bd0f", - "transactionHash": "0x34c4b2585880bbbfd2bd41d407ab91c487ab3ea1d740bb10051a2d94eae979b7", - "transactionIndex": "0x64", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x15a", - "removed": false - } - ], - "logsBloom": "0x04000000000000000002000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000408000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000008", - "status": "0x1", - "to": "0x699ccf919c1dfdfa4c374292f42cadc9899bf753", - "transactionHash": "0x34c4b2585880bbbfd2bd41d407ab91c487ab3ea1d740bb10051a2d94eae979b7", - "transactionIndex": "0x64", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xca0f30", - "effectiveGasPrice": "0x5f6b1b44", - "from": "0x0d0707963952f2fba59dd06f2b425ace40b492fe", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x5c872bc1cdb41bc1467960e2c3b59a09cc93da05", - "transactionHash": "0x881dde515af25e26e76a9f4fd56f92172e576868db77f8d0edb19546d055a6ff", - "transactionIndex": "0x65", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xcac34d", - "effectiveGasPrice": "0x3b9aca00", - "from": "0xfb19ffd1ff9316b7f5bba076ef4b78e4bbedf4e1", - "gasUsed": "0xb41d", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000fb19ffd1ff9316b7f5bba076ef4b78e4bbedf4e1", - "0x000000000000000000000000e76392fd5215a3e6bd794d7a31a3c8294c1eb18c" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000006359235", - "blockNumber": "0x161bd0f", - "transactionHash": "0x7603ff263930ac4706dfc190bfa96bba194ec04561f686515626428442cfc3bc", - "transactionIndex": "0x66", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x15b", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000004000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000010000000000000000000000000108000000000000000000000000080000000080000000000000000000000000000000000000002000000020000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0x7603ff263930ac4706dfc190bfa96bba194ec04561f686515626428442cfc3bc", - "transactionIndex": "0x66", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xcbba2a", - "effectiveGasPrice": "0x9aa98162", - "from": "0x3814e8720156e8259aeef2803eb3fbb3cdddc549", - "gasUsed": "0xf6dd", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000003814e8720156e8259aeef2803eb3fbb3cdddc549", - "0x0000000000000000000000008ab12dde8535538cc1759f011ebb45856f0a8acb" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000aba9500", - "blockNumber": "0x161bd0f", - "transactionHash": "0x7e99dbbc2acdc35b5ba4d4d460849fb57bb4fe43e62d47b34c18a922e5b9afac", - "transactionIndex": "0x67", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x15c", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000400000000000000002008000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001000000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0x7e99dbbc2acdc35b5ba4d4d460849fb57bb4fe43e62d47b34c18a922e5b9afac", - "transactionIndex": "0x67", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xcd68cf", - "effectiveGasPrice": "0x2c523e86", - "from": "0x2a008273cf9c4276e3f85311ebab58b7b74fa1bb", - "gasUsed": "0x1aea5", - "logs": [ - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" - ], - "data": "0x00000000000000000000000000000000000000000000000000740c1005bbd2a5", - "blockNumber": "0x161bd0f", - "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", - "transactionIndex": "0x68", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x15d", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", - "0x0000000000000000000000006f9f435fa79e30e34f7679211904fcabc87ad924" - ], - "data": "0x00000000000000000000000000000000000000000000000000740c1005bbd2a5", - "blockNumber": "0x161bd0f", - "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", - "transactionIndex": "0x68", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x15e", - "removed": false - }, - { - "address": "0xe0265346277ad201609308b506e901b520150a08", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000006f9f435fa79e30e34f7679211904fcabc87ad924", - "0x0000000000000000000000002a008273cf9c4276e3f85311ebab58b7b74fa1bb" - ], - "data": "0x000000000000000000000000000000000000000000011f871af89a7da64b75da", - "blockNumber": "0x161bd0f", - "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", - "transactionIndex": "0x68", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x15f", - "removed": false - }, - { - "address": "0x6f9f435fa79e30e34f7679211904fcabc87ad924", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x00000000000000000000000000000000000000000000000015bef6901d4bd0c500000000000000000000000000000000000000000034ea453b357851b039241d", - "blockNumber": "0x161bd0f", - "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", - "transactionIndex": "0x68", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x160", - "removed": false - }, - { - "address": "0x6f9f435fa79e30e34f7679211904fcabc87ad924", - "topics": [ - "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", - "0x0000000000000000000000002a008273cf9c4276e3f85311ebab58b7b74fa1bb" - ], - "data": "0x00000000000000000000000000000000000000000000000000740c1005bbd2a500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011f871af89a7da64b75da", - "blockNumber": "0x161bd0f", - "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", - "transactionIndex": "0x68", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x161", - "removed": false - } - ], - "logsBloom": "0x00200000000000000000000080000000000000000000000000011000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000008000000a00000000000000000000000008001000010000000000000000000000008000000000000000000000000000010000000000000000000000000004000000000000000000001000000080000004000000000000000000000000004000000000000000000000000000000000000000000000000000002000000000004004000080000000000000000001000000000100020200000200000000000000000000000000000000000000000400000000001000000", - "status": "0x1", - "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", - "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", - "transactionIndex": "0x68", - "type": "0x0" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xcdbad7", - "effectiveGasPrice": "0x4c762185", - "from": "0xd04691fada4d78e62f74d51b77c3fab05dd5e656", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xc00313c93a1dc6befa0d4b50697ec1ef11b5967e", - "transactionHash": "0x9cc229f51b3398a71370ab7ee4d775f9fc617c40c9379b786e03070e52fcd357", - "transactionIndex": "0x69", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xd07cbf", - "effectiveGasPrice": "0x2884b194", - "from": "0x051ad444b2c9a1678c7f4632885851c0c08285fd", - "gasUsed": "0x2c1e8", - "logs": [ - { - "address": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", - "topics": [ - "0x7724394874fdd8ad13292ec739b441f85c6559f10dc4141b8d4c0fa4cbf55bdb" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000019afd", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", - "transactionIndex": "0x6a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x162", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000051ad444b2c9a1678c7f4632885851c0c08285fd", - "0x0000000000000000000000002cffed5d56eb6a17662756ca0fdf350e732c9818" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000a601", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", - "transactionIndex": "0x6a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x163", - "removed": false - }, - { - "address": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", - "topics": [ - "0x0d3b1268ca3dbb6d3d8a0ea35f44f8f9d58cf578d732680b71b6904fb2733e0d" - ], - "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000a6010000000000000000000000002cffed5d56eb6a17662756ca0fdf350e732c9818", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", - "transactionIndex": "0x6a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x164", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", - "0x0000000000000000000000002e1dee213ba8d7af0934c49a23187babeaca8764" - ], - "data": "0x000000000000000000000000000000000000000000000000000439148a7bd691", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", - "transactionIndex": "0x6a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x165", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000051ad444b2c9a1678c7f4632885851c0c08285fd", - "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000004ba428", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", - "transactionIndex": "0x6a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x166", - "removed": false - }, - { - "address": "0xc7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x0000000000000000000000002e1dee213ba8d7af0934c49a23187babeaca8764", - "0x0000000000000000000000002e1dee213ba8d7af0934c49a23187babeaca8764" - ], - "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffbc6eb7584296f00000000000000000000000000000000000000000000000000000000004ba428000000000000000000000000000000000000000000043b663cda5f92b0d8ecb80000000000000000000000000000000000000000000000000f7eaa8ee01d5748fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e3c", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", - "transactionIndex": "0x6a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x167", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000002e1dee213ba8d7af0934c49a23187babeaca8764", - "0x0000000000000000000000005703b683c7f928b721ca95da988d73a3299d4757" - ], - "data": "0x000000000000000000000000000000000000000000000000000439148a7bd691", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", - "transactionIndex": "0x6a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x168", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", - "0x0000000000000000000000005703b683c7f928b721ca95da988d73a3299d4757" - ], - "data": "0x000000000000000000000000000000000000000000000000000439148a7bd691", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", - "transactionIndex": "0x6a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x169", - "removed": false - }, - { - "address": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", - "topics": [ - "0x1bb43f2da90e35f7b0cf38521ca95a49e68eb42fac49924930a5bd73cdf7576c" - ], - "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000051ad444b2c9a1678c7f4632885851c0c08285fd00000000000000000000000000000000000000000000000000000000004ba428000000000000000000000000000000000000000000000000000439148a7bd691", - "blockNumber": "0x161bd0f", - "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", - "transactionIndex": "0x6a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x16a", - "removed": false - } - ], - "logsBloom": "0x000000000000000000010000000000001000000000000000000000000000000000000100000000000200000000000100020080800800200000800040000800008000000000000008200000088000000000000010004000000800040000000000000020000020000000000000000000000000000000000400000000100008000000002000000000000000000000002000000000000000000000000000001000000000000000000000000000800000001800000000000040000000000000000000000000022000080000000000000008000000000200000000000000020000000a0000200000000000000000000000000000000000000000000000000010000000", - "status": "0x1", - "to": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", - "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", - "transactionIndex": "0x6a", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xd4b07b", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0x1e8b52ea011a678a888cf7b4e7aa667170f192ca", - "gasUsed": "0x433bc", - "logs": [ - { - "address": "0x129e5915326ed86f831b0e035acda34b209633d5", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001e8b52ea011a678a888cf7b4e7aa667170f192ca", - "0x000000000000000000000000129e5915326ed86f831b0e035acda34b209633d5" - ], - "data": "0x00000000000000000000000000000000000000000000000000000246139ca800", - "blockNumber": "0x161bd0f", - "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", - "transactionIndex": "0x6b", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x16b", - "removed": false - }, - { - "address": "0x129e5915326ed86f831b0e035acda34b209633d5", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000001e8b52ea011a678a888cf7b4e7aa667170f192ca", - "0x0000000000000000000000009c76dd6b5b200690fc9fb061a99b0a48e9a94325" - ], - "data": "0x00000000000000000000000000000000000000000000000000002b3374a07800", - "blockNumber": "0x161bd0f", - "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", - "transactionIndex": "0x6b", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x16c", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009c76dd6b5b200690fc9fb061a99b0a48e9a94325", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" - ], - "data": "0x0000000000000000000000000000000000000000000000000182bb0b0a0f607a", - "blockNumber": "0x161bd0f", - "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", - "transactionIndex": "0x6b", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x16d", - "removed": false - }, - { - "address": "0x9c76dd6b5b200690fc9fb061a99b0a48e9a94325", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x000000000000000000000000000000000000000000000000008502946d70b5db000000000000000000000000000000000000000000000004a8c264fb9fab40bd", - "blockNumber": "0x161bd0f", - "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", - "transactionIndex": "0x6b", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x16e", - "removed": false - }, - { - "address": "0x9c76dd6b5b200690fc9fb061a99b0a48e9a94325", - "topics": [ - "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" - ], - "data": "0x00000000000000000000000000000000000000000000000000002b3374a07800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182bb0b0a0f607a", - "blockNumber": "0x161bd0f", - "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", - "transactionIndex": "0x6b", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x16f", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" - ], - "data": "0x000000000000000000000000000000000000000000000000000000001b0da2b6", - "blockNumber": "0x161bd0f", - "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", - "transactionIndex": "0x6b", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x170", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", - "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b" - ], - "data": "0x0000000000000000000000000000000000000000000000000182bb0b0a0f607a", - "blockNumber": "0x161bd0f", - "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", - "transactionIndex": "0x6b", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x171", - "removed": false - }, - { - "address": "0xc7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", - "topics": [ - "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" - ], - "data": "0x0000000000000000000000000000000000000000000000000182bb0b0a0f607affffffffffffffffffffffffffffffffffffffffffffffffffffffffe4f25d4a000000000000000000000000000000000000000000043b647de338a817656f730000000000000000000000000000000000000000000000000f7eaa8ee01d5748fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e3c", - "blockNumber": "0x161bd0f", - "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", - "transactionIndex": "0x6b", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x172", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", - "0x000000000000000000000000ad01c20d5886137e056775af56915de824c8fce5" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000307abd", - "blockNumber": "0x161bd0f", - "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", - "transactionIndex": "0x6b", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x173", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", - "0x0000000000000000000000001e8b52ea011a678a888cf7b4e7aa667170f192ca" - ], - "data": "0x000000000000000000000000000000000000000000000000000000001add27f9", - "blockNumber": "0x161bd0f", - "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", - "transactionIndex": "0x6b", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x174", - "removed": false - } - ], - "logsBloom": "0x8020000000000000000000008000000000000000000000000000000000000000000000000000000000000000000001000300000008006000008000000000002000000000000000080000000800000020000000100000000000004000000000000001000000200000000000002000000000000000000000000008001000080000000000000000000000000101000000000000000000000008000000400090400000001000000000000000008002000002080000000002000000000000000000000000000200000800000000000000080c080000000000001000000800000000020000200000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x0000000000001ff3684f28c67538d4d072c22734", - "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", - "transactionIndex": "0x6b", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xd6e3d6", - "effectiveGasPrice": "0x9b04d3d4", - "from": "0x97fe8b7ba616945b5031e146229b9e727830f131", - "gasUsed": "0x2335b", - "logs": [ - { - "address": "0xbe5f6232d8ed5a4057f33a28915bc1a8ab01335b", - "topics": [ - "0x44ecfc706d63e347851cfd40acfa6cf2e3a41faa3e8b460210c03938e84a91ad" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000001", - "blockNumber": "0x161bd0f", - "transactionHash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", - "transactionIndex": "0x6c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x175", - "removed": false - }, - { - "address": "0xbe5f6232d8ed5a4057f33a28915bc1a8ab01335b", - "topics": [ - "0x6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "blockNumber": "0x161bd0f", - "transactionHash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", - "transactionIndex": "0x6c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x176", - "removed": false - }, - { - "address": "0xbe5f6232d8ed5a4057f33a28915bc1a8ab01335b", - "topics": [ - "0x4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb", - "0x000000000000000000000000864baa13e01d8f9e26549dc91b458cd15e34eb7c", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000097fe8b7ba616945b5031e146229b9e727830f131" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001", - "blockNumber": "0x161bd0f", - "transactionHash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", - "transactionIndex": "0x6c", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x177", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000080000000000000010000000000000000000004000000000000000000000000000000000000040000000000080000000020000000000000000000800000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000008000000000000000000000000000000040000000000000000004000000000000000000000000000400000000001000000000000020000000000000000000000000000000000000100000000000002000000002004000", - "status": "0x1", - "to": "0x864baa13e01d8f9e26549dc91b458cd15e34eb7c", - "transactionHash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", - "transactionIndex": "0x6c", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xd735de", - "effectiveGasPrice": "0x23cf3fd4", - "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", - "transactionHash": "0xd36572df8b853ee2b6cab95a988ca7065b03d00fc8b2c1411301cadf49343092", - "transactionIndex": "0x6d", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xd861b8", - "effectiveGasPrice": "0x2dde0f0d", - "from": "0xe93685f3bba03016f02bd1828badd6195988d950", - "gasUsed": "0x12bda", - "logs": [ - { - "address": "0x1a44076050125825900e736c501f859c50fe728c", - "topics": [ - "0x0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b4" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000007683000000000000000000000000cab283e4bb527aa9b157bae7180fef19e2aaa71a0000000000000000000000000000000000000000000000000000000000001110000000000000000000000000f2b2bbdc9975cf680324de62a30a31bc3ab8a4d536e7b0f7494af14e92055752ad7efac6d5d62065da6b772b7bb98d7127e4495d", - "blockNumber": "0x161bd0f", - "transactionHash": "0x5cbc170410348d6fdc873705eff0fe6e22f82115fa66a032cacaf14b00d3fd73", - "transactionIndex": "0x6e", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x178", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000", - "status": "0x1", - "to": "0xc02ab410f0734efa3f14628780e6e695156024c2", - "transactionHash": "0x5cbc170410348d6fdc873705eff0fe6e22f82115fa66a032cacaf14b00d3fd73", - "transactionIndex": "0x6e", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xd95895", - "effectiveGasPrice": "0x6b55cbd4", - "from": "0xe6767c337d50e51241257059d58508fd8fba91a1", - "gasUsed": "0xf6dd", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000e6767c337d50e51241257059d58508fd8fba91a1", - "0x0000000000000000000000003732c23fe8422fa1dc7759e2f34515de41bf268b" - ], - "data": "0x000000000000000000000000000000000000000000000000000000001c9c3800", - "blockNumber": "0x161bd0f", - "transactionHash": "0x885b570f51838e21d3ee6f7635b9019859c9dc284b61a10e597428521779a514", - "transactionIndex": "0x6f", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x179", - "removed": false - } - ], - "logsBloom": "0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800010000000000000000000000000000100000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000010800000000000000000000000000000000000000000000000000000000000000000100000400000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0x885b570f51838e21d3ee6f7635b9019859c9dc284b61a10e597428521779a514", - "transactionIndex": "0x6f", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xd9aa9d", - "effectiveGasPrice": "0x47094b30", - "from": "0x4cf7d1f09d73d05538b701c2ccd071298569b18b", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x4cf7d1f09d73d05538b701c2ccd071298569b18b", - "transactionHash": "0x6dc512f88c8907da511443523a0ce1f9d83b9590fb25470b40a5c7dabecb9cb0", - "transactionIndex": "0x70", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xd9fca5", - "effectiveGasPrice": "0x47094b30", - "from": "0x1a6bf7734a87c9fb327162eed8cff7b1982e7e5e", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xdc3a5dcd4d2299bdd8a9345169029088f4b0e0c2", - "transactionHash": "0x293dfc29e6d24ec039d5da89eca31f7874ab0f73485242b24472991bbc4a81ac", - "transactionIndex": "0x71", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xda4ead", - "effectiveGasPrice": "0x47094b30", - "from": "0xa2d9d10acece8512a99a3048c88fa274ba59e2cf", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xf051193691fc11600e1228ca27ede7663c4de189", - "transactionHash": "0x3199c465ca839a4561420e9ae7a22247c0faf5f3b8b22675e9d280871b018d5e", - "transactionIndex": "0x72", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xdaa0b5", - "effectiveGasPrice": "0x47094b30", - "from": "0xb0bfdffa1c53912c9d6a1f7250d2bac0f6fb0373", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x02ca45d242a1e2cd80f860a265e42a048c67b712", - "transactionHash": "0x6cb4300ccb17a849f57e47bf2e950fc2ff88e1536d19e413b23ff3c321c11e8c", - "transactionIndex": "0x73", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xdaf2bd", - "effectiveGasPrice": "0x47094b30", - "from": "0x9502954fba7ca26abdefc7ef4c9dd59b8b54f03f", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x9502954fba7ca26abdefc7ef4c9dd59b8b54f03f", - "transactionHash": "0x5dd9f8f7e9b3c71c4e4c00191f358b82e5438d0ee6bbbe841d945089e2df8cba", - "transactionIndex": "0x74", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xde6533", - "effectiveGasPrice": "0x26ca3054", - "from": "0x173449e23b2768042a7acbbf00a2b32d262b3a4b", - "gasUsed": "0x37276", - "logs": [ - { - "address": "0x0000000071727de22e5e9d8baf0edac6f37da032", - "topics": [ - "0xbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972" - ], - "data": "0x", - "blockNumber": "0x161bd0f", - "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", - "transactionIndex": "0x75", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x17a", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "0x000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7", - "0x0000000000000000000000007d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000180d14", - "blockNumber": "0x161bd0f", - "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", - "transactionIndex": "0x75", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x17b", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7", - "0x0000000000000000000000000e8495d95270c688473e88f02bb3101a3f7cec73" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000f60c480", - "blockNumber": "0x161bd0f", - "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", - "transactionIndex": "0x75", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x17c", - "removed": false - }, - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7", - "0x000000000000000000000000480a825bed6cdba9da81cc01faacd12166761dec" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000e98ea", - "blockNumber": "0x161bd0f", - "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", - "transactionIndex": "0x75", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x17d", - "removed": false - }, - { - "address": "0x7d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac", - "topics": [ - "0xcb8558ee10b3b50e33dd316be9756fc9f947c4637d5d9c4f66f02ddc3ba4e38f" - ], - "data": "0x8bf3446f7338755e02cef70ec4a972cd5780c19ab71c20ea59bef3fb7a1c7633000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000e98ea", - "blockNumber": "0x161bd0f", - "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", - "transactionIndex": "0x75", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x17e", - "removed": false - }, - { - "address": "0x0000000071727de22e5e9d8baf0edac6f37da032", - "topics": [ - "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f", - "0x8bf3446f7338755e02cef70ec4a972cd5780c19ab71c20ea59bef3fb7a1c7633", - "0x000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7", - "0x0000000000000000000000007d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000967696a805dc000000000000000000000000000000000000000000000000000000000003d1fb", - "blockNumber": "0x161bd0f", - "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", - "transactionIndex": "0x75", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x17f", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000010000000000000000000000000008000000000004000000010000018000200000000000000000020000200000000000000000000000000008000000020040000000000000000000000000000000000000000800000000010000000000000000000000000000000010000000000040000000010000000000000000000000000000000000000000800000100000020000020020001000400480000000000200000000000000000002000000000000010002000000400011000000000000000000000000004000000000000400000010000000000000000000000000000000000000000800000000000000001080", - "status": "0x1", - "to": "0x0000000071727de22e5e9d8baf0edac6f37da032", - "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", - "transactionIndex": "0x75", - "type": "0x4" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xdf5867", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0xfcc46ea12aec1f62c3d58803fe94aa8f768f2636", - "gasUsed": "0xf334", - "logs": [ - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000fcc46ea12aec1f62c3d58803fe94aa8f768f2636", - "0x000000000000000000000000552549d39c22c1e55e4f91318d41f5422d204c4e" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000017d7840", - "blockNumber": "0x161bd0f", - "transactionHash": "0x971833c61c63e80e90a69edadce6cf052ed708c0b89a52714e3de65174e501d2", - "transactionIndex": "0x76", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x180", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000008000008000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010800000080000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000001000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000", - "status": "0x1", - "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "transactionHash": "0x971833c61c63e80e90a69edadce6cf052ed708c0b89a52714e3de65174e501d2", - "transactionIndex": "0x76", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xe03c90", - "effectiveGasPrice": "0x6458e75e", - "from": "0x52f1e1001c28f6807530470b67a83a348040e31b", - "gasUsed": "0xe429", - "logs": [ - { - "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x00000000000000000000000052f1e1001c28f6807530470b67a83a348040e31b", - "0x00000000000000000000000043e19182b2f68d8a83d56a7304665ce0ea3fb3e3" - ], - "data": "0x000000000000000000000000000000000000000000000000000000002e4686e2", - "blockNumber": "0x161bd0f", - "transactionHash": "0x9ea42c0b70a8feb646683ef29551a4f1e35aa5c52ff4e92d41885fddc062eee3", - "transactionIndex": "0x77", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x181", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000400000040000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000002000010000000000000000002000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", - "transactionHash": "0x9ea42c0b70a8feb646683ef29551a4f1e35aa5c52ff4e92d41885fddc062eee3", - "transactionIndex": "0x77", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xe08e98", - "effectiveGasPrice": "0x419ca4d4", - "from": "0x242ad3fac0e6820f50ce520117fe8774f21b5f9f", - "gasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x094d77550b654f1fceb33f405ae0415c4cbcb0f1", - "transactionHash": "0xa7e4c653d8b4852c0fc96106be40980b66a3bb81a9730f4c5bdd8010851faabd", - "transactionIndex": "0x78", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xe317d0", - "effectiveGasPrice": "0x5f6a09d4", - "from": "0x9f256a5703a493cac86a09fa84473517ace6ca81", - "gasUsed": "0x28938", - "logs": [ - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" - ], - "data": "0x000000000000000000000000000000000000000000000000006983fe1dd44000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", - "transactionIndex": "0x79", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x182", - "removed": false - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", - "0x000000000000000000000000b6cec3a5828923385bcdedf12044f1c98bd729ac" - ], - "data": "0x000000000000000000000000000000000000000000000000006983fe1dd44000", - "blockNumber": "0x161bd0f", - "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", - "transactionIndex": "0x79", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x183", - "removed": false - }, - { - "address": "0xfa417cd491632620a582851b07abf7e3447bba71", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x000000000000000000000000b6cec3a5828923385bcdedf12044f1c98bd729ac", - "0x0000000000000000000000009f256a5703a493cac86a09fa84473517ace6ca81" - ], - "data": "0x0000000000000000000000000000000000000000000000000006badea95a749b", - "blockNumber": "0x161bd0f", - "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", - "transactionIndex": "0x79", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x184", - "removed": false - }, - { - "address": "0xb6cec3a5828923385bcdedf12044f1c98bd729ac", - "topics": [ - "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" - ], - "data": "0x0000000000000000000000000000000000000000000000002acfedc0715b20fe00000000000000000000000000000000000000000000000002b6654bfd1fad09", - "blockNumber": "0x161bd0f", - "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", - "transactionIndex": "0x79", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x185", - "removed": false - }, - { - "address": "0xb6cec3a5828923385bcdedf12044f1c98bd729ac", - "topics": [ - "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", - "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", - "0x0000000000000000000000009f256a5703a493cac86a09fa84473517ace6ca81" - ], - "data": "0x000000000000000000000000000000000000000000000000006983fe1dd44000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006badea95a749b", - "blockNumber": "0x161bd0f", - "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", - "transactionIndex": "0x79", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x186", - "removed": false - } - ], - "logsBloom": "0x00200000000000000000000080000000000002000000000000010000000000000000000000000000000010000000000442000000080000000000000000000000000000000000000000000008000000200000000000000000000000008000000000000000000000000000000000000000000828000000000800000010000000000000000000000000004000000000000000000001000000080000004000200010000000000000000000000000000000000000000040000000000000000000000000000002000000000000000000000000000000000000001000000000000020000000200000000000002000000000000000000000000000400000000000000000", - "status": "0x1", - "to": "0x055c48651015cf5b21599a4ded8c402fdc718058", - "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", - "transactionIndex": "0x79", - "type": "0x2" - }, - { - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "contractAddress": null, - "cumulativeGasUsed": "0xe36e2f", - "effectiveGasPrice": "0x23cf3fd4", - "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", - "gasUsed": "0x565f", - "logs": [ - { - "address": "0x388c818ca8b9251b393131c08a736a67ccb19297", - "topics": [ - "0x27f12abfe35860a9a927b465bb3d4a9c23c8428174b83f278fe45ed7b4da2662" - ], - "data": "0x000000000000000000000000000000000000000000000000012bf92aae0c2e70", - "blockNumber": "0x161bd0f", - "transactionHash": "0x2c522d01183e9ed70caaf75c940ba9908d573cfc9996b3e7adc90313798279c8", - "transactionIndex": "0x7a", - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "logIndex": "0x187", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000100004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", - "status": "0x1", - "to": "0x388c818ca8b9251b393131c08a736a67ccb19297", - "transactionHash": "0x2c522d01183e9ed70caaf75c940ba9908d573cfc9996b3e7adc90313798279c8", - "transactionIndex": "0x7a", - "type": "0x2" - } -] From d063d09108f461a2400471cd6d3482ba2d880eda Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 10:38:13 +0000 Subject: [PATCH 111/273] revive: Rename mod eth block storage Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index abc497cc77f53..f57dd86cc3be1 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -127,7 +127,7 @@ const SENTINEL: u32 = u32::MAX; /// Example: `RUST_LOG=runtime::revive=debug my_code --dev` const LOG_TARGET: &str = "runtime::revive"; -mod block_storage { +mod eth_block_storage { use environmental::environmental; /// The maximum number of block hashes to keep in the history. @@ -681,7 +681,7 @@ pub mod pallet { BlockHash::::insert(eth_block_num, block_hash); // Prune older block hashes. - let block_hash_count = block_storage::BLOCK_HASH_COUNT; + let block_hash_count = eth_block_storage::BLOCK_HASH_COUNT; let to_remove = eth_block_num.saturating_sub(block_hash_count.into()).saturating_sub(One::one()); if !to_remove.is_zero() { @@ -995,7 +995,7 @@ pub mod pallet { ) -> DispatchResultWithPostInfo { ensure_signed(origin.clone())?; - block_storage::with_ethereum_context(|| { + eth_block_storage::with_ethereum_context(|| { let code_len = code.len() as u32; let data_len = data.len() as u32; let mut output = Self::bare_instantiate( @@ -1046,7 +1046,7 @@ pub mod pallet { ) -> DispatchResultWithPostInfo { ensure_signed(origin.clone())?; - block_storage::with_ethereum_context(|| { + eth_block_storage::with_ethereum_context(|| { let mut output = Self::bare_call( origin, dest, @@ -1785,7 +1785,7 @@ impl Pallet { /// Therefore all events must be contract emitted events. fn deposit_event(event: Event) { if matches!(event, Event::ContractEmitted { .. }) && - block_storage::is_executing_ethereum_call() + eth_block_storage::is_executing_ethereum_call() { // TODO: ensure we don't exceed a maximum number of events per tx. InflightEvents::::mutate(|events| { From 10487a5efad972b5e44b8850ab6f97d01074cfff Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 10:38:53 +0000 Subject: [PATCH 112/273] revive: Rename to InflightEthTxEvents Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 10 +++++----- substrate/frame/revive/src/tests/block_hash.rs | 14 +++++++------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index f57dd86cc3be1..9a614746c3676 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -558,7 +558,7 @@ pub mod pallet { /// completed and moved to the `InflightTransactions` storage object. #[pallet::storage] #[pallet::unbounded] - pub(crate) type InflightEvents = StorageValue<_, Vec>, ValueQuery>; + pub(crate) type InflightEthTxEvents = StorageValue<_, Vec>, ValueQuery>; /// The EVM submitted transactions that are inflight for the current block. /// @@ -640,7 +640,7 @@ pub mod pallet { fn on_initialize(_n: BlockNumberFor) -> Weight { ReceiptInfoData::::kill(); EthereumBlock::::kill(); - InflightEvents::::kill(); + InflightEthTxEvents::::kill(); InflightTransactions::::kill(); Weight::zero() @@ -651,7 +651,7 @@ pub mod pallet { // Finding the block author traverses the digest logs. let Some(block_author) = Self::block_author() else { // Drain storage in case of errors. - InflightEvents::::kill(); + InflightEthTxEvents::::kill(); InflightTransactions::::kill(); return; }; @@ -1788,7 +1788,7 @@ impl Pallet { eth_block_storage::is_executing_ethereum_call() { // TODO: ensure we don't exceed a maximum number of events per tx. - InflightEvents::::mutate(|events| { + InflightEthTxEvents::::mutate(|events| { events.push(event.clone()); }); } @@ -1801,7 +1801,7 @@ impl Pallet { /// The data is used during the `on_finalize` hook to reconstruct the ETH block. fn store_transaction(payload: Vec, success: bool, gas_consumed: Weight) { // Collect inflight events emitted by this EVM transaction. - let events = InflightEvents::::take(); + let events = InflightEthTxEvents::::take(); let extrinsic_index = frame_system::Pallet::::extrinsic_index().unwrap_or_else(|| { log::warn!(target: LOG_TARGET, "Extrinsic index is not set, using default value 0"); diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 2d962576241cf..14f17f1bc4fff 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -20,7 +20,7 @@ use crate::{ test_utils::{builder::Contract, deposit_limit, ALICE}, tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeEvent, RuntimeOrigin, Test}, - BalanceWithDust, Code, Config, EthBlock, EthereumBlock, Event, InflightEvents, + BalanceWithDust, Code, Config, EthBlock, EthereumBlock, Event, InflightEthTxEvents, InflightTransactions, Pallet, ReceiptGasInfo, ReceiptInfoData, Weight, H256, }; @@ -37,8 +37,8 @@ fn on_initialize_clears_storage() { let event = Event::ContractEmitted { contract: Default::default(), data: vec![1], topics: vec![] }; - InflightEvents::::put(vec![event.clone()]); - assert_eq!(InflightEvents::::get(), vec![event.clone()]); + InflightEthTxEvents::::put(vec![event.clone()]); + assert_eq!(InflightEthTxEvents::::get(), vec![event.clone()]); let transactions = vec![(vec![1, 2, 3], 1, vec![event], true, Weight::zero())]; InflightTransactions::::put(transactions.clone()); @@ -51,7 +51,7 @@ fn on_initialize_clears_storage() { Contracts::on_initialize(0); assert_eq!(ReceiptInfoData::::get(), vec![]); - assert_eq!(InflightEvents::::get(), vec![]); + assert_eq!(InflightEthTxEvents::::get(), vec![]); assert_eq!(InflightTransactions::::get(), vec![]); assert_eq!(EthereumBlock::::get(), Default::default()); }); @@ -119,10 +119,10 @@ fn events_are_captured() { Pallet::::convert_native_to_evm(BalanceWithDust::new_unchecked::(100, 10)); // Capture the EthInstantiate. - assert_eq!(InflightEvents::::get(), vec![]); + assert_eq!(InflightEthTxEvents::::get(), vec![]); assert_ok!(builder::eth_instantiate_with_code(binary).value(balance).build()); // Events are cleared out by storing the transaction. - assert_eq!(InflightEvents::::get(), vec![]); + assert_eq!(InflightEthTxEvents::::get(), vec![]); let transactions = InflightTransactions::::get(); assert_eq!(transactions.len(), 1); @@ -141,6 +141,6 @@ fn events_are_captured() { Contracts::on_finalize(0); assert_eq!(InflightTransactions::::get(), vec![]); - assert_eq!(InflightEvents::::get(), vec![]); + assert_eq!(InflightEthTxEvents::::get(), vec![]); }); } From b383ccb42978b420b8b0b88a26d1f7e14ce79a49 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 10:39:11 +0000 Subject: [PATCH 113/273] revive/tests: Fix unused import Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/tests/block_hash.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 14f17f1bc4fff..98ad0671f2f92 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -19,7 +19,7 @@ use crate::{ test_utils::{builder::Contract, deposit_limit, ALICE}, - tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeEvent, RuntimeOrigin, Test}, + tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeOrigin, Test}, BalanceWithDust, Code, Config, EthBlock, EthereumBlock, Event, InflightEthTxEvents, InflightTransactions, Pallet, ReceiptGasInfo, ReceiptInfoData, Weight, H256, }; From df5e2774361994f8a614bbd53a353ae31ec6a742 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 10:46:21 +0000 Subject: [PATCH 114/273] revive: Rename to InflightEthTransactions Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 12 ++++++------ substrate/frame/revive/src/tests/block_hash.rs | 18 +++++++++--------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 9a614746c3676..70359356230af 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -555,7 +555,7 @@ pub mod pallet { /// /// The events are needed to reconstruct the ReceiptInfo, as they represent the /// logs emitted by the contract. The events are consumed when the transaction is - /// completed and moved to the `InflightTransactions` storage object. + /// completed and moved to the `InflightEthTransactions` storage object. #[pallet::storage] #[pallet::unbounded] pub(crate) type InflightEthTxEvents = StorageValue<_, Vec>, ValueQuery>; @@ -569,7 +569,7 @@ pub mod pallet { /// the gas consumed. #[pallet::storage] #[pallet::unbounded] - pub(crate) type InflightTransactions = + pub(crate) type InflightEthTransactions = StorageValue<_, Vec<(Vec, u32, Vec>, bool, Weight)>, ValueQuery>; /// The current Ethereum block that is stored in the `on_finalize` method. @@ -641,7 +641,7 @@ pub mod pallet { ReceiptInfoData::::kill(); EthereumBlock::::kill(); InflightEthTxEvents::::kill(); - InflightTransactions::::kill(); + InflightEthTransactions::::kill(); Weight::zero() } @@ -652,7 +652,7 @@ pub mod pallet { let Some(block_author) = Self::block_author() else { // Drain storage in case of errors. InflightEthTxEvents::::kill(); - InflightTransactions::::kill(); + InflightEthTransactions::::kill(); return; }; @@ -666,7 +666,7 @@ pub mod pallet { let base_gas_price = Self::evm_base_gas_price().into(); let gas_limit = Self::evm_block_gas_limit(); // This touches the storage, must account for weights. - let transactions = InflightTransactions::::take(); + let transactions = InflightEthTransactions::::take(); let (block_hash, block, receipt_data) = EthBlock::build( transactions, @@ -1808,7 +1808,7 @@ impl Pallet { 0 }); - InflightTransactions::::mutate(|transactions| { + InflightEthTransactions::::mutate(|transactions| { transactions.push((payload, extrinsic_index, events, success, gas_consumed)); }); } diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 98ad0671f2f92..b88d5c058462c 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -20,8 +20,8 @@ use crate::{ test_utils::{builder::Contract, deposit_limit, ALICE}, tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeOrigin, Test}, - BalanceWithDust, Code, Config, EthBlock, EthereumBlock, Event, InflightEthTxEvents, - InflightTransactions, Pallet, ReceiptGasInfo, ReceiptInfoData, Weight, H256, + BalanceWithDust, Code, Config, EthBlock, EthereumBlock, Event, InflightEthTransactions, + InflightEthTxEvents, Pallet, ReceiptGasInfo, ReceiptInfoData, Weight, H256, }; use frame_support::traits::{fungible::Mutate, Hooks}; @@ -41,8 +41,8 @@ fn on_initialize_clears_storage() { assert_eq!(InflightEthTxEvents::::get(), vec![event.clone()]); let transactions = vec![(vec![1, 2, 3], 1, vec![event], true, Weight::zero())]; - InflightTransactions::::put(transactions.clone()); - assert_eq!(InflightTransactions::::get(), transactions); + InflightEthTransactions::::put(transactions.clone()); + assert_eq!(InflightEthTransactions::::get(), transactions); let block = EthBlock { number: 1.into(), ..Default::default() }; EthereumBlock::::put(block.clone()); @@ -52,7 +52,7 @@ fn on_initialize_clears_storage() { assert_eq!(ReceiptInfoData::::get(), vec![]); assert_eq!(InflightEthTxEvents::::get(), vec![]); - assert_eq!(InflightTransactions::::get(), vec![]); + assert_eq!(InflightEthTransactions::::get(), vec![]); assert_eq!(EthereumBlock::::get(), Default::default()); }); } @@ -79,7 +79,7 @@ fn transactions_are_captured() { // Instantiate with code is not captured. assert_ok!(builder::instantiate_with_code(gas_binary).value(1).build()); - let transactions = InflightTransactions::::get(); + let transactions = InflightEthTransactions::::get(); assert_eq!(transactions.len(), 2); assert_eq!(transactions[0].0, vec![1]); // payload set to 1 for eth_call assert_eq!(transactions[0].1, 0); // tx index @@ -93,7 +93,7 @@ fn transactions_are_captured() { Contracts::on_finalize(0); - assert_eq!(InflightTransactions::::get(), vec![]); + assert_eq!(InflightEthTransactions::::get(), vec![]); }); } @@ -124,7 +124,7 @@ fn events_are_captured() { // Events are cleared out by storing the transaction. assert_eq!(InflightEthTxEvents::::get(), vec![]); - let transactions = InflightTransactions::::get(); + let transactions = InflightEthTransactions::::get(); assert_eq!(transactions.len(), 1); assert_eq!(transactions[0].0, vec![2]); // payload set to 1 for eth_instantiate_with_code assert_eq!(transactions[0].1, 0); // tx index @@ -140,7 +140,7 @@ fn events_are_captured() { Contracts::on_finalize(0); - assert_eq!(InflightTransactions::::get(), vec![]); + assert_eq!(InflightEthTransactions::::get(), vec![]); assert_eq!(InflightEthTxEvents::::get(), vec![]); }); } From 6c1175bb441432493771d27019dacaffb6c21a0b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 10:47:10 +0000 Subject: [PATCH 115/273] revive: Rename comment for accounting storage Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 70359356230af..caad3cd91c57a 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -656,7 +656,7 @@ pub mod pallet { return; }; - // Note: This read should be accounted for. + // Weights are accounted for in the `on_initialize`. let eth_block_num: U256 = block_number.into(); let parent_hash = if eth_block_num > U256::zero() { BlockHash::::get(eth_block_num - 1) @@ -1015,8 +1015,6 @@ pub mod pallet { } } - // TODO: Should we report `gas_consumed.saturating_add(base_weight)` instead? - // If so, we might need to capture this from inside the `dispatch_result`. Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); dispatch_result( From 9a112ab852ecbc747dcb0ea51bb893e140df8c69 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 10:48:38 +0000 Subject: [PATCH 116/273] revive: Remove max comment Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index caad3cd91c57a..c9eb6dcafb019 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1785,7 +1785,6 @@ impl Pallet { if matches!(event, Event::ContractEmitted { .. }) && eth_block_storage::is_executing_ethereum_call() { - // TODO: ensure we don't exceed a maximum number of events per tx. InflightEthTxEvents::::mutate(|events| { events.push(event.clone()); }); From 4ed70dd43ceaabdfdc0ebd4b1c3f2f9ee16e554f Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 11:13:18 +0000 Subject: [PATCH 117/273] revive/block_hash: Simplify trait bounds Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 01872afba9dd3..f0bee3dd3e671 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -19,6 +19,7 @@ use crate::{ evm::{Block, TransactionSigned}, + pallet::Config, Event, }; @@ -71,7 +72,7 @@ impl Block { /// (II) Transaction trie root and receipt trie root are computed. /// /// (III) Block hash is computed from the provided information. - pub fn build( + pub fn build( details: impl IntoIterator>, block_number: U256, parent_hash: H256, @@ -79,10 +80,7 @@ impl Block { block_author: H160, gas_limit: U256, base_gas_price: U256, - ) -> (H256, Block, Vec) - where - T: crate::pallet::Config, - { + ) -> (H256, Block, Vec) { let mut block = Self { number: block_number, parent_hash, From 9c0ca442186a025a0df3e62e244fb31bbb137f77 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 11:13:27 +0000 Subject: [PATCH 118/273] revive: Capture events from the exec to avoid matching Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/exec.rs | 15 ++++++++++++--- substrate/frame/revive/src/lib.rs | 10 +--------- substrate/frame/revive/src/tests/block_hash.rs | 16 ++++++++-------- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index 1b5dee1d6dabf..6d8784717de2b 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -17,6 +17,7 @@ use crate::{ address::{self, AddressMapper}, + eth_block_storage, gas::GasMeter, limits, precompiles::{All as AllPrecompiles, Instance as PrecompileInstance, Precompiles}, @@ -26,8 +27,8 @@ use crate::{ tracing::if_tracing, transient_storage::TransientStorage, AccountInfo, AccountInfoOf, BalanceOf, BalanceWithDust, CodeInfo, CodeInfoOf, Config, - ContractInfo, Error, Event, ImmutableData, ImmutableDataOf, Pallet as Contracts, RuntimeCosts, - LOG_TARGET, + ContractInfo, Error, Event, ImmutableData, ImmutableDataOf, InflightEthTxEvents, + Pallet as Contracts, RuntimeCosts, LOG_TARGET, }; use alloc::vec::Vec; use core::{fmt::Debug, marker::PhantomData, mem}; @@ -2020,7 +2021,15 @@ where if_tracing(|tracer| { tracer.log_event(contract, &topics, &data); }); - Contracts::::deposit_event(Event::ContractEmitted { contract, data, topics }); + + let event = Event::ContractEmitted { contract, data, topics }; + if eth_block_storage::is_executing_ethereum_call() { + InflightEthTxEvents::::mutate(|events| { + events.push(event.clone()); + }); + } + + Contracts::::deposit_event(event); } fn block_number(&self) -> U256 { diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index c9eb6dcafb019..990d24e272de0 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -127,7 +127,7 @@ const SENTINEL: u32 = u32::MAX; /// Example: `RUST_LOG=runtime::revive=debug my_code --dev` const LOG_TARGET: &str = "runtime::revive"; -mod eth_block_storage { +pub(crate) mod eth_block_storage { use environmental::environmental; /// The maximum number of block hashes to keep in the history. @@ -1782,14 +1782,6 @@ impl Pallet { /// This method will be called by the EVM to deposit events emitted by the contract. /// Therefore all events must be contract emitted events. fn deposit_event(event: Event) { - if matches!(event, Event::ContractEmitted { .. }) && - eth_block_storage::is_executing_ethereum_call() - { - InflightEthTxEvents::::mutate(|events| { - events.push(event.clone()); - }); - } - >::deposit_event(::RuntimeEvent::from(event)) } diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index b88d5c058462c..44cae8a645774 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -128,14 +128,14 @@ fn events_are_captured() { assert_eq!(transactions.len(), 1); assert_eq!(transactions[0].0, vec![2]); // payload set to 1 for eth_instantiate_with_code assert_eq!(transactions[0].1, 0); // tx index - assert_eq!( - transactions[0].2[0], - crate::Event::ContractEmitted { - contract: addr, - data: vec![1, 2, 3, 4], - topics: vec![H256::repeat_byte(42)] - } - ); + match &transactions[0].2[0] { + crate::Event::ContractEmitted { contract, data, topics } => { + assert_ne!(contract, &addr); + assert_eq!(data, &vec![1, 2, 3, 4]); + assert_eq!(topics, &vec![H256::repeat_byte(42)]); + }, + event => panic!("Event {event:?} unexpected"), + }; assert_eq!(transactions[0].3, true); // successful Contracts::on_finalize(0); From 6898e2b6031b98183ab04cba3f1498dc34bd5c86 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 11:56:32 +0000 Subject: [PATCH 119/273] revive: Use structs to place transaction details into storage Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 88 +++++++++++-------- substrate/frame/revive/src/exec.rs | 6 +- substrate/frame/revive/src/lib.rs | 18 ++-- .../frame/revive/src/tests/block_hash.rs | 87 ++++++++++++------ 4 files changed, 125 insertions(+), 74 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index f0bee3dd3e671..c41183f1108d0 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -17,11 +17,7 @@ //!Types, and traits to integrate pallet-revive with EVM. #![warn(missing_docs)] -use crate::{ - evm::{Block, TransactionSigned}, - pallet::Config, - Event, -}; +use crate::evm::{Block, TransactionSigned}; use alloc::vec::Vec; use alloy_consensus::RlpEncodableReceipt; @@ -34,8 +30,34 @@ use sp_core::{keccak_256, H160, H256, U256}; const LOG_TARGET: &str = "runtime::revive::hash"; -/// The transaction details captured by the revive pallet. -pub type TransactionDetails = (Vec, u32, Vec>, bool, Weight); +/// The log emitted by executing the ethereum transaction. +/// +/// This is needed to compute the receipt bloom hash. +#[derive(Encode, Decode, TypeInfo, Clone, Debug)] +pub struct EventLog { + /// The contract that emitted the event. + pub contract: H160, + /// Data supplied by the contract. Metadata generated during contract compilation + /// is needed to decode it. + pub data: Vec, + /// A list of topics used to index the event. + pub topics: Vec, +} + +/// The transaction details needed to build the ethereum block hash. +#[derive(Encode, Decode, TypeInfo, Clone, Debug)] +pub struct TransactionDetails { + /// The signed transaction. + pub payload: Vec, + /// The index of the transaction within the block. + pub index: u32, + /// The logs emitted by the transaction. + pub logs: Vec, + /// Whether the transaction was successful. + pub success: bool, + /// The accurate gas used by the transaction. + pub gas_used: Weight, +} /// Details needed to reconstruct the receipt info in the RPC /// layer without losing accuracy. @@ -72,8 +94,8 @@ impl Block { /// (II) Transaction trie root and receipt trie root are computed. /// /// (III) Block hash is computed from the provided information. - pub fn build( - details: impl IntoIterator>, + pub fn build( + details: impl IntoIterator, block_number: U256, parent_hash: H256, timestamp: U256, @@ -128,46 +150,42 @@ impl Block { /// Returns a tuple of the RLP encoded transaction and receipt. /// /// Internally collects the total gas used, the log blooms and the transaction hashes. - fn process_transaction_details( + fn process_transaction_details( &mut self, - detail: TransactionDetails, + detail: TransactionDetails, base_gas_price: U256, - ) -> Option<(Vec, Vec, ReceiptGasInfo, Bloom)> - where - T: crate::pallet::Config, - { - let (payload, transaction_index, events, success, gas) = detail; - let signed_tx = TransactionSigned::decode(&mut &payload[..]).inspect_err(|err| { - log::error!(target: LOG_TARGET, "Failed to decode transaction at index {transaction_index}: {err:?}"); - }).ok()?; + ) -> Option<(Vec, Vec, ReceiptGasInfo, Bloom)> { + let TransactionDetails { payload, index, logs, success, gas_used } = detail; + + let signed_tx = TransactionSigned::decode(&mut &payload[..]) + .inspect_err(|err| { + log::error!(target: LOG_TARGET, "Failed to decode transaction at index {index}: {err:?}"); + }) + .ok()?; let transaction_hash = H256(keccak_256(&payload)); self.transactions.push_hash(transaction_hash); let gas_info = ReceiptGasInfo { effective_gas_price: signed_tx.effective_gas_price(base_gas_price), - gas_used: gas.ref_time().into(), + gas_used: gas_used.ref_time().into(), }; - let logs = events + let logs = logs .into_iter() - .filter_map(|event| { - if let Event::ContractEmitted { contract, data, topics } = event { - Some(alloy_primitives::Log::new_unchecked( - contract.0.into(), - topics - .into_iter() - .map(|h| alloy_primitives::FixedBytes::from(h.0)) - .collect::>(), - alloy_primitives::Bytes::from(data), - )) - } else { - None - } + .map(|log| { + alloy_primitives::Log::new_unchecked( + log.contract.0.into(), + log.topics + .into_iter() + .map(|h| alloy_primitives::FixedBytes::from(h.0)) + .collect::>(), + alloy_primitives::Bytes::from(log.data), + ) }) .collect(); - self.gas_used += gas.ref_time().into(); + self.gas_used += gas_used.ref_time().into(); let receipt = alloy_consensus::Receipt { status: success.into(), diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index 6d8784717de2b..42f218066c6c1 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -18,6 +18,7 @@ use crate::{ address::{self, AddressMapper}, eth_block_storage, + evm::block_hash::EventLog, gas::GasMeter, limits, precompiles::{All as AllPrecompiles, Instance as PrecompileInstance, Precompiles}, @@ -2022,14 +2023,13 @@ where tracer.log_event(contract, &topics, &data); }); - let event = Event::ContractEmitted { contract, data, topics }; if eth_block_storage::is_executing_ethereum_call() { InflightEthTxEvents::::mutate(|events| { - events.push(event.clone()); + events.push(EventLog { contract, data: data.clone(), topics: topics.clone() }); }); } - Contracts::::deposit_event(event); + Contracts::::deposit_event(Event::ContractEmitted { contract, data, topics }); } fn block_number(&self) -> U256 { diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 990d24e272de0..4235265034668 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,8 +45,10 @@ pub mod weights; use crate::{ evm::{ - block_hash::ReceiptGasInfo, runtime::GAS_PRICE, CallTracer, GasEncoder, GenericTransaction, - PrestateTracer, Trace, Tracer, TracerType, TYPE_EIP1559, + block_hash::{EventLog, ReceiptGasInfo, TransactionDetails}, + runtime::GAS_PRICE, + CallTracer, GasEncoder, GenericTransaction, PrestateTracer, Trace, Tracer, TracerType, + TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Stack as ExecStack}, gas::GasMeter, @@ -558,7 +560,7 @@ pub mod pallet { /// completed and moved to the `InflightEthTransactions` storage object. #[pallet::storage] #[pallet::unbounded] - pub(crate) type InflightEthTxEvents = StorageValue<_, Vec>, ValueQuery>; + pub(crate) type InflightEthTxEvents = StorageValue<_, Vec, ValueQuery>; /// The EVM submitted transactions that are inflight for the current block. /// @@ -570,7 +572,7 @@ pub mod pallet { #[pallet::storage] #[pallet::unbounded] pub(crate) type InflightEthTransactions = - StorageValue<_, Vec<(Vec, u32, Vec>, bool, Weight)>, ValueQuery>; + StorageValue<_, Vec, ValueQuery>; /// The current Ethereum block that is stored in the `on_finalize` method. /// @@ -1788,17 +1790,17 @@ impl Pallet { /// Store a transaction payload with extra details. /// /// The data is used during the `on_finalize` hook to reconstruct the ETH block. - fn store_transaction(payload: Vec, success: bool, gas_consumed: Weight) { + fn store_transaction(payload: Vec, success: bool, gas_used: Weight) { // Collect inflight events emitted by this EVM transaction. - let events = InflightEthTxEvents::::take(); + let logs = InflightEthTxEvents::::take(); - let extrinsic_index = frame_system::Pallet::::extrinsic_index().unwrap_or_else(|| { + let index = frame_system::Pallet::::extrinsic_index().unwrap_or_else(|| { log::warn!(target: LOG_TARGET, "Extrinsic index is not set, using default value 0"); 0 }); InflightEthTransactions::::mutate(|transactions| { - transactions.push((payload, extrinsic_index, events, success, gas_consumed)); + transactions.push(TransactionDetails { payload, index, logs, success, gas_used }); }); } diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 44cae8a645774..e3b2613612bb0 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -18,15 +18,33 @@ //! The pallet-revive ETH block hash specific integration test suite. use crate::{ + evm::block_hash::{EventLog, TransactionDetails}, test_utils::{builder::Contract, deposit_limit, ALICE}, tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeOrigin, Test}, - BalanceWithDust, Code, Config, EthBlock, EthereumBlock, Event, InflightEthTransactions, + BalanceWithDust, Code, Config, EthBlock, EthereumBlock, InflightEthTransactions, InflightEthTxEvents, Pallet, ReceiptGasInfo, ReceiptInfoData, Weight, H256, }; use frame_support::traits::{fungible::Mutate, Hooks}; use pallet_revive_fixtures::compile_module; +impl PartialEq for EventLog { + // Dont care about the contract address, since eth instantiate cannot expose it. + fn eq(&self, other: &Self) -> bool { + self.data == other.data && self.topics == other.topics + } +} + +impl PartialEq for TransactionDetails { + // Ignore the weight since its subject to change. + fn eq(&self, other: &Self) -> bool { + self.payload == other.payload && + self.index == other.index && + self.logs == other.logs && + self.success == other.success + } +} + #[test] fn on_initialize_clears_storage() { ExtBuilder::default().existential_deposit(50).build().execute_with(|| { @@ -35,12 +53,18 @@ fn on_initialize_clears_storage() { ReceiptInfoData::::put(receipt_data.clone()); assert_eq!(ReceiptInfoData::::get(), receipt_data); - let event = - Event::ContractEmitted { contract: Default::default(), data: vec![1], topics: vec![] }; + let event = EventLog { contract: Default::default(), data: vec![1], topics: vec![] }; InflightEthTxEvents::::put(vec![event.clone()]); assert_eq!(InflightEthTxEvents::::get(), vec![event.clone()]); - let transactions = vec![(vec![1, 2, 3], 1, vec![event], true, Weight::zero())]; + let transactions = vec![TransactionDetails { + payload: vec![1, 2, 3], + index: 1, + logs: vec![event.clone()], + success: true, + gas_used: Weight::zero(), + }]; + InflightEthTransactions::::put(transactions.clone()); assert_eq!(InflightEthTransactions::::get(), transactions); @@ -80,16 +104,23 @@ fn transactions_are_captured() { assert_ok!(builder::instantiate_with_code(gas_binary).value(1).build()); let transactions = InflightEthTransactions::::get(); - assert_eq!(transactions.len(), 2); - assert_eq!(transactions[0].0, vec![1]); // payload set to 1 for eth_call - assert_eq!(transactions[0].1, 0); // tx index - assert_eq!(transactions[0].2, vec![]); // no events emitted - assert_eq!(transactions[0].3, true); // successful - - assert_eq!(transactions[1].0, vec![2]); // payload set to 2 for eth_instantiate_with_code - assert_eq!(transactions[1].1, 0); // tx index - assert_eq!(transactions[1].2, vec![]); // no events emitted - assert_eq!(transactions[1].3, true); // successful + let expected = vec![ + TransactionDetails { + payload: vec![1], + index: 0, + logs: vec![], + success: true, + gas_used: Weight::zero(), + }, + TransactionDetails { + payload: vec![2], + index: 0, + logs: vec![], + success: true, + gas_used: Weight::zero(), + }, + ]; + assert_eq!(transactions, expected); Contracts::on_finalize(0); @@ -113,8 +144,7 @@ fn events_are_captured() { Contracts::on_initialize(1); // Bare call must not be captured. - let Contract { addr, .. } = builder::bare_instantiate(Code::Existing(code_hash.clone())) - .build_and_unwrap_contract(); + builder::bare_instantiate(Code::Existing(code_hash.clone())).build_and_unwrap_contract(); let balance = Pallet::::convert_native_to_evm(BalanceWithDust::new_unchecked::(100, 10)); @@ -125,18 +155,19 @@ fn events_are_captured() { assert_eq!(InflightEthTxEvents::::get(), vec![]); let transactions = InflightEthTransactions::::get(); - assert_eq!(transactions.len(), 1); - assert_eq!(transactions[0].0, vec![2]); // payload set to 1 for eth_instantiate_with_code - assert_eq!(transactions[0].1, 0); // tx index - match &transactions[0].2[0] { - crate::Event::ContractEmitted { contract, data, topics } => { - assert_ne!(contract, &addr); - assert_eq!(data, &vec![1, 2, 3, 4]); - assert_eq!(topics, &vec![H256::repeat_byte(42)]); - }, - event => panic!("Event {event:?} unexpected"), - }; - assert_eq!(transactions[0].3, true); // successful + let expected = vec![TransactionDetails { + payload: vec![2], + index: 0, + logs: vec![EventLog { + data: vec![1, 2, 3, 4], + topics: vec![H256::repeat_byte(42)], + contract: Default::default(), + }], + success: true, + gas_used: Weight::zero(), + }]; + + assert_eq!(transactions, expected); Contracts::on_finalize(0); From 90cfe6911336df349b1bb051702457b6933ddcfd Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 12:25:11 +0000 Subject: [PATCH 120/273] revive: Pass transactionSigned into the eth call directly Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/api/byte.rs | 4 +- .../frame/revive/src/evm/api/rpc_types_gen.rs | 123 ++++++++++++++++-- substrate/frame/revive/src/evm/api/type_id.rs | 4 +- substrate/frame/revive/src/evm/block_hash.rs | 20 +-- substrate/frame/revive/src/evm/runtime.rs | 52 ++++---- substrate/frame/revive/src/lib.rs | 49 ++++--- .../frame/revive/src/test_utils/builder.rs | 13 +- .../frame/revive/src/tests/block_hash.rs | 12 +- 8 files changed, 195 insertions(+), 82 deletions(-) diff --git a/substrate/frame/revive/src/evm/api/byte.rs b/substrate/frame/revive/src/evm/api/byte.rs index 21a7b6fb42463..1f97746d25223 100644 --- a/substrate/frame/revive/src/evm/api/byte.rs +++ b/substrate/frame/revive/src/evm/api/byte.rs @@ -19,7 +19,7 @@ use super::hex_serde::HexCodec; use alloc::{vec, vec::Vec}; use alloy_core::hex; -use codec::{Decode, Encode}; +use codec::{Decode, DecodeWithMemTracking, Encode}; use core::{ fmt::{Debug, Display, Formatter, Result as FmtResult}, str::FromStr, @@ -37,7 +37,7 @@ impl FromStr for Bytes { macro_rules! impl_hex { ($type:ident, $inner:ty, $default:expr) => { - #[derive(Encode, Decode, Eq, PartialEq, Ord, PartialOrd, TypeInfo, Clone, Serialize, Deserialize, Hash)] + #[derive(Encode, Decode, Eq, PartialEq, Ord, PartialOrd, TypeInfo, Clone, Serialize, Deserialize, Hash, DecodeWithMemTracking)] #[doc = concat!("`", stringify!($inner), "`", " wrapper type for encoding and decoding hex strings")] pub struct $type(#[serde(with = "crate::evm::api::hex_serde")] pub $inner); 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 4d92727a74098..4f155589d2b85 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -19,7 +19,7 @@ use super::{byte::*, TypeEip1559, TypeEip2930, TypeEip4844, TypeLegacy}; use alloc::vec::Vec; -use codec::{Decode, Encode}; +use codec::{Decode, DecodeWithMemTracking, Encode}; use derive_more::{From, TryInto}; pub use ethereum_types::*; use scale_info::TypeInfo; @@ -555,7 +555,17 @@ pub struct SyncingProgress { /// EIP-1559 transaction. #[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Default, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] pub struct Transaction1559Unsigned { /// accessList @@ -597,7 +607,17 @@ pub struct Transaction1559Unsigned { /// EIP-2930 transaction. #[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Default, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] pub struct Transaction2930Unsigned { /// accessList @@ -628,7 +648,17 @@ pub struct Transaction2930Unsigned { /// EIP-4844 transaction. #[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Default, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] pub struct Transaction4844Unsigned { /// accessList @@ -672,7 +702,17 @@ pub struct Transaction4844Unsigned { /// Legacy transaction. #[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Default, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] pub struct TransactionLegacyUnsigned { /// chainId @@ -698,7 +738,18 @@ pub struct TransactionLegacyUnsigned { } #[derive( - Debug, Clone, Serialize, Deserialize, From, TryInto, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Clone, + Serialize, + Deserialize, + From, + TryInto, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] #[serde(untagged)] pub enum TransactionSigned { @@ -749,7 +800,17 @@ pub struct Withdrawal { /// Access list entry #[derive( - Debug, Default, Clone, Encode, Decode, TypeInfo, Serialize, Deserialize, Eq, PartialEq, + Debug, + Default, + Clone, + Encode, + Decode, + TypeInfo, + Serialize, + Deserialize, + Eq, + PartialEq, + DecodeWithMemTracking, )] pub struct AccessListEntry { pub address: Address, @@ -774,7 +835,17 @@ impl Default for FilterTopic { /// Signed 1559 Transaction #[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Default, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] pub struct Transaction1559Signed { #[serde(flatten)] @@ -796,7 +867,17 @@ pub struct Transaction1559Signed { /// Signed 2930 Transaction #[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Default, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] pub struct Transaction2930Signed { #[serde(flatten)] @@ -818,7 +899,17 @@ pub struct Transaction2930Signed { /// Signed 4844 Transaction #[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Default, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] pub struct Transaction4844Signed { #[serde(flatten)] @@ -835,7 +926,17 @@ pub struct Transaction4844Signed { /// Signed Legacy Transaction #[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Default, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] pub struct TransactionLegacySigned { #[serde(flatten)] diff --git a/substrate/frame/revive/src/evm/api/type_id.rs b/substrate/frame/revive/src/evm/api/type_id.rs index c6e018a379b37..843eab280fb9c 100644 --- a/substrate/frame/revive/src/evm/api/type_id.rs +++ b/substrate/frame/revive/src/evm/api/type_id.rs @@ -16,7 +16,7 @@ // limitations under the License. //! Ethereum Typed Transaction types use super::Byte; -use codec::{Decode, Encode}; +use codec::{Decode, DecodeWithMemTracking, Encode}; use paste::paste; use rlp::Decodable; use scale_info::TypeInfo; @@ -27,7 +27,7 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer}; macro_rules! transaction_type { ($name:ident, $value:literal) => { #[doc = concat!("Transaction type identifier: ", $value)] - #[derive(Clone, Default, Debug, Eq, PartialEq)] + #[derive(Clone, Default, Debug, Eq, PartialEq, DecodeWithMemTracking)] pub struct $name; // upper case const name diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index c41183f1108d0..8c23164514e45 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -18,7 +18,6 @@ #![warn(missing_docs)] use crate::evm::{Block, TransactionSigned}; - use alloc::vec::Vec; use alloy_consensus::RlpEncodableReceipt; use alloy_core::primitives::bytes::BufMut; @@ -28,8 +27,6 @@ use frame_support::weights::Weight; use scale_info::TypeInfo; use sp_core::{keccak_256, H160, H256, U256}; -const LOG_TARGET: &str = "runtime::revive::hash"; - /// The log emitted by executing the ethereum transaction. /// /// This is needed to compute the receipt bloom hash. @@ -48,7 +45,7 @@ pub struct EventLog { #[derive(Encode, Decode, TypeInfo, Clone, Debug)] pub struct TransactionDetails { /// The signed transaction. - pub payload: Vec, + pub signed_transaction: TransactionSigned, /// The index of the transaction within the block. pub index: u32, /// The logs emitted by the transaction. @@ -155,19 +152,14 @@ impl Block { detail: TransactionDetails, base_gas_price: U256, ) -> Option<(Vec, Vec, ReceiptGasInfo, Bloom)> { - let TransactionDetails { payload, index, logs, success, gas_used } = detail; - - let signed_tx = TransactionSigned::decode(&mut &payload[..]) - .inspect_err(|err| { - log::error!(target: LOG_TARGET, "Failed to decode transaction at index {index}: {err:?}"); - }) - .ok()?; + let TransactionDetails { signed_transaction, index: _, logs, success, gas_used } = detail; - let transaction_hash = H256(keccak_256(&payload)); + let tx_bytes = signed_transaction.signed_payload(); + let transaction_hash = H256(keccak_256(&tx_bytes)); self.transactions.push_hash(transaction_hash); let gas_info = ReceiptGasInfo { - effective_gas_price: signed_tx.effective_gas_price(base_gas_price), + effective_gas_price: signed_transaction.effective_gas_price(base_gas_price), gas_used: gas_used.ref_time().into(), }; @@ -199,7 +191,7 @@ impl Block { Vec::with_capacity(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); - Some((signed_tx.signed_payload(), encoded_receipt, gas_info, receipt_bloom)) + Some((tx_bytes, encoded_receipt, gas_info, receipt_bloom)) } /// Compute the trie root using the `(rlp(index), encoded(item))` pairs. diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index a5464a619e3a0..ae322f4cedde4 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -23,7 +23,6 @@ use crate::{ AccountIdOf, AddressMapper, BalanceOf, Config, MomentOf, OnChargeTransactionBalanceOf, Pallet, LOG_TARGET, RUNTIME_PALLETS_ADDR, }; -use alloc::vec::Vec; use codec::{Decode, DecodeLimit, DecodeWithMemTracking, Encode}; use frame_support::{ dispatch::{DispatchInfo, GetDispatchInfo}, @@ -142,8 +141,11 @@ where fn check(self, lookup: &Lookup) -> Result { if !self.0.is_signed() { - if let Some(crate::Call::eth_transact { payload }) = self.0.function.is_sub_type() { - let checked = E::try_into_checked_extrinsic(payload.to_vec(), self.encoded_size())?; + if let Some(crate::Call::eth_transact { signed_transaction }) = + self.0.function.is_sub_type() + { + let checked = + E::try_into_checked_extrinsic(signed_transaction.clone(), self.encoded_size())?; return Ok(checked) }; } @@ -274,7 +276,7 @@ pub trait EthExtra { /// - `storage_deposit_limit`: The storage deposit limit for the extrinsic, /// - `encoded_len`: The encoded length of the extrinsic. fn try_into_checked_extrinsic( - payload: Vec, + tx: TransactionSigned, encoded_len: usize, ) -> Result< CheckedExtrinsic, CallOf, Self::Extension>, @@ -289,16 +291,12 @@ pub trait EthExtra { CallOf: From>, ::Hash: frame_support::traits::IsType, { - let tx = TransactionSigned::decode(&payload).map_err(|err| { - log::debug!(target: LOG_TARGET, "Failed to decode transaction: {err:?}"); - InvalidTransaction::Call - })?; - let signer_addr = tx.recover_eth_address().map_err(|err| { log::debug!(target: LOG_TARGET, "Failed to recover signer: {err:?}"); InvalidTransaction::BadProof })?; + let signed_transaction = tx.clone(); let signer = ::AddressMapper::to_fallback_account_id(&signer_addr); let GenericTransaction { nonce, chain_id, to, value, input, gas, gas_price, .. } = GenericTransaction::from_signed(tx, crate::GAS_PRICE.into(), None); @@ -346,7 +344,7 @@ pub trait EthExtra { gas_limit, storage_deposit_limit, data, - payload, + signed_transaction, } .into() } @@ -368,7 +366,7 @@ pub trait EthExtra { storage_deposit_limit, code: code.to_vec(), data: data.to_vec(), - payload, + signed_transaction, } .into() }; @@ -541,8 +539,10 @@ mod test { fn check( self, - ) -> Result<(RuntimeCall, SignedExtra, GenericTransaction, Vec), TransactionValidityError> - { + ) -> Result< + (RuntimeCall, SignedExtra, GenericTransaction, TransactionSigned), + TransactionValidityError, + > { self.mutate_estimate_and_check(Box::new(|_| ())) } @@ -550,8 +550,10 @@ mod test { fn mutate_estimate_and_check( mut self, f: Box ()>, - ) -> Result<(RuntimeCall, SignedExtra, GenericTransaction, Vec), TransactionValidityError> - { + ) -> Result< + (RuntimeCall, SignedExtra, GenericTransaction, TransactionSigned), + TransactionValidityError, + > { ExtBuilder::default().build().execute_with(|| self.estimate_gas()); f(&mut self.tx); ExtBuilder::default().build().execute_with(|| { @@ -564,11 +566,11 @@ mod test { 100_000_000_000_000, ); - let payload = account - .sign_transaction(tx.clone().try_into_unsigned().unwrap()) - .signed_payload(); - let call = - RuntimeCall::Contracts(crate::Call::eth_transact { payload: payload.clone() }); + let signed_transaction = + account.sign_transaction(tx.clone().try_into_unsigned().unwrap()); + let call = RuntimeCall::Contracts(crate::Call::eth_transact { + signed_transaction: signed_transaction.clone(), + }); let encoded_len = call.encoded_size(); let uxt: Ex = generic::UncheckedExtrinsic::new_bare(call).into(); @@ -587,7 +589,7 @@ mod test { 0, )?; - Ok((result.function, extra, tx, payload)) + Ok((result.function, extra, tx, signed_transaction)) }) } } @@ -595,7 +597,7 @@ mod test { #[test] fn check_eth_transact_call_works() { let builder = UncheckedExtrinsicBuilder::call_with(H160::from([1u8; 20])); - let (call, _, tx, payload) = builder.check().unwrap(); + let (call, _, tx, signed_transaction) = builder.check().unwrap(); let (gas_limit, storage_deposit_limit) = <::EthGasEncoder as GasEncoder<_>>::decode(tx.gas.unwrap()).unwrap(); @@ -607,7 +609,7 @@ mod test { data: tx.input.to_vec(), gas_limit, storage_deposit_limit, - payload, + signed_transaction, } .into() ); @@ -618,7 +620,7 @@ mod test { let (code, _) = compile_module("dummy").unwrap(); let data = vec![]; let builder = UncheckedExtrinsicBuilder::instantiate_with(code.clone(), data.clone()); - let (call, _, tx, payload) = builder.check().unwrap(); + let (call, _, tx, signed_transaction) = builder.check().unwrap(); let (gas_limit, storage_deposit_limit) = <::EthGasEncoder as GasEncoder<_>>::decode(tx.gas.unwrap()).unwrap(); @@ -630,7 +632,7 @@ mod test { data, gas_limit, storage_deposit_limit, - payload, + signed_transaction, } .into() ); diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 4235265034668..987420165b501 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -48,7 +48,7 @@ use crate::{ block_hash::{EventLog, ReceiptGasInfo, TransactionDetails}, runtime::GAS_PRICE, CallTracer, GasEncoder, GenericTransaction, PrestateTracer, Trace, Tracer, TracerType, - TYPE_EIP1559, + TransactionSigned, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Stack as ExecStack}, gas::GasMeter, @@ -807,7 +807,7 @@ pub mod pallet { /// /// # Parameters /// - /// * `payload`: The encoded [`crate::evm::TransactionSigned`]. + /// * `signed_transaction`: The [`crate::evm::TransactionSigned`]. /// * `gas_limit`: The gas limit enforced during contract execution. /// * `storage_deposit_limit`: The maximum balance that can be charged to the caller for /// storage usage. @@ -821,7 +821,10 @@ pub mod pallet { #[allow(unused_variables)] #[pallet::call_index(0)] #[pallet::weight(Weight::MAX)] - pub fn eth_transact(origin: OriginFor, payload: Vec) -> DispatchResultWithPostInfo { + pub fn eth_transact( + origin: OriginFor, + signed_transaction: TransactionSigned, + ) -> DispatchResultWithPostInfo { Err(frame_system::Error::CallFiltered::.into()) } @@ -993,7 +996,7 @@ pub mod pallet { #[pallet::compact] storage_deposit_limit: BalanceOf, code: Vec, data: Vec, - payload: Vec, + signed_transaction: TransactionSigned, ) -> DispatchResultWithPostInfo { ensure_signed(origin.clone())?; @@ -1017,7 +1020,11 @@ pub mod pallet { } } - Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); + Self::store_transaction( + signed_transaction, + output.result.is_ok(), + output.gas_consumed, + ); dispatch_result( output.result.map(|result| result.result), @@ -1042,7 +1049,7 @@ pub mod pallet { gas_limit: Weight, #[pallet::compact] storage_deposit_limit: BalanceOf, data: Vec, - payload: Vec, + signed_transaction: TransactionSigned, ) -> DispatchResultWithPostInfo { ensure_signed(origin.clone())?; @@ -1062,7 +1069,11 @@ pub mod pallet { } } - Self::store_transaction(payload, output.result.is_ok(), output.gas_consumed); + Self::store_transaction( + signed_transaction, + output.result.is_ok(), + output.gas_consumed, + ); dispatch_result( output.result, @@ -1484,9 +1495,9 @@ where storage_deposit_limit, data: input.clone(), // Since this is a dry run, we don't need to pass the signed transaction - // payload. Instead, use an empty vector. The signed transaction + // payload. Instead, use a dummy value. The signed transaction // will be provided by the user when the tx is submitted. - payload: Vec::new(), + signed_transaction: TransactionSigned::default(), } .into(); (result, dispatch_call) @@ -1556,21 +1567,21 @@ where code: code.to_vec(), data: data.to_vec(), // Since this is a dry run, we don't need to pass the signed transaction - // payload. Instead, use an empty vector. The signed transaction + // payload. Instead, use a dummy value. The signed transaction // will be provided by the user when the tx is submitted. - payload: Vec::new(), + signed_transaction: TransactionSigned::default(), } .into(); (result, dispatch_call) }, }; - let Ok(unsigned_tx) = tx.clone().try_into_unsigned() else { + if tx.try_into_unsigned().is_err() { return Err(EthTransactError::Message("Invalid transaction".into())); - }; + } let eth_transact_call = - crate::Call::::eth_transact { payload: unsigned_tx.dummy_signed_payload() }; + crate::Call::::eth_transact { signed_transaction: TransactionSigned::default() }; let fee = tx_fee(eth_transact_call.into(), dispatch_call); let raw_gas = Self::evm_fee_to_gas(fee); let eth_gas = @@ -1790,7 +1801,7 @@ impl Pallet { /// Store a transaction payload with extra details. /// /// The data is used during the `on_finalize` hook to reconstruct the ETH block. - fn store_transaction(payload: Vec, success: bool, gas_used: Weight) { + fn store_transaction(signed_transaction: TransactionSigned, success: bool, gas_used: Weight) { // Collect inflight events emitted by this EVM transaction. let logs = InflightEthTxEvents::::take(); @@ -1800,7 +1811,13 @@ impl Pallet { }); InflightEthTransactions::::mutate(|transactions| { - transactions.push(TransactionDetails { payload, index, logs, success, gas_used }); + transactions.push(TransactionDetails { + signed_transaction, + index, + logs, + success, + gas_used, + }); }); } diff --git a/substrate/frame/revive/src/test_utils/builder.rs b/substrate/frame/revive/src/test_utils/builder.rs index 32dbcbff92af0..e2b6d067368b6 100644 --- a/substrate/frame/revive/src/test_utils/builder.rs +++ b/substrate/frame/revive/src/test_utils/builder.rs @@ -17,8 +17,9 @@ use super::{deposit_limit, GAS_LIMIT}; use crate::{ - address::AddressMapper, AccountIdOf, BalanceOf, BumpNonce, Code, Config, ContractResult, - DepositLimit, ExecReturnValue, InstantiateReturnValue, OriginFor, Pallet, Weight, U256, + address::AddressMapper, evm::TransactionSigned, AccountIdOf, BalanceOf, BumpNonce, Code, + Config, ContractResult, DepositLimit, ExecReturnValue, InstantiateReturnValue, OriginFor, + Pallet, Weight, U256, }; use alloc::{vec, vec::Vec}; use frame_support::pallet_prelude::DispatchResultWithPostInfo; @@ -242,7 +243,7 @@ builder!( gas_limit: Weight, storage_deposit_limit: BalanceOf, data: Vec, - payload: Vec, + signed_transaction: TransactionSigned, ) -> DispatchResultWithPostInfo; /// Create a [`EthCallBuilder`] with default values. @@ -254,7 +255,7 @@ builder!( gas_limit: GAS_LIMIT, storage_deposit_limit: deposit_limit::(), data: vec![], - payload: vec![1], + signed_transaction: TransactionSigned::TransactionLegacySigned(Default::default()), } } ); @@ -267,7 +268,7 @@ builder!( storage_deposit_limit: BalanceOf, code: Vec, data: Vec, - payload: Vec, + signed_transaction: TransactionSigned, ) -> DispatchResultWithPostInfo; /// Create a [`EthInstantiateWithCodeBuilder`] with default values. @@ -279,7 +280,7 @@ builder!( storage_deposit_limit: deposit_limit::(), code, data: vec![], - payload: vec![2], + signed_transaction: TransactionSigned::Transaction4844Signed(Default::default()), } } ); diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index e3b2613612bb0..b3a3661e33789 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -22,7 +22,7 @@ use crate::{ test_utils::{builder::Contract, deposit_limit, ALICE}, tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeOrigin, Test}, BalanceWithDust, Code, Config, EthBlock, EthereumBlock, InflightEthTransactions, - InflightEthTxEvents, Pallet, ReceiptGasInfo, ReceiptInfoData, Weight, H256, + InflightEthTxEvents, Pallet, ReceiptGasInfo, ReceiptInfoData, TransactionSigned, Weight, H256, }; use frame_support::traits::{fungible::Mutate, Hooks}; @@ -38,7 +38,7 @@ impl PartialEq for EventLog { impl PartialEq for TransactionDetails { // Ignore the weight since its subject to change. fn eq(&self, other: &Self) -> bool { - self.payload == other.payload && + self.signed_transaction == other.signed_transaction && self.index == other.index && self.logs == other.logs && self.success == other.success @@ -58,7 +58,7 @@ fn on_initialize_clears_storage() { assert_eq!(InflightEthTxEvents::::get(), vec![event.clone()]); let transactions = vec![TransactionDetails { - payload: vec![1, 2, 3], + signed_transaction: TransactionSigned::TransactionLegacySigned(Default::default()), index: 1, logs: vec![event.clone()], success: true, @@ -106,14 +106,14 @@ fn transactions_are_captured() { let transactions = InflightEthTransactions::::get(); let expected = vec![ TransactionDetails { - payload: vec![1], + signed_transaction: TransactionSigned::TransactionLegacySigned(Default::default()), index: 0, logs: vec![], success: true, gas_used: Weight::zero(), }, TransactionDetails { - payload: vec![2], + signed_transaction: TransactionSigned::Transaction4844Signed(Default::default()), index: 0, logs: vec![], success: true, @@ -156,7 +156,7 @@ fn events_are_captured() { let transactions = InflightEthTransactions::::get(); let expected = vec![TransactionDetails { - payload: vec![2], + signed_transaction: TransactionSigned::Transaction4844Signed(Default::default()), index: 0, logs: vec![EventLog { data: vec![1, 2, 3, 4], From ce0eec2914d6b1d5b03b10fc34bdfd9fa54302fb Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 14:20:59 +0000 Subject: [PATCH 121/273] frame/bench: Fix benchmarks Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/benchmarking.rs | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index c23aef1b76974..9ae27d66224fb 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -28,7 +28,7 @@ use crate::{ }, storage::WriteOutcome, vm::pvm, - Pallet as Contracts, *, + Pallet as Contracts, TransactionSigned, *, }; use alloc::{vec, vec::Vec}; use alloy_core::sol_types::SolInterface; @@ -255,7 +255,15 @@ mod benchmarks { assert!(AccountInfoOf::::get(&deployer).is_none()); #[extrinsic_call] - _(origin, evm_value, Weight::MAX, storage_deposit, code, input, vec![]); + _( + origin, + evm_value, + Weight::MAX, + storage_deposit, + code, + input, + TransactionSigned::default(), + ); let deposit = T::Currency::balance_on_hold(&HoldReason::StorageDepositReserve.into(), &account_id); @@ -383,7 +391,15 @@ mod benchmarks { let before = Pallet::::evm_balance(&instance.address); let storage_deposit = default_deposit_limit::(); #[extrinsic_call] - _(origin, instance.address, evm_value, Weight::MAX, storage_deposit, data, vec![]); + _( + origin, + instance.address, + evm_value, + Weight::MAX, + storage_deposit, + data, + TransactionSigned::default(), + ); let deposit = T::Currency::balance_on_hold( &HoldReason::StorageDepositReserve.into(), &instance.account_id, From abfe65f61ca3e581aafd4f95bbc73a06594aeb86 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 14:31:04 +0000 Subject: [PATCH 122/273] revive: Simplify the block_hash computations Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rpc_types_gen.rs | 9 --- substrate/frame/revive/src/evm/block_hash.rs | 72 +++++++++++-------- 2 files changed, 44 insertions(+), 37 deletions(-) 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 4f155589d2b85..7ee7093add162 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -499,15 +499,6 @@ impl Default for HashesOrTransactionInfos { HashesOrTransactionInfos::Hashes(Default::default()) } } -impl HashesOrTransactionInfos { - pub fn push_hash(&mut self, hash: H256) { - match self { - HashesOrTransactionInfos::Hashes(hashes) => hashes.push(hash), - _ => {}, - } - } -} - /// log #[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] pub struct Log { diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 8c23164514e45..b179237627d0c 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -17,7 +17,7 @@ //!Types, and traits to integrate pallet-revive with EVM. #![warn(missing_docs)] -use crate::evm::{Block, TransactionSigned}; +use crate::evm::{Block, HashesOrTransactionInfos, TransactionSigned}; use alloc::vec::Vec; use alloy_consensus::RlpEncodableReceipt; use alloy_core::primitives::bytes::BufMut; @@ -73,6 +73,15 @@ pub struct ReceiptGasInfo { pub gas_used: U256, } +/// A processed transaction by `Block::process_transaction_details`. +struct TransactionProcessed { + encoded_tx: Vec, + tx_hash: H256, + gas_info: ReceiptGasInfo, + encoded_receipt: Vec, + receipt_bloom: Bloom, +} + impl Block { /// Build the Ethereum block. /// @@ -81,7 +90,6 @@ impl Block { /// This is an expensive operation. /// /// (I) For each transaction captured (with the unbounded number of events): - /// - transaction is RLP decoded into a `TransactionSigned` /// - transaction hash is computed using `keccak256` /// - transaction is 2718 RLP encoded /// - the receipt is constructed and contains all the logs emitted by the transaction @@ -92,7 +100,7 @@ impl Block { /// /// (III) Block hash is computed from the provided information. pub fn build( - details: impl IntoIterator, + transaction_details: impl IntoIterator, block_number: U256, parent_hash: H256, timestamp: U256, @@ -111,22 +119,26 @@ impl Block { ..Default::default() }; - let transaction_details: Vec<_> = details - .into_iter() - .filter_map(|detail| block.process_transaction_details(detail, base_gas_price)) - .collect(); - - let mut signed_tx = Vec::with_capacity(transaction_details.len()); - let mut receipts = Vec::with_capacity(transaction_details.len()); - let mut gas_infos = Vec::with_capacity(transaction_details.len()); - + // Needed for computing the transaction root. + let mut signed_tx = Vec::new(); + // Needed for computing the receipt root. + let mut receipts = Vec::new(); + // Gas info will be stored in the pallet storage under `ReceiptInfoData` + // and is needed for reconstructing the Receipts. + let mut gas_infos = Vec::new(); + // Transaction hashes are placed in the ETH block. + let mut tx_hashes = Vec::new(); + // Bloom filter for the logs emitted by the transactions. let mut logs_bloom = Bloom::default(); - for (signed, receipt, gas_info, bloom) in transaction_details { - signed_tx.push(signed); - receipts.push(receipt); - gas_infos.push(gas_info); - logs_bloom.accrue_bloom(&bloom); + for detail in transaction_details { + let processed = block.process_transaction_details(detail, base_gas_price); + + signed_tx.push(processed.encoded_tx); + tx_hashes.push(processed.tx_hash); + gas_infos.push(processed.gas_info); + receipts.push(processed.encoded_receipt); + logs_bloom.accrue_bloom(&processed.receipt_bloom); } // Compute expensive trie roots. @@ -137,6 +149,7 @@ impl Block { block.transactions_root = transactions_root.0.into(); block.receipts_root = receipts_root.0.into(); block.logs_bloom = (*logs_bloom.data()).into(); + block.transactions = HashesOrTransactionInfos::Hashes(tx_hashes); // Compute the ETH header hash. let block_hash = block.header_hash(); @@ -146,22 +159,16 @@ impl Block { /// Returns a tuple of the RLP encoded transaction and receipt. /// - /// Internally collects the total gas used, the log blooms and the transaction hashes. + /// Internally collects the total gas used. fn process_transaction_details( &mut self, detail: TransactionDetails, base_gas_price: U256, - ) -> Option<(Vec, Vec, ReceiptGasInfo, Bloom)> { + ) -> TransactionProcessed { let TransactionDetails { signed_transaction, index: _, logs, success, gas_used } = detail; - let tx_bytes = signed_transaction.signed_payload(); - let transaction_hash = H256(keccak_256(&tx_bytes)); - self.transactions.push_hash(transaction_hash); - - let gas_info = ReceiptGasInfo { - effective_gas_price: signed_transaction.effective_gas_price(base_gas_price), - gas_used: gas_used.ref_time().into(), - }; + let encoded_tx = signed_transaction.signed_payload(); + let tx_hash = H256(keccak_256(&encoded_tx)); let logs = logs .into_iter() @@ -191,7 +198,16 @@ impl Block { Vec::with_capacity(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); - Some((tx_bytes, encoded_receipt, gas_info, receipt_bloom)) + TransactionProcessed { + encoded_tx, + tx_hash, + gas_info: ReceiptGasInfo { + effective_gas_price: signed_transaction.effective_gas_price(base_gas_price), + gas_used: gas_used.ref_time().into(), + }, + encoded_receipt, + receipt_bloom, + } } /// Compute the trie root using the `(rlp(index), encoded(item))` pairs. From 83bf5bdf2b7028422051ddbd4fc3cff8a72413a0 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 14:38:39 +0000 Subject: [PATCH 123/273] revive: No longer capture the tx index into storage Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 4 +--- substrate/frame/revive/src/lib.rs | 6 ------ substrate/frame/revive/src/tests/block_hash.rs | 5 ----- 3 files changed, 1 insertion(+), 14 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index b179237627d0c..834f0b62eda88 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -46,8 +46,6 @@ pub struct EventLog { pub struct TransactionDetails { /// The signed transaction. pub signed_transaction: TransactionSigned, - /// The index of the transaction within the block. - pub index: u32, /// The logs emitted by the transaction. pub logs: Vec, /// Whether the transaction was successful. @@ -165,7 +163,7 @@ impl Block { detail: TransactionDetails, base_gas_price: U256, ) -> TransactionProcessed { - let TransactionDetails { signed_transaction, index: _, logs, success, gas_used } = detail; + let TransactionDetails { signed_transaction, logs, success, gas_used } = detail; let encoded_tx = signed_transaction.signed_payload(); let tx_hash = H256(keccak_256(&encoded_tx)); diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 987420165b501..10aff20f6b7a0 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1805,15 +1805,9 @@ impl Pallet { // Collect inflight events emitted by this EVM transaction. let logs = InflightEthTxEvents::::take(); - let index = frame_system::Pallet::::extrinsic_index().unwrap_or_else(|| { - log::warn!(target: LOG_TARGET, "Extrinsic index is not set, using default value 0"); - 0 - }); - InflightEthTransactions::::mutate(|transactions| { transactions.push(TransactionDetails { signed_transaction, - index, logs, success, gas_used, diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index b3a3661e33789..7664f455cceb0 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -39,7 +39,6 @@ impl PartialEq for TransactionDetails { // Ignore the weight since its subject to change. fn eq(&self, other: &Self) -> bool { self.signed_transaction == other.signed_transaction && - self.index == other.index && self.logs == other.logs && self.success == other.success } @@ -59,7 +58,6 @@ fn on_initialize_clears_storage() { let transactions = vec![TransactionDetails { signed_transaction: TransactionSigned::TransactionLegacySigned(Default::default()), - index: 1, logs: vec![event.clone()], success: true, gas_used: Weight::zero(), @@ -107,14 +105,12 @@ fn transactions_are_captured() { let expected = vec![ TransactionDetails { signed_transaction: TransactionSigned::TransactionLegacySigned(Default::default()), - index: 0, logs: vec![], success: true, gas_used: Weight::zero(), }, TransactionDetails { signed_transaction: TransactionSigned::Transaction4844Signed(Default::default()), - index: 0, logs: vec![], success: true, gas_used: Weight::zero(), @@ -157,7 +153,6 @@ fn events_are_captured() { let transactions = InflightEthTransactions::::get(); let expected = vec![TransactionDetails { signed_transaction: TransactionSigned::Transaction4844Signed(Default::default()), - index: 0, logs: vec![EventLog { data: vec![1, 2, 3, 4], topics: vec![H256::repeat_byte(42)], From 4fd292f95f05779023e71010aa5eaab50597156e Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 14:39:13 +0000 Subject: [PATCH 124/273] revive/tests: Fix cargo clippy Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/tests/block_hash.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 7664f455cceb0..975a1143fa842 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -140,7 +140,7 @@ fn events_are_captured() { Contracts::on_initialize(1); // Bare call must not be captured. - builder::bare_instantiate(Code::Existing(code_hash.clone())).build_and_unwrap_contract(); + builder::bare_instantiate(Code::Existing(code_hash)).build_and_unwrap_contract(); let balance = Pallet::::convert_native_to_evm(BalanceWithDust::new_unchecked::(100, 10)); From 42d300901583cb23a292962d0d63eef8d5a32c5b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 21 Aug 2025 14:45:26 +0000 Subject: [PATCH 125/273] revive: Update documentation for eth calls Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 10aff20f6b7a0..4eb5c319d6694 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -807,10 +807,8 @@ pub mod pallet { /// /// # Parameters /// - /// * `signed_transaction`: The [`crate::evm::TransactionSigned`]. - /// * `gas_limit`: The gas limit enforced during contract execution. - /// * `storage_deposit_limit`: The maximum balance that can be charged to the caller for - /// storage usage. + /// * `signed_transaction`: The signed Ethereum transaction, represented as + /// [crate::evm::TransactionSigned], provided by the Ethereum wallet. /// /// # Note /// @@ -980,6 +978,20 @@ pub mod pallet { /// Same as [`Self::instantiate_with_code`], but intended to be dispatched **only** /// by an EVM transaction through the EVM compatibility layer. /// + /// # Parameters + /// + /// * `value`: The balance to transfer from the `origin` to the newly created contract. + /// * `gas_limit`: The gas limit enforced when executing the constructor. + /// * `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved + /// from the caller to pay for the storage consumed. + /// * `code`: The contract code to deploy in raw bytes. + /// * `data`: The input data to pass to the contract constructor. + /// * `salt`: Used for the address derivation. If `Some` is supplied then `CREATE2` + /// semantics are used. If `None` then `CRATE1` is used. + /// * `signed_transaction`: The signed Ethereum transaction, represented as + // [crate::evm::TransactionSigned], provided by the Ethereum wallet. + /// + /// /// Calling this dispatchable ensures that the origin's nonce is bumped only once, /// via the `CheckNonce` transaction extension. In contrast, [`Self::instantiate_with_code`] /// also bumps the nonce after contract instantiation, since it may be invoked multiple @@ -1806,12 +1818,7 @@ impl Pallet { let logs = InflightEthTxEvents::::take(); InflightEthTransactions::::mutate(|transactions| { - transactions.push(TransactionDetails { - signed_transaction, - logs, - success, - gas_used, - }); + transactions.push(TransactionDetails { signed_transaction, logs, success, gas_used }); }); } From 1f4903f3288325fb22a50615ab899ad720608753 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 22 Aug 2025 11:40:05 +0000 Subject: [PATCH 126/273] revive: Fetch the type of the transaction Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rlp_codec.rs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/substrate/frame/revive/src/evm/api/rlp_codec.rs b/substrate/frame/revive/src/evm/api/rlp_codec.rs index 4094c963ac204..a153a653f1eed 100644 --- a/substrate/frame/revive/src/evm/api/rlp_codec.rs +++ b/substrate/frame/revive/src/evm/api/rlp_codec.rs @@ -87,6 +87,31 @@ impl TransactionSigned { s.out().to_vec() } + /// Encode the Ethereum transaction type into bytes. + /// + /// This is needed to encode the receipts. + pub fn signed_type(&self) -> Vec { + let mut s = rlp::RlpStream::new(); + + match &self { + TransactionSigned::Transaction4844Signed(tx) => { + s.append(&tx.transaction_4844_unsigned.r#type.value()); + }, + TransactionSigned::Transaction1559Signed(tx) => { + s.append(&tx.transaction_1559_unsigned.r#type.value()); + }, + TransactionSigned::Transaction2930Signed(tx) => { + s.append(&tx.transaction_2930_unsigned.r#type.value()); + }, + TransactionSigned::Transaction7702Signed(tx) => { + s.append(&tx.transaction_7702_unsigned.r#type.value()); + }, + TransactionSigned::TransactionLegacySigned(_) => {}, + }; + + s.out().to_vec() + } + /// Decode the Ethereum transaction from bytes. pub fn decode(data: &[u8]) -> Result { if data.len() < 1 { From 17c4b00d28cbe9be63821b63b2349edc74f35c37 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 22 Aug 2025 11:46:17 +0000 Subject: [PATCH 127/273] revive: Ensure receipts are encoded with the tx type rlp Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 834f0b62eda88..4289b40f5d13d 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -192,8 +192,10 @@ impl Block { let receipt_bloom = receipt.bloom_slow(); - let mut encoded_receipt = - Vec::with_capacity(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); + // Receipt encoding must be prefixed with the rlp(transaction type). + let mut encoded_receipt = signed_transaction.signed_type(); + encoded_receipt + .reserve(encoded_receipt.len() + receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); TransactionProcessed { From 1f40e2aab74f3065ae21a93c8372d45da02a2529 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 22 Aug 2025 11:40:34 +0000 Subject: [PATCH 128/273] revive/exec: Fall back to system block hashes Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/exec.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index 42f218066c6c1..8d7a103240856 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -1599,7 +1599,14 @@ where if block_number < self.block_number.saturating_sub(256u32.into()) { return None; } - crate::Pallet::::eth_block_hash_from_number(block_number.into()) + + // Fallback to the system block hash for older blocks + // 256 entries should suffice for all use cases, this mostly ensures + // our benchmarks are passing. + match crate::Pallet::::eth_block_hash_from_number(block_number.into()) { + Some(hash) => Some(hash), + None => Some(System::::block_hash(&block_number).into()), + } } } From 3b04c38f7780dd484624f792ba45ae352dc1afab Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 22 Aug 2025 11:48:12 +0000 Subject: [PATCH 129/273] revive: Use all fields of the header for hashing Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 4289b40f5d13d..7179c2206304c 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -143,6 +143,8 @@ impl Block { let transactions_root = Self::compute_trie_root(&signed_tx); let receipts_root = Self::compute_trie_root(&receipts); + // We use the transaction root as state root since the state + // root is not yet computed by the substrate block. block.state_root = transactions_root.0.into(); block.transactions_root = transactions_root.0.into(); block.receipts_root = receipts_root.0.into(); @@ -225,7 +227,7 @@ impl Block { let gas_limit = self.gas_limit.try_into().unwrap_or(u64::MAX); let alloy_header = alloy_consensus::Header { - state_root: self.transactions_root.0.into(), + state_root: self.state_root.0.into(), transactions_root: self.transactions_root.0.into(), receipts_root: self.receipts_root.0.into(), @@ -237,7 +239,17 @@ impl Block { gas_used: self.gas_used.as_u64(), timestamp: self.timestamp.as_u64(), - ..alloy_consensus::Header::default() + ommers_hash: self.sha_3_uncles.0.into(), + extra_data: self.extra_data.clone().0.into(), + mix_hash: self.mix_hash.0.into(), + nonce: self.nonce.0.into(), + base_fee_per_gas: self.base_fee_per_gas.map(|gas| gas.as_u64()), + withdrawals_root: self.withdrawals_root.map(|root| root.0.into()), + blob_gas_used: self.blob_gas_used.map(|gas| gas.as_u64()), + excess_blob_gas: self.excess_blob_gas.map(|gas| gas.as_u64()), + parent_beacon_block_root: self.parent_beacon_block_root.map(|root| root.0.into()), + + ..Default::default(), }; alloy_header.hash_slow().0.into() From 804f8b2b277ee78855bb27722294801bb82fe4d6 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 22 Aug 2025 11:49:31 +0000 Subject: [PATCH 130/273] revive: Do not use coma after default Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 7179c2206304c..6b9263cb9172b 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -249,7 +249,7 @@ impl Block { excess_blob_gas: self.excess_blob_gas.map(|gas| gas.as_u64()), parent_beacon_block_root: self.parent_beacon_block_root.map(|root| root.0.into()), - ..Default::default(), + ..Default::default() }; alloy_header.hash_slow().0.into() From 3172e38543b41b7849c45d044fe3af69bcd387b4 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 22 Aug 2025 14:23:42 +0000 Subject: [PATCH 131/273] revive: Remove Transaction7702Signed Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/api/rlp_codec.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/substrate/frame/revive/src/evm/api/rlp_codec.rs b/substrate/frame/revive/src/evm/api/rlp_codec.rs index a153a653f1eed..ef661aaa3608e 100644 --- a/substrate/frame/revive/src/evm/api/rlp_codec.rs +++ b/substrate/frame/revive/src/evm/api/rlp_codec.rs @@ -103,9 +103,6 @@ impl TransactionSigned { TransactionSigned::Transaction2930Signed(tx) => { s.append(&tx.transaction_2930_unsigned.r#type.value()); }, - TransactionSigned::Transaction7702Signed(tx) => { - s.append(&tx.transaction_7702_unsigned.r#type.value()); - }, TransactionSigned::TransactionLegacySigned(_) => {}, }; From 93ef60980e496ddc115285de244ae0fc8086b547 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 22 Aug 2025 14:42:50 +0000 Subject: [PATCH 132/273] cargo: Remove deps on primitives Signed-off-by: Alexandru Vasile --- Cargo.lock | 1 - Cargo.toml | 1 - substrate/frame/revive/Cargo.toml | 1 - substrate/frame/revive/src/evm/block_hash.rs | 14 +++++--------- 4 files changed, 5 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 648cdd038ba61..93e8155a69c13 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13124,7 +13124,6 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-core", - "alloy-primitives", "array-bytes 6.2.2", "assert_matches", "derive_more 0.99.17", diff --git a/Cargo.toml b/Cargo.toml index a0e5b39949703..adc270bf539d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -632,7 +632,6 @@ aes-gcm = { version = "0.10" } ahash = { version = "0.8.2" } alloy-consensus = { version = "1.0.24", default-features = false } alloy-core = { version = "1.1.0", default-features = false } -alloy-primitives = { version = "1.2.0", default-features = false } always-assert = { version = "0.1" } anyhow = { version = "1.0.81", default-features = false } approx = { version = "0.5.1" } diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index afde2d9ad93bd..4ff6b7e1d46bb 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -19,7 +19,6 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] alloy-consensus = { workspace = true, default-features = false } alloy-core = { workspace = true, features = ["sol-types"] } -alloy-primitives = { workspace = true, default-features = false } codec = { features = ["derive", "max-encoded-len"], workspace = true } derive_more = { workspace = true, features = ["from", "try_into"] } environmental = { workspace = true } diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 6b9263cb9172b..81acd96532ff1 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -20,8 +20,7 @@ use crate::evm::{Block, HashesOrTransactionInfos, TransactionSigned}; use alloc::vec::Vec; use alloy_consensus::RlpEncodableReceipt; -use alloy_core::primitives::bytes::BufMut; -use alloy_primitives::Bloom; +use alloy_core::primitives::{bytes::BufMut, Bloom, FixedBytes, Log, B256}; use codec::{Decode, Encode}; use frame_support::weights::Weight; use scale_info::TypeInfo; @@ -173,13 +172,10 @@ impl Block { let logs = logs .into_iter() .map(|log| { - alloy_primitives::Log::new_unchecked( + Log::new_unchecked( log.contract.0.into(), - log.topics - .into_iter() - .map(|h| alloy_primitives::FixedBytes::from(h.0)) - .collect::>(), - alloy_primitives::Bytes::from(log.data), + log.topics.into_iter().map(|h| FixedBytes::from(h.0)).collect::>(), + log.data.into(), ) }) .collect(); @@ -213,7 +209,7 @@ impl Block { } /// Compute the trie root using the `(rlp(index), encoded(item))` pairs. - pub fn compute_trie_root(items: &[Vec]) -> alloy_primitives::B256 { + pub fn compute_trie_root(items: &[Vec]) -> B256 { alloy_consensus::proofs::ordered_trie_root_with_encoder(items, |item, buf| { buf.put_slice(item) }) From d75af7855645239b3b9336ddc33ac2fd2a03e8e2 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 22 Aug 2025 14:52:26 +0000 Subject: [PATCH 133/273] revive: Optimize storage reads with append instead of mutate Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/exec.rs | 6 ++++-- substrate/frame/revive/src/lib.rs | 7 +++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index 8d7a103240856..dc2252de8856d 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -2031,8 +2031,10 @@ where }); if eth_block_storage::is_executing_ethereum_call() { - InflightEthTxEvents::::mutate(|events| { - events.push(EventLog { contract, data: data.clone(), topics: topics.clone() }); + InflightEthTxEvents::::append(EventLog { + contract, + data: data.clone(), + topics: topics.clone(), }); } diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 4eb5c319d6694..3c5302355f18e 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1817,8 +1817,11 @@ impl Pallet { // Collect inflight events emitted by this EVM transaction. let logs = InflightEthTxEvents::::take(); - InflightEthTransactions::::mutate(|transactions| { - transactions.push(TransactionDetails { signed_transaction, logs, success, gas_used }); + InflightEthTransactions::::append(TransactionDetails { + signed_transaction, + logs, + success, + gas_used, }); } From 1443a1553c562ffcea61cb32f780bc978a1e0006 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 22 Aug 2025 14:55:46 +0000 Subject: [PATCH 134/273] revive: Remove stale comment Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 3c5302355f18e..a2425f2d09fed 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -627,7 +627,6 @@ pub mod pallet { // We need this to place the substrate block // hash into the logs of the receipts. T::Hash: frame_support::traits::IsType, - // We need these to access the ETH block gas limit via `Self::evm_block_gas_limit()`. ::RuntimeCall: Dispatchable, BalanceOf: Into + TryFrom, From 99d9104db127a9d670114bc291b8cebdda29f35b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 09:44:38 +0000 Subject: [PATCH 135/273] revive: Adjust merge conflicts Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rlp_codec.rs | 2 +- .../frame/revive/src/evm/api/rpc_types_gen.rs | 39 +++++++++++++++++-- substrate/frame/revive/src/evm/block_hash.rs | 8 ++-- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/substrate/frame/revive/src/evm/api/rlp_codec.rs b/substrate/frame/revive/src/evm/api/rlp_codec.rs index fdbf47bcb1310..4fe55b68e5339 100644 --- a/substrate/frame/revive/src/evm/api/rlp_codec.rs +++ b/substrate/frame/revive/src/evm/api/rlp_codec.rs @@ -112,7 +112,7 @@ impl TransactionSigned { TransactionSigned::Transaction2930Signed(tx) => { s.append(&tx.transaction_2930_unsigned.r#type.value()); }, - Transaction7702Signed(tx) => { + TransactionSigned::Transaction7702Signed(tx) => { s.append(&tx.transaction_7702_unsigned.r#type.value()); }, TransactionSigned::TransactionLegacySigned(_) => {}, 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 9166d8dbe241a..bfaa53b665911 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -702,7 +702,6 @@ pub struct TransactionLegacyUnsigned { Serialize, Deserialize, From, - TryInto, Eq, PartialEq, TypeInfo, @@ -749,7 +748,17 @@ pub struct Transaction7702Unsigned { /// Authorization list entry for EIP-7702 #[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Default, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] #[serde(rename_all = "camelCase")] pub struct AuthorizationListEntry { @@ -767,7 +776,20 @@ pub struct AuthorizationListEntry { pub s: U256, } -#[derive(Debug, Clone, Serialize, Deserialize, From, TryInto, Eq, PartialEq)] +#[derive( + Debug, + Clone, + Serialize, + Deserialize, + From, + TryInto, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, +)] #[serde(untagged)] pub enum TransactionSigned { Transaction7702Signed(Transaction7702Signed), @@ -856,7 +878,16 @@ impl Default for FilterTopic { /// Signed 7702 Transaction #[derive( - Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq, TypeInfo, Encode, Decode, + Debug, + Clone, + Serialize, + Deserialize, + Eq, + PartialEq, + TypeInfo, + Encode, + Decode, + DecodeWithMemTracking, )] #[serde(rename_all = "camelCase")] pub struct Transaction7702Signed { diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 81acd96532ff1..9eaef24af39bc 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -239,10 +239,10 @@ impl Block { extra_data: self.extra_data.clone().0.into(), mix_hash: self.mix_hash.0.into(), nonce: self.nonce.0.into(), - base_fee_per_gas: self.base_fee_per_gas.map(|gas| gas.as_u64()), - withdrawals_root: self.withdrawals_root.map(|root| root.0.into()), - blob_gas_used: self.blob_gas_used.map(|gas| gas.as_u64()), - excess_blob_gas: self.excess_blob_gas.map(|gas| gas.as_u64()), + base_fee_per_gas: Some(self.base_fee_per_gas.as_u64()), + withdrawals_root: Some(self.withdrawals_root.0.into()), + blob_gas_used: Some(self.blob_gas_used.as_u64()), + excess_blob_gas: Some(self.excess_blob_gas.as_u64()), parent_beacon_block_root: self.parent_beacon_block_root.map(|root| root.0.into()), ..Default::default() From 11b547d9093a0c04735fb38c5b1e0d6525ea0f6a Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 09:47:08 +0000 Subject: [PATCH 136/273] revive: Remove lenght to fee config type Signed-off-by: Alexandru Vasile --- .../runtimes/assets/asset-hub-westend/src/lib.rs | 1 - cumulus/parachains/runtimes/testing/penpal/src/lib.rs | 1 - polkadot/xcm/pallet-xcm/src/mock.rs | 1 - substrate/bin/node/runtime/src/lib.rs | 1 - substrate/frame/assets/src/mock.rs | 1 - substrate/frame/revive/dev-node/runtime/src/lib.rs | 1 - substrate/frame/revive/src/lib.rs | 11 ++--------- 7 files changed, 2 insertions(+), 15 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 d5ee8115429e4..f0ef5432aeda7 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -1172,7 +1172,6 @@ impl pallet_revive::Config for Runtime { type DepositPerItem = DepositPerItem; type DepositPerByte = DepositPerByte; type WeightPrice = pallet_transaction_payment::Pallet; - type LengthToFee = ::LengthToFee; type WeightInfo = pallet_revive::weights::SubstrateWeight; type Precompiles = ( ERC20, TrustBackedAssetsInstance>, diff --git a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs index 1785cd06a8e91..ff2f538bb3619 100644 --- a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs @@ -847,7 +847,6 @@ impl pallet_revive::Config for Runtime { type DepositPerItem = DepositPerItem; type DepositPerByte = DepositPerByte; type WeightPrice = pallet_transaction_payment::Pallet; - type LengthToFee = ::LengthToFee; type WeightInfo = pallet_revive::weights::SubstrateWeight; type Precompiles = (); type AddressMapper = pallet_revive::AccountId32Mapper; diff --git a/polkadot/xcm/pallet-xcm/src/mock.rs b/polkadot/xcm/pallet-xcm/src/mock.rs index d10fff65a8cfc..c611555380536 100644 --- a/polkadot/xcm/pallet-xcm/src/mock.rs +++ b/polkadot/xcm/pallet-xcm/src/mock.rs @@ -342,7 +342,6 @@ impl pallet_revive::Config for Test { type Time = Timestamp; type UploadOrigin = frame_system::EnsureSigned; type InstantiateOrigin = frame_system::EnsureSigned; - type LengthToFee = FixedFee<100, ::Balance>; } // This child parachain is a system parachain trusted to teleport native token. diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index a983aee0574e2..4ea04b736c02f 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1475,7 +1475,6 @@ impl pallet_revive::Config for Runtime { type DepositPerItem = DepositPerItem; type DepositPerByte = DepositPerByte; type WeightPrice = pallet_transaction_payment::Pallet; - type LengthToFee = ::LengthToFee; type WeightInfo = pallet_revive::weights::SubstrateWeight; type Precompiles = (ERC20, Instance1>, ERC20, Instance2>); diff --git a/substrate/frame/assets/src/mock.rs b/substrate/frame/assets/src/mock.rs index 9fe6da6ece14e..a3b5d3d647208 100644 --- a/substrate/frame/assets/src/mock.rs +++ b/substrate/frame/assets/src/mock.rs @@ -62,7 +62,6 @@ impl pallet_revive::Config for Test { type AddressMapper = pallet_revive::TestAccountMapper; type Currency = Balances; type Precompiles = (ERC20>,); - type LengthToFee = FixedFee<100, ::Balance>; } pub struct AssetsCallbackHandle; diff --git a/substrate/frame/revive/dev-node/runtime/src/lib.rs b/substrate/frame/revive/dev-node/runtime/src/lib.rs index 9cecfd4cee5d1..fcfc12afc66e7 100644 --- a/substrate/frame/revive/dev-node/runtime/src/lib.rs +++ b/substrate/frame/revive/dev-node/runtime/src/lib.rs @@ -329,7 +329,6 @@ impl pallet_revive::Config for Runtime { type UploadOrigin = EnsureSigned; type InstantiateOrigin = EnsureSigned; type Time = Timestamp; - type LengthToFee = ::LengthToFee; } pallet_revive::impl_runtime_apis_plus_revive!( diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index a2425f2d09fed..6aa38e3ca0da7 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -72,7 +72,7 @@ use frame_support::{ fungible::{Inspect, Mutate, MutateHold}, ConstU32, ConstU64, EnsureOrigin, Get, IsType, OriginTrait, Time, }, - weights::{WeightMeter, WeightToFee}, + weights::WeightMeter, BoundedVec, RuntimeDebugNoBound, }; use frame_system::{ @@ -197,10 +197,6 @@ pub mod pallet { /// construct a default cost schedule. type WeightInfo: WeightInfo; - /// Convert a length value into a deductible fee based on the currency type. - #[pallet::no_default] - type LengthToFee: WeightToFee>; - /// Type that allows the runtime authors to add new host functions for a contract to call. /// /// Pass in a tuple of types that implement [`precompiles::Precompile`]. @@ -1675,10 +1671,7 @@ where .max_total .unwrap_or_else(|| T::BlockWeights::get().max_block); - // 5 MiB. - let length_fee = T::LengthToFee::weight_to_fee(&Weight::from_parts(5 * 1024 * 1024, 0)); - - Self::evm_gas_from_weight(max_block_weight).saturating_add(Self::evm_fee_to_gas(length_fee)) + Self::evm_gas_from_weight(max_block_weight) } /// Get the gas price. From 5ffb427be686e00866dd8c7f5fc444526aa3e93d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 09:51:07 +0000 Subject: [PATCH 137/273] revive: Make storage types public to crate only Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 6aa38e3ca0da7..f71ccdcd13160 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -587,7 +587,7 @@ pub mod pallet { /// /// The maximum number of elements stored is capped by the block hash count `BLOCK_HASH_COUNT`. #[pallet::storage] - pub type BlockHash = StorageMap<_, Twox64Concat, U256, H256, ValueQuery>; + pub(crate) type BlockHash = StorageMap<_, Twox64Concat, U256, H256, ValueQuery>; /// The details needed to reconstruct the receipt info offchain. /// @@ -597,7 +597,7 @@ pub mod pallet { /// It could otherwise inflate the PoV size of a block. #[pallet::storage] #[pallet::unbounded] - pub type ReceiptInfoData = StorageValue<_, Vec, ValueQuery>; + pub(crate) type ReceiptInfoData = StorageValue<_, Vec, ValueQuery>; #[pallet::genesis_config] #[derive(frame_support::DefaultNoBound)] From 1fbd45e74699062a20a044d061bc3ae92ced51fd Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 09:54:00 +0000 Subject: [PATCH 138/273] revive: Remove effective gas price from storage Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 14 +------------- substrate/frame/revive/src/tests/block_hash.rs | 3 +-- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 9eaef24af39bc..f0644bbd6d6aa 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -57,15 +57,6 @@ pub struct TransactionDetails { /// layer without losing accuracy. #[derive(Encode, Decode, TypeInfo, Clone, Debug, PartialEq, Eq)] pub struct ReceiptGasInfo { - /// The actual value per gas deducted from the sender's account. Before EIP-1559, this - /// is equal to the transaction's gas price. After, it is equal to baseFeePerGas + - /// min(maxFeePerGas - baseFeePerGas, maxPriorityFeePerGas). - /// - /// Note: Since there's a runtime API to extract the base gas fee (`fn gas_price()`) - /// and we have access to the `TransactionSigned` struct, we can compute the effective gas - /// price in the RPC layer. - pub effective_gas_price: U256, - /// The amount of gas used for this specific transaction alone. pub gas_used: U256, } @@ -199,10 +190,7 @@ impl Block { TransactionProcessed { encoded_tx, tx_hash, - gas_info: ReceiptGasInfo { - effective_gas_price: signed_transaction.effective_gas_price(base_gas_price), - gas_used: gas_used.ref_time().into(), - }, + gas_info: ReceiptGasInfo { gas_used: gas_used.ref_time().into() }, encoded_receipt, receipt_bloom, } diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 975a1143fa842..67109d9af3c36 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -47,8 +47,7 @@ impl PartialEq for TransactionDetails { #[test] fn on_initialize_clears_storage() { ExtBuilder::default().existential_deposit(50).build().execute_with(|| { - let receipt_data = - vec![ReceiptGasInfo { effective_gas_price: 1.into(), gas_used: 1.into() }]; + let receipt_data = vec![ReceiptGasInfo { gas_used: 1.into() }]; ReceiptInfoData::::put(receipt_data.clone()); assert_eq!(ReceiptInfoData::::get(), receipt_data); From 70083d90cb51ea95bd1a59664ae1c0e8bfc44a9b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 09:56:30 +0000 Subject: [PATCH 139/273] revive: Saturate add for gas usage Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 11 +++-------- substrate/frame/revive/src/lib.rs | 2 -- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index f0644bbd6d6aa..11e30d1f8de55 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -94,7 +94,6 @@ impl Block { timestamp: U256, block_author: H160, gas_limit: U256, - base_gas_price: U256, ) -> (H256, Block, Vec) { let mut block = Self { number: block_number, @@ -120,7 +119,7 @@ impl Block { let mut logs_bloom = Bloom::default(); for detail in transaction_details { - let processed = block.process_transaction_details(detail, base_gas_price); + let processed = block.process_transaction_details(detail); signed_tx.push(processed.encoded_tx); tx_hashes.push(processed.tx_hash); @@ -150,11 +149,7 @@ impl Block { /// Returns a tuple of the RLP encoded transaction and receipt. /// /// Internally collects the total gas used. - fn process_transaction_details( - &mut self, - detail: TransactionDetails, - base_gas_price: U256, - ) -> TransactionProcessed { + fn process_transaction_details(&mut self, detail: TransactionDetails) -> TransactionProcessed { let TransactionDetails { signed_transaction, logs, success, gas_used } = detail; let encoded_tx = signed_transaction.signed_payload(); @@ -171,7 +166,7 @@ impl Block { }) .collect(); - self.gas_used += gas_used.ref_time().into(); + self.gas_used.saturating_add(gas_used.ref_time().into()); let receipt = alloy_consensus::Receipt { status: success.into(), diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index f71ccdcd13160..2540e975df720 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -660,7 +660,6 @@ pub mod pallet { } else { H256::default() }; - let base_gas_price = Self::evm_base_gas_price().into(); let gas_limit = Self::evm_block_gas_limit(); // This touches the storage, must account for weights. let transactions = InflightEthTransactions::::take(); @@ -672,7 +671,6 @@ pub mod pallet { T::Time::now().into(), block_author, gas_limit, - base_gas_price, ); // Put the block hash into storage. BlockHash::::insert(eth_block_num, block_hash); From 45effc4099f4dcb57389b6f6566d3964cc9e21fd Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 09:58:40 +0000 Subject: [PATCH 140/273] revive: Remove stale EVM gas price Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 2540e975df720..2bf38700df695 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1677,11 +1677,6 @@ where GAS_PRICE.into() } - /// Get the base gas price. - pub fn evm_base_gas_price() -> U256 { - GAS_PRICE.into() - } - /// Build an EVM tracer from the given tracer type. pub fn evm_tracer(tracer_type: TracerType) -> Tracer where From 034cfd5a718c7a87363d2e0053a8bd9fb6d7ddea Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 10:01:34 +0000 Subject: [PATCH 141/273] revive: Ensure length does not overflow Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 11e30d1f8de55..da8f83c82cb12 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -178,8 +178,11 @@ impl Block { // Receipt encoding must be prefixed with the rlp(transaction type). let mut encoded_receipt = signed_transaction.signed_type(); - encoded_receipt - .reserve(encoded_receipt.len() + receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); + let encoded_len = encoded_receipt + .len() + .saturating_add(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); + + encoded_receipt.reserve(encoded_len); receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); TransactionProcessed { From 0f8ae182fb523eac916a548d925583d37448391b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 10:01:48 +0000 Subject: [PATCH 142/273] revive/tests: Clean up unused imports Signed-off-by: Alexandru Vasile --- polkadot/xcm/pallet-xcm/src/mock.rs | 2 +- substrate/frame/revive/src/evm/api/rpc_types_gen.rs | 1 + substrate/frame/revive/src/tests.rs | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/polkadot/xcm/pallet-xcm/src/mock.rs b/polkadot/xcm/pallet-xcm/src/mock.rs index c611555380536..f2f1d859699a5 100644 --- a/polkadot/xcm/pallet-xcm/src/mock.rs +++ b/polkadot/xcm/pallet-xcm/src/mock.rs @@ -21,7 +21,7 @@ use frame_support::{ fungible::HoldConsideration, AsEnsureOriginWithArg, ConstU128, ConstU32, Contains, Equals, Everything, EverythingBut, Footprint, Nothing, }, - weights::{FixedFee, Weight}, + weights::Weight, }; use frame_system::EnsureRoot; use polkadot_parachain_primitives::primitives::Id as ParaId; 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 bfaa53b665911..9cb21d3af5927 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -701,6 +701,7 @@ pub struct TransactionLegacyUnsigned { Clone, Serialize, Deserialize, + Default, From, Eq, PartialEq, diff --git a/substrate/frame/revive/src/tests.rs b/substrate/frame/revive/src/tests.rs index 9042401e6097d..bb04d799aa539 100644 --- a/substrate/frame/revive/src/tests.rs +++ b/substrate/frame/revive/src/tests.rs @@ -354,7 +354,6 @@ impl Config for Test { type ChainId = ChainId; type FindAuthor = Test; type Precompiles = (precompiles::WithInfo, precompiles::NoInfo); - type LengthToFee = ::LengthToFee; } impl TryFrom for crate::Call { From 415cb12fedabb8eb253911acbc87e0f0c99286f4 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 11:43:48 +0000 Subject: [PATCH 143/273] revive: Extract tx type from encoded bytes Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 28 +++++++++++++------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index da8f83c82cb12..dd22477c58fa0 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -17,7 +17,10 @@ //!Types, and traits to integrate pallet-revive with EVM. #![warn(missing_docs)] -use crate::evm::{Block, HashesOrTransactionInfos, TransactionSigned}; +use crate::evm::{ + Block, HashesOrTransactionInfos, TYPE_EIP1559, TYPE_EIP2930, TYPE_EIP4844, TYPE_EIP7702, +}; + use alloc::vec::Vec; use alloy_consensus::RlpEncodableReceipt; use alloy_core::primitives::{bytes::BufMut, Bloom, FixedBytes, Log, B256}; @@ -43,8 +46,8 @@ pub struct EventLog { /// The transaction details needed to build the ethereum block hash. #[derive(Encode, Decode, TypeInfo, Clone, Debug)] pub struct TransactionDetails { - /// The signed transaction. - pub signed_transaction: TransactionSigned, + /// The RLP encoding of the signed transaction. + pub transaction_encoded: Vec, /// The logs emitted by the transaction. pub logs: Vec, /// Whether the transaction was successful. @@ -150,10 +153,17 @@ impl Block { /// /// Internally collects the total gas used. fn process_transaction_details(&mut self, detail: TransactionDetails) -> TransactionProcessed { - let TransactionDetails { signed_transaction, logs, success, gas_used } = detail; - - let encoded_tx = signed_transaction.signed_payload(); - let tx_hash = H256(keccak_256(&encoded_tx)); + let TransactionDetails { transaction_encoded, logs, success, gas_used } = detail; + + let tx_hash = H256(keccak_256(&transaction_encoded)); + let transaction_type = transaction_encoded + .first() + .cloned() + .map(|first| match first { + TYPE_EIP2930 | TYPE_EIP1559 | TYPE_EIP4844 | TYPE_EIP7702 => vec![first], + _ => vec![], + }) + .unwrap_or_default(); let logs = logs .into_iter() @@ -177,7 +187,7 @@ impl Block { let receipt_bloom = receipt.bloom_slow(); // Receipt encoding must be prefixed with the rlp(transaction type). - let mut encoded_receipt = signed_transaction.signed_type(); + let mut encoded_receipt = transaction_type; let encoded_len = encoded_receipt .len() .saturating_add(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); @@ -186,7 +196,7 @@ impl Block { receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); TransactionProcessed { - encoded_tx, + encoded_tx: transaction_encoded, tx_hash, gas_info: ReceiptGasInfo { gas_used: gas_used.ref_time().into() }, encoded_receipt, From fb7d1a664e1b9ac8e02745f0759d10103d7c5f1d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 11:49:00 +0000 Subject: [PATCH 144/273] revive: Adjust ETH calls to use the encoded bytes directly Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rlp_codec.rs | 1 + substrate/frame/revive/src/evm/block_hash.rs | 6 +++++- substrate/frame/revive/src/evm/runtime.rs | 6 +++--- substrate/frame/revive/src/lib.rs | 21 +++++++++---------- .../frame/revive/src/test_utils/builder.rs | 8 +++---- 5 files changed, 23 insertions(+), 19 deletions(-) diff --git a/substrate/frame/revive/src/evm/api/rlp_codec.rs b/substrate/frame/revive/src/evm/api/rlp_codec.rs index 4fe55b68e5339..d3c51fb9ef797 100644 --- a/substrate/frame/revive/src/evm/api/rlp_codec.rs +++ b/substrate/frame/revive/src/evm/api/rlp_codec.rs @@ -130,6 +130,7 @@ impl TransactionSigned { TYPE_EIP2930 => rlp::decode::(&data[1..]).map(Into::into), TYPE_EIP1559 => rlp::decode::(&data[1..]).map(Into::into), TYPE_EIP4844 => rlp::decode::(&data[1..]).map(Into::into), + // TYPE_EIP7702 => rlp::decode::(&data[1..]).map(Into::into), _ => rlp::decode::(data).map(Into::into), } } diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index dd22477c58fa0..e1c904a73d89d 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -21,7 +21,7 @@ use crate::evm::{ Block, HashesOrTransactionInfos, TYPE_EIP1559, TYPE_EIP2930, TYPE_EIP4844, TYPE_EIP7702, }; -use alloc::vec::Vec; +use alloc::{vec, vec::Vec}; use alloy_consensus::RlpEncodableReceipt; use alloy_core::primitives::{bytes::BufMut, Bloom, FixedBytes, Log, B256}; use codec::{Decode, Encode}; @@ -156,6 +156,10 @@ impl Block { let TransactionDetails { transaction_encoded, logs, success, gas_used } = detail; let tx_hash = H256(keccak_256(&transaction_encoded)); + // The transaction type is the first byte from the encoded transaction, + // when the transaction is not legacy. For legacy transactions, there's + // no type defined. Additionally, the RLP encoding of the tx type byte + // is identical to the tx type. let transaction_type = transaction_encoded .first() .cloned() diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index 6ea36cccce885..c541ac174d806 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -313,7 +313,7 @@ pub trait EthExtra { InvalidTransaction::BadProof })?; - let signed_transaction = tx.clone(); + let transaction_encoded = tx.signed_payload(); let signer = ::AddressMapper::to_fallback_account_id(&signer_addr); let GenericTransaction { nonce, chain_id, to, value, input, gas, gas_price, .. } = GenericTransaction::from_signed(tx, crate::GAS_PRICE.into(), None); @@ -361,7 +361,7 @@ pub trait EthExtra { gas_limit, storage_deposit_limit, data, - signed_transaction, + transaction_encoded, } .into() } @@ -383,7 +383,7 @@ pub trait EthExtra { storage_deposit_limit, code: code.to_vec(), data: data.to_vec(), - signed_transaction, + transaction_encoded, } .into() }; diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 2bf38700df695..18c58494785f9 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -981,9 +981,8 @@ pub mod pallet { /// * `data`: The input data to pass to the contract constructor. /// * `salt`: Used for the address derivation. If `Some` is supplied then `CREATE2` /// semantics are used. If `None` then `CRATE1` is used. - /// * `signed_transaction`: The signed Ethereum transaction, represented as - // [crate::evm::TransactionSigned], provided by the Ethereum wallet. - /// + /// * `transaction_encoded`: The RLP encoding of the signed Ethereum transaction, + /// represented as [crate::evm::TransactionSigned], provided by the Ethereum wallet. /// /// Calling this dispatchable ensures that the origin's nonce is bumped only once, /// via the `CheckNonce` transaction extension. In contrast, [`Self::instantiate_with_code`] @@ -1001,7 +1000,7 @@ pub mod pallet { #[pallet::compact] storage_deposit_limit: BalanceOf, code: Vec, data: Vec, - signed_transaction: TransactionSigned, + transaction_encoded: Vec, ) -> DispatchResultWithPostInfo { ensure_signed(origin.clone())?; @@ -1026,7 +1025,7 @@ pub mod pallet { } Self::store_transaction( - signed_transaction, + transaction_encoded, output.result.is_ok(), output.gas_consumed, ); @@ -1054,7 +1053,7 @@ pub mod pallet { gas_limit: Weight, #[pallet::compact] storage_deposit_limit: BalanceOf, data: Vec, - signed_transaction: TransactionSigned, + transaction_encoded: Vec, ) -> DispatchResultWithPostInfo { ensure_signed(origin.clone())?; @@ -1075,7 +1074,7 @@ pub mod pallet { } Self::store_transaction( - signed_transaction, + transaction_encoded, output.result.is_ok(), output.gas_consumed, ); @@ -1502,7 +1501,7 @@ where // Since this is a dry run, we don't need to pass the signed transaction // payload. Instead, use a dummy value. The signed transaction // will be provided by the user when the tx is submitted. - signed_transaction: TransactionSigned::default(), + transaction_encoded: TransactionSigned::default().signed_payload(), } .into(); (result, dispatch_call) @@ -1574,7 +1573,7 @@ where // Since this is a dry run, we don't need to pass the signed transaction // payload. Instead, use a dummy value. The signed transaction // will be provided by the user when the tx is submitted. - signed_transaction: TransactionSigned::default(), + transaction_encoded: TransactionSigned::default().signed_payload(), } .into(); (result, dispatch_call) @@ -1798,12 +1797,12 @@ impl Pallet { /// Store a transaction payload with extra details. /// /// The data is used during the `on_finalize` hook to reconstruct the ETH block. - fn store_transaction(signed_transaction: TransactionSigned, success: bool, gas_used: Weight) { + fn store_transaction(transaction_encoded: Vec, success: bool, gas_used: Weight) { // Collect inflight events emitted by this EVM transaction. let logs = InflightEthTxEvents::::take(); InflightEthTransactions::::append(TransactionDetails { - signed_transaction, + transaction_encoded, logs, success, gas_used, diff --git a/substrate/frame/revive/src/test_utils/builder.rs b/substrate/frame/revive/src/test_utils/builder.rs index e2b6d067368b6..a878bd5715f11 100644 --- a/substrate/frame/revive/src/test_utils/builder.rs +++ b/substrate/frame/revive/src/test_utils/builder.rs @@ -243,7 +243,7 @@ builder!( gas_limit: Weight, storage_deposit_limit: BalanceOf, data: Vec, - signed_transaction: TransactionSigned, + transaction_encoded: Vec, ) -> DispatchResultWithPostInfo; /// Create a [`EthCallBuilder`] with default values. @@ -255,7 +255,7 @@ builder!( gas_limit: GAS_LIMIT, storage_deposit_limit: deposit_limit::(), data: vec![], - signed_transaction: TransactionSigned::TransactionLegacySigned(Default::default()), + transaction_encoded: TransactionSigned::TransactionLegacySigned(Default::default()).signed_payload(), } } ); @@ -268,7 +268,7 @@ builder!( storage_deposit_limit: BalanceOf, code: Vec, data: Vec, - signed_transaction: TransactionSigned, + transaction_encoded: Vec, ) -> DispatchResultWithPostInfo; /// Create a [`EthInstantiateWithCodeBuilder`] with default values. @@ -280,7 +280,7 @@ builder!( storage_deposit_limit: deposit_limit::(), code, data: vec![], - signed_transaction: TransactionSigned::Transaction4844Signed(Default::default()), + transaction_encoded: TransactionSigned::Transaction4844Signed(Default::default()).signed_payload(), } } ); From 5f71ff4a274c4134ed090ec76ea3ed89024e85ad Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 11:56:09 +0000 Subject: [PATCH 145/273] revive: Rename variable to align with latest changes Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index e1c904a73d89d..b0e20e232b417 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -66,7 +66,7 @@ pub struct ReceiptGasInfo { /// A processed transaction by `Block::process_transaction_details`. struct TransactionProcessed { - encoded_tx: Vec, + transaction_encoded: Vec, tx_hash: H256, gas_info: ReceiptGasInfo, encoded_receipt: Vec, @@ -124,7 +124,7 @@ impl Block { for detail in transaction_details { let processed = block.process_transaction_details(detail); - signed_tx.push(processed.encoded_tx); + signed_tx.push(processed.transaction_encoded); tx_hashes.push(processed.tx_hash); gas_infos.push(processed.gas_info); receipts.push(processed.encoded_receipt); @@ -200,7 +200,7 @@ impl Block { receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); TransactionProcessed { - encoded_tx: transaction_encoded, + transaction_encoded, tx_hash, gas_info: ReceiptGasInfo { gas_used: gas_used.ref_time().into() }, encoded_receipt, From 970a5aa7114403b68b0c9c7a363719b748724c8c Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 11:58:57 +0000 Subject: [PATCH 146/273] revive: Kill only RPC items in on_initialize Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 18c58494785f9..f67b5a9881fff 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -637,8 +637,6 @@ pub mod pallet { fn on_initialize(_n: BlockNumberFor) -> Weight { ReceiptInfoData::::kill(); EthereumBlock::::kill(); - InflightEthTxEvents::::kill(); - InflightEthTransactions::::kill(); Weight::zero() } From 050acc2228e0c72896159f4d6ccbc0f7e2af54c3 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 25 Aug 2025 12:17:34 +0000 Subject: [PATCH 147/273] bench: Adjust the benchmarks Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/benchmarking.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index 9ae27d66224fb..554fdb609c182 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -262,7 +262,7 @@ mod benchmarks { storage_deposit, code, input, - TransactionSigned::default(), + TransactionSigned::default().signed_payload(), ); let deposit = @@ -398,7 +398,7 @@ mod benchmarks { Weight::MAX, storage_deposit, data, - TransactionSigned::default(), + TransactionSigned::default().signed_payload(), ); let deposit = T::Currency::balance_on_hold( &HoldReason::StorageDepositReserve.into(), From ccbe1fa63e16124446750ad579eea4c9f9949148 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 26 Aug 2025 09:40:59 +0000 Subject: [PATCH 148/273] revive/tests: Adjust testing to new stored items Signed-off-by: Alexandru Vasile --- substrate/frame/assets/src/mock.rs | 1 - substrate/frame/revive/src/evm/runtime.rs | 4 ++-- .../frame/revive/src/tests/block_hash.rs | 22 ++++++++++++------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/substrate/frame/assets/src/mock.rs b/substrate/frame/assets/src/mock.rs index a3b5d3d647208..78fb2b78e4f47 100644 --- a/substrate/frame/assets/src/mock.rs +++ b/substrate/frame/assets/src/mock.rs @@ -25,7 +25,6 @@ use codec::Encode; use frame_support::{ assert_ok, construct_runtime, derive_impl, parameter_types, traits::{AsEnsureOriginWithArg, ConstU32}, - weights::FixedFee, }; use sp_io::storage; use sp_runtime::BuildStorage; diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index c541ac174d806..be1e347f21df6 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -626,7 +626,7 @@ mod test { data: tx.input.to_vec(), gas_limit, storage_deposit_limit, - signed_transaction, + transaction_encoded: signed_transaction.signed_payload(), } .into() ); @@ -649,7 +649,7 @@ mod test { data, gas_limit, storage_deposit_limit, - signed_transaction, + transaction_encoded: signed_transaction.signed_payload(), } .into() ); diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 67109d9af3c36..aece048204a2a 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -38,7 +38,7 @@ impl PartialEq for EventLog { impl PartialEq for TransactionDetails { // Ignore the weight since its subject to change. fn eq(&self, other: &Self) -> bool { - self.signed_transaction == other.signed_transaction && + self.transaction_encoded == other.transaction_encoded && self.logs == other.logs && self.success == other.success } @@ -56,14 +56,15 @@ fn on_initialize_clears_storage() { assert_eq!(InflightEthTxEvents::::get(), vec![event.clone()]); let transactions = vec![TransactionDetails { - signed_transaction: TransactionSigned::TransactionLegacySigned(Default::default()), + transaction_encoded: TransactionSigned::TransactionLegacySigned(Default::default()) + .signed_payload(), logs: vec![event.clone()], success: true, gas_used: Weight::zero(), }]; InflightEthTransactions::::put(transactions.clone()); - assert_eq!(InflightEthTransactions::::get(), transactions); + assert_eq!(InflightEthTransactions::::get(), transactions.clone()); let block = EthBlock { number: 1.into(), ..Default::default() }; EthereumBlock::::put(block.clone()); @@ -71,9 +72,11 @@ fn on_initialize_clears_storage() { Contracts::on_initialize(0); + // The events and tx info is killed on the finalized hook. + assert_eq!(InflightEthTxEvents::::get(), vec![event]); + assert_eq!(InflightEthTransactions::::get(), transactions); + // RPC queried storage is cleared out. assert_eq!(ReceiptInfoData::::get(), vec![]); - assert_eq!(InflightEthTxEvents::::get(), vec![]); - assert_eq!(InflightEthTransactions::::get(), vec![]); assert_eq!(EthereumBlock::::get(), Default::default()); }); } @@ -103,13 +106,15 @@ fn transactions_are_captured() { let transactions = InflightEthTransactions::::get(); let expected = vec![ TransactionDetails { - signed_transaction: TransactionSigned::TransactionLegacySigned(Default::default()), + transaction_encoded: TransactionSigned::TransactionLegacySigned(Default::default()) + .signed_payload(), logs: vec![], success: true, gas_used: Weight::zero(), }, TransactionDetails { - signed_transaction: TransactionSigned::Transaction4844Signed(Default::default()), + transaction_encoded: TransactionSigned::Transaction4844Signed(Default::default()) + .signed_payload(), logs: vec![], success: true, gas_used: Weight::zero(), @@ -151,7 +156,8 @@ fn events_are_captured() { let transactions = InflightEthTransactions::::get(); let expected = vec![TransactionDetails { - signed_transaction: TransactionSigned::Transaction4844Signed(Default::default()), + transaction_encoded: TransactionSigned::Transaction4844Signed(Default::default()) + .signed_payload(), logs: vec![EventLog { data: vec![1, 2, 3, 4], topics: vec![H256::repeat_byte(42)], From 74ed66c952044104950d2e0ce480b74db9afe817 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 26 Aug 2025 11:02:24 +0000 Subject: [PATCH 149/273] revive/codec: Implement decode for 7702 signedtx Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rlp_codec.rs | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/api/rlp_codec.rs b/substrate/frame/revive/src/evm/api/rlp_codec.rs index d3c51fb9ef797..dfe6d7e900826 100644 --- a/substrate/frame/revive/src/evm/api/rlp_codec.rs +++ b/substrate/frame/revive/src/evm/api/rlp_codec.rs @@ -130,7 +130,7 @@ impl TransactionSigned { TYPE_EIP2930 => rlp::decode::(&data[1..]).map(Into::into), TYPE_EIP1559 => rlp::decode::(&data[1..]).map(Into::into), TYPE_EIP4844 => rlp::decode::(&data[1..]).map(Into::into), - // TYPE_EIP7702 => rlp::decode::(&data[1..]).map(Into::into), + TYPE_EIP7702 => rlp::decode::(&data[1..]).map(Into::into), _ => rlp::decode::(data).map(Into::into), } } @@ -421,6 +421,33 @@ impl Encodable for Transaction7702Unsigned { } } +impl Decodable for Transaction7702Signed { + fn decode(rlp: &rlp::Rlp) -> Result { + Ok(Transaction7702Signed { + transaction_7702_unsigned: { + Transaction7702Unsigned { + chain_id: rlp.val_at(0)?, + nonce: rlp.val_at(1)?, + max_priority_fee_per_gas: rlp.val_at(2)?, + max_fee_per_gas: rlp.val_at(3)?, + gas_price: rlp.val_at(4)?, + gas: rlp.val_at(5)?, + to: rlp.val_at(6)?, + value: rlp.val_at(7)?, + input: Bytes(rlp.val_at(8)?), + access_list: rlp.list_at(9)?, + authorization_list: rlp.list_at(10)?, + r#type: Default::default(), + } + }, + y_parity: rlp.val_at(11)?, + r: rlp.val_at(12)?, + s: rlp.val_at(13)?, + v: None, + }) + } +} + impl Encodable for Transaction4844Unsigned { fn rlp_append(&self, s: &mut rlp::RlpStream) { s.begin_list(11); From 3b8baf7a3e389909e733d6042451ed6902aa6177 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 26 Aug 2025 11:03:19 +0000 Subject: [PATCH 150/273] revive: Update gas used in block hash Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index b0e20e232b417..50400ad723cbd 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -180,7 +180,7 @@ impl Block { }) .collect(); - self.gas_used.saturating_add(gas_used.ref_time().into()); + self.gas_used = self.gas_used.saturating_add(gas_used.ref_time().into()); let receipt = alloy_consensus::Receipt { status: success.into(), From d1c5cfaf1ca8a3c99a4dec53e94f7b6fdd5aee2c Mon Sep 17 00:00:00 2001 From: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> Date: Wed, 17 Sep 2025 17:31:12 +0200 Subject: [PATCH 151/273] changes: Compare incremental Trie Builder for space saveup optimizations (#9764) This is a combination of: - https://github.com/paritytech/polkadot-sdk/pull/9538 - https://github.com/paritytech/polkadot-sdk/pull/9554 - Because I've merged origin/master into the 3 PR in the tree series, which led to reporting all in-between commits as part of the PRs For tracking purposes only. --------- Signed-off-by: Alexandru Vasile Co-authored-by: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> --- Cargo.lock | 14 + substrate/frame/revive/Cargo.toml | 4 +- .../frame/revive/rpc/revive_chain.metadata | Bin 694304 -> 702100 bytes substrate/frame/revive/rpc/src/lib.rs | 11 +- .../frame/revive/rpc/src/receipt_extractor.rs | 6 +- .../frame/revive/rpc/src/subxt_client.rs | 4 + .../frame/revive/src/evm/api/rpc_types.rs | 6 +- .../frame/revive/src/evm/api/rpc_types_gen.rs | 276 +- substrate/frame/revive/src/evm/block_hash.rs | 942 +- substrate/frame/revive/src/exec.rs | 14 +- substrate/frame/revive/src/lib.rs | 133 +- substrate/frame/revive/src/limits.rs | 7 + .../frame/revive/src/tests/block_hash.rs | 151 +- substrate/frame/revive/src/vm/pvm.rs | 12 +- substrate/frame/revive/src/vm/pvm/env.rs | 5 + .../frame/revive/test-assets/eth_block.json | 3387 +++++++ .../revive/test-assets/eth_receipts.json | 7779 +++++++++++++++++ 17 files changed, 12446 insertions(+), 305 deletions(-) create mode 100644 substrate/frame/revive/test-assets/eth_block.json create mode 100644 substrate/frame/revive/test-assets/eth_receipts.json diff --git a/Cargo.lock b/Cargo.lock index 93e8155a69c13..13e21b13c0fcb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -114,12 +114,18 @@ dependencies = [ "alloy-eips", "alloy-primitives", "alloy-rlp", + "alloy-serde", "alloy-trie", "alloy-tx-macros", "auto_impl", + "c-kzg", "derive_more 2.0.1", "either", + "k256", "once_cell", + "rand 0.8.5", + "secp256k1 0.30.0", + "serde", "thiserror 2.0.12", ] @@ -362,6 +368,7 @@ dependencies = [ "arrayvec 0.7.4", "derive_more 2.0.1", "nybbles", + "serde", "smallvec", "tracing", ] @@ -1075,6 +1082,9 @@ name = "arrayvec" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +dependencies = [ + "serde", +] [[package]] name = "asn1-rs" @@ -11104,6 +11114,7 @@ checksum = "63cb50036b1ad148038105af40aaa70ff24d8a14fbc44ae5c914e1348533d12e" dependencies = [ "cfg-if", "ruint", + "serde", "smallvec", ] @@ -13124,6 +13135,7 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-core", + "alloy-rlp", "array-bytes 6.2.2", "assert_matches", "derive_more 0.99.17", @@ -18135,6 +18147,7 @@ dependencies = [ "libc", "rand_chacha 0.3.1", "rand_core 0.6.4", + "serde", ] [[package]] @@ -21439,6 +21452,7 @@ dependencies = [ "bitcoin_hashes 0.14.0", "rand 0.8.5", "secp256k1-sys 0.10.1", + "serde", ] [[package]] diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index 4ff6b7e1d46bb..f40fb0b94d0df 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -18,7 +18,8 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] alloy-consensus = { workspace = true, default-features = false } -alloy-core = { workspace = true, features = ["sol-types"] } +alloy-core = { workspace = true, features = ["sol-types", "rlp"] } +alloy-rlp = { version = "0.3.12", default-features = false } codec = { features = ["derive", "max-encoded-len"], workspace = true } derive_more = { workspace = true, features = ["from", "try_into"] } environmental = { workspace = true } @@ -63,6 +64,7 @@ sp-version = { workspace = true } subxt-signer = { workspace = true, optional = true, features = ["unstable-eth"] } [dev-dependencies] +alloy-consensus = { workspace = true, features = ["serde"] } array-bytes = { workspace = true, default-features = true } assert_matches = { workspace = true } pretty_assertions = { workspace = true } diff --git a/substrate/frame/revive/rpc/revive_chain.metadata b/substrate/frame/revive/rpc/revive_chain.metadata index cb98c4653acced703a2a99b134af5e373a0db154..80b246edc77f5d41854899b36f2032c109eb4374 100644 GIT binary patch delta 23268 zcmch<4SZC^)i``-cK6=7cXyM!AtB$efdmL9A&UtnkU#H&Z1A+WBfZ_?=O&sfKl`=mPK8u;ZH#acch@r! z1!fN;d*I*^DXvS397(+l96lD)RT!Bv8`d>hEi!NCxccUbab2H@k#PG|GTgiii+8z(#df`;rjYKgzo~iT zP?yV*Z9dA#bFkSXCU^bFkxY(t?Qvw2<6S+DiR5ILIjWHMF?hKdYp;xoCuh0>QQ71| z*JDuy=6IR>3?}Rm6TAKql|_@~t_j2PX^Px+W|j^(IiT9sGuEb40(MtQnc`!U*CCmb>p- zv5dlFDdcKWq5Uz1kkRINMvjAH99a$#R}m4Wm5?Nw%%FJ`S#iga5`upe|4jI2){c}| zR_?lLPQbgm(NkO9;&(R&+%+v;U*mC!%v>}WU8oljgdE8J(6W49G8yk&ITUE+Wapwa z9;cDvENNNe@q1buoFQm4oPJM}-xKgOws>lt?tq;*oy*|K4=u@~sxq8Se&0H8EoQ80 zb0Y8{hV}0HdQXei^pT~Quu~FI=eQi=rFV3IF^KyejI((d}!ve*LiZ(yKhLWO zW(maXKZBB7F)?=%eg{In*Y!&z`}!t63=4SnRDn3#hE+GY{oaCmLX#i1|{Am-pWfuVStfBk0c1RR}y+d zm;)7+EQy=~eOhtUyz8J*6y%RAkT{=l%OGG5?1egRl^N7TQf=)d(5?Qe*tvF8a^ZLTqTiU9J~K{>zTBFnDn(OSpDW z7jXKAc7}z8jw2k!mye@U#yFBg*%CUALd?kJoyM~+b(%fA(|F$hcb#Srr7pD7!m1Hc z|9|MT=*yKKD(PTnj2i3=PS?=RaQw4ogqmd3aHKxen%3*~`VymK7^xj%&HoctUy>&w zhDGPV!W&qOF$MY;=maOZB;^4{A;%L$ezZ)&4Ver2^XoI*^F)J2fkf}|+Kufi^vCh|wjVQ&iD>63TBy40| zBqsronuupBRy<^(9Sq)oO-g{LMv6AAX1q8_q+1vq>yw*#g{{hvvrdDV7pU76TO zVt1l!E%vo|7I7&;eO6CdBn-&nD)L$v=Lm_eqJYjLr!QPt`^^;^aSflo|FKmZxlz7lRMUmOGyt@t`*BL zcw()XPI{qdt#}VP4J+!!iRr!J<^aXvvT4;RLl{nJhwH`R#C95^`pnEM^l5);5Pu|+ zGunz4@dc5bh0kslr$WWe;&yUY!|#j;a!!l8OOzDSuQ?wOiN$tSZ)~YlDhcNxbEh~q zx*t>Mc_!cw*-$L?65#@@*(v6di?DmAcmtJX_-?1@4Te+UCl85t(u)j=N0Atq{;)WT z5*g|q#zcz@Up{7f_%28d1I1w48!J{6wt5%@O!AlO@2*SxnZd zA48pn8zox%<6@3PGi7MJhB@^?1bqi^q`PEz^l6kfeTu5Wlph7X3p@fFBltW!Ie!-hBMIOpDGB&ve|~od|q85;}Q@5p~}L47Alm& zT?bL_%b=%Q91a%`inGXknAt6kq4Q;3J>1qU#^hDVf{nyA`uq*<`U;tt7YQW8hie;s z{d6fQwZYw3>u&M++l(?o1;@Ieyp@r>;L2`^$Gdt>3$E?3?1t(VACAf^<>KZ+z~f)% zsl7s`P-)P*_2;-*R0X?#E+){bL0aLHpNm%$HzYnQ77!0CeO4Sl`pSGEsosXB`szk^ zgQr-Aeb0(3h!@PyiBr?PgA8ln48wnd{*N}x0{&2tkC|1WRfe7t5~FQ?PJF;b+vKhv zC&j~r7sN$y=w)%n$SpF7<6AC^unRhLpu;p<*n(daqo@XdE4pTw%?lBouq~wQHeSLk zbcRXw_MuX}9m}B_-wyvcEG9wgVKEl<+P1^uSkqpaz~5g)qxQyO(P7$$v8E$ptl1<8 zJ9*&^!*>?wM>D{Ot&; zo&$Pg#&pX@YYv69rdw}$wkjOr&BEAWZPzcv=ZNhn&#(z`PT`o`b!=oj+&vt}L;FkO zB(Cz1Im6+-6e%_4L=b6D2+|Wfj$!LYydqu~aZ)Bp3q0WyI(IJcV14K?yh&^0-wa8A!Xj$^Vo@{wNQObjG^a)%IL#iqRzem_E*Kp z=8H19v#W2|@TggSkLM<|UA$QW3djXnH>A+}s;I(GUKNMYi!$KcD4C}uDnvn=`enhQ zXy3gmR+`MR!q$Mh0lVkE>zD-1zZRX;u0Z*3#c^=t*J25EC_sNB24siAZmIL*2!OqJ zkYTX#gebv-zY()7F$zJkdHsYK3m^SP%tTduUytY-8?P8WoEFmDc&y#bgk%MOmt&hp zQxrIP0!L(ujsPb9R*Y8CIK2p#u9Gx3B2z*B#H~Yf?GNNC@YHX`EE}eA@yK>5g3AEi z{Jl6#&gGz(m#?R#7Y6Am4xy(|hx}Sqg<@V9qa}(B=KoeqgMqx_u(307e%9L~W>A*`rZ>fEQVBJ0iUmv0Vk- zZ;EM(n^((JLGZwz-xQajE-83R%$B{Jh6Y7wfY!GVNi+1mC3aX_bsAMc723f4wzx1@ znrwuR-xe2;4#@Atc~}Qj_lmJ2w_ss`|D#(K0e_s^s<4eGbSgq8Z0{8hTes`!D6}}n zzj{YZfWSNAEo2w}=F^(8KZqU5n0*{(zarp|Be9!>13aZ$5%9;UKconU6mX8hy$$w( zm|{JwCm&Vvgrku20b09b+R6{myx|Dt@-Xp4kpCw`_c#n>zSBb;n z$l-wZCGJXPpTS|gJLK^NBbb=6`}Yp-E$~oG!fQg2eWR5PMFiOid?3Kc^L==b`*B zVkKh3D&pXme-Wq0UepV<(ljCvtInrhMX*?5ZXb!)a?Xl17Ajkzvq!}3`Cm%IY<9hn z;IQHkB6HX>8e@f$FU4nQyp_+IHT5g;B&EqAFf=73M@d5jG~FtsTj9swh>4K>jaWr9 z^~lZCW$o&(N!7By6-St9ZV(4&D9yKmQb-fvneW9eT4;rtKZx6Du@(OG15P_itWb1O z%;h0c8lx*$ICv3_XsLGmqIi*#vhA-*Tj_i~e+Ekb{Y3f#rM`noNf_*=(jv6Cf2GoR z;?_o(qy;A8(V9hRG@;%BDiT-}ZLmVeIvNZ8lJp~#_Z5ni2tQ`hH@LdEU6#sdYmk70 zcT16QL6%0vv{^~s^hK!i%G^x_*JU^tV|TYfwj#yGZbVK9{2%SG3iv}I&50AXaI7A> zHKbay4T@}15~NzCSX>trSf!ClQNmv1GY&uZ@z1Mp zb-**l3Y_W+2aMco{OmS9Q8fsM;7cq>4_ohVNi+;zQKXdSphvB6Y#oh;o1M~9dMwBw zZvG%5MPkE`TL-Pnan6j5L^xsXdcQppKKmBeF6AlGdU|pYEF-2T1fqvSILtWqMvjsK zF{gAcZXY8ow-;K(T*E&1qKBR}h$)lmQaA=uC9NYr$T z(9i3^=y^RQ4#(pJDMugb^rC@aDzO;|WSmY8%#AQDWarmn8!~;j*z}2x#RjjZN^5V_ZRSGfu)(8g(v37m5946;7-?2~yp7B(H;&i*A(|v!M-&S?$4J-PlMx%* z88zM}q}aO7-I}09j+MqsG|dK6vZQjFZi8)E(zx;IVN_-gr83i?GSdd{XG!_gWrGB4 zKFzg3`2;B`D%VEFmAl(~tt|m;xFBFUR~TdSgB&Rg;YdEGiK%fyA#WV zLJF7IATb-esubMW(nJg%$d(%9G7ec{!~F)uC0%c1I^ialG#m$Zr%M`z!E-KYu2QMj zg`!yn%0y{0b%$^j=g(UwNi`0-;@e=w6urcMO_A~lf!+yK zGo%ahE?&)c8xHI0nNls?XX`q=D^dINOldh^=@-tDzC~4#J6qa@s^Hbx(ku*=Ij9j1 z!NfUIZo*;2pHb21_cXWSv8AULCp5SOTkB~#3LSH#spJ^EGDo_O9=7QQA?GO8h8Fm+ zO*j@t=Fy>K@}fxQ@d3V~xZ`HP`=!!@)OJ!w(_@PhdW`It-XJGVg>a%5elu6p*=7)E5Lg69hUN0(1s`UM6i)&T^nLHsPGDtLgDr_^wn^v}N<8u~g~T(ct3c zJls<*J&79+x$~uQ1i{ull$PQr;t&0?a{^3wS-#iA>&rIYZI1A z876ACL)9|rFVtbzW-ph9Q5s{1{%R>vTfahbl40?7l2IH8cv=?X(zX@FCtlBvftRbL zY?`b`nvzoNBnJ=re65WGxZ;P5M{9IufV(_l9S zU~>qb2Do>Fv_x*^=o;)oD}1p*`ZW&i=i8)u90j9qlJcw@b#e$*g$}LmCdq21TkKF? zY#y#{-6Y{Q=~kYPY8L0MMmjv(F5OEzgOSS3IP=&ZjC{9Qy4AT;2T<)~ClPk($Q?9J z*sFiVeI@MEc6CT`7P=q%=ppkk*!-Z`3ca^WPvIcle20{h&}~P_#Epj;KJ=o{y*n28 z>T#jltph~E>vu@mJ!*-H1)A$sG!-ypj9=}ssOpoepjDdl*@eC!?1a0~UY;2wI5X-j4lBRv#eskDK}n+|0=gfRMre2J#F-eiM8J~| zNj+4KfSVtdR#JNeoPJnJnWTOmhz|+BUGMfZFva)_z>9}mR1xV9SbGTTwY`>JdJ6zB3R3xpOMP37S}=P84UUk;=DG9 zeR4N$&AOqaTS~_qUpHEPFO2*|8bd3Cuy1xtvlmoFgc{1qh#?cON@NgPAa__f&(Lxn zqnsy*{MMgK%dYl@0W}N-YA}F!fcgw~Gn@4ePQQ|tYQ;jdEkeK_7Vae*BZQ5?%4*)T zjJ4sWW~!l{OJvybp5>3UBLeW4AyND3bJDXWvIVMNkbZ96s)Gx-6}=7SAH}gd@I^piaIGNfHJ%@29bzaIY!IgvOMQIM*8v&7@;GXTi2$+D&O-$zEICf`H9Cw9? z<4&VVt)j4t(~Z%+2EMu@IDOc63AY7K9+9SForAPw|3bQTNL2@ns=9+!9SW(cJIIhY z;SjG1qlY!b_JoNZjW7<1Hhh4`G9!;kK7vybPO`pKrN<)%7o_Bbk@3ZGG$bcOu%F~O zJ4K-ftglJaP{HW%!8JVpPTnsXqw#bI)M*a2U&M2S_g<4e!*c{k>A~}%k4{SM=Ccvx z&yeyKMmv6w=KUW zv*&e`|MN!9=da`3Q$KbZ7C|!5v!`*jry4h{Jr`j98`2ZF#=r0ePE0QH()%chgf~2R zq}JCXoud|vyeVamkRu7Yhph57)|UHx^;{_u=X!6;nrhtqwnxH8A5hAdD~tILrFa~zRF+vA7~w*p3av;r}a*h2n~#zzYH7uT(%eXRe=crht^Z7N#^mc9z!57H2ETB7PsarM`mZEX!y~|# zC~D<{U*JYX84nUPJlWeI;gspYZ=}hng5UZE1)>sSzeR;u!J$hq#>s($Rx*rMMZ)go z;s_1b)E0`0v;P8WY!CRqlSJW?9tO&%yVMUim|!muuLk@_*6hL(9e!L3ETqq($@KKNTKyB{^u z-Ek}rwa>5O7*|3VbAlzF#gKE57|)XNcr%~JaMm*jdmg$H*eZG*~BUcx*rD=ST`X8+7-@0hmj^9Aunl1D+;U z<3XEyz~itTT?KUqq#RxH6CwMOF##@L^vkv>+FC|QTtG2*?~3g>Z{R* zrl#H#xCEvKyf=mTZI0vTq-YV4oJ&PgTf7apfOj`E4f3%_Kd7u8?5E2-W7?7W><|y0 zfUJ_0bCA)V!1ewR*B$OXfn7B-v}kzkaR$L23rXeMV*{Mw7N^$lMvw47j7kc4){;v} zQ-x$w6jCA#qi|7|)1>sl&PC%wRFb-^HE)U&Igjp`1XsN#uDqCFQMp(rB@FZ^7CvSs zNqXTtEGp~yhAVaBzi1B%vse@^T3Qc0Ha4gp7P0 z_&bqR}V57B!#6qf4JJ$>%=*OyfWJLO{<{+geXs$o&m6PQMCK zZMcTBR@A#WoVUoHYCR{kY&7b!nzdUg9{6Je_+M*Y`&6!O4dvJ14y+BhRN~aLTwD>4 zYr&(K>MLb%!MRe#oB(=#;9VN@oac6l+dwB#SK*8qw@m!?P1t*NAw*3khCpW%8y=w| zDRo{yI+^LTr%R+DC>#c{NUPxDQjPP8Tot}eU@7DmT6`kAKB}sGkVVIgYYXk#wgu4LFyr)D31}^5l6HWz{8RrHdAo%&ab1 zTrzLb!j)CfEJ>qjzRJCIoba zxfiBjA0VY>ArIFo9lVb=s(3aRU%;-#WmjzhOHbbxHbAxx9Uxl~307-C{Lf%|yj(eUG`tPfY}_}z?i-Vdj-G~5A| zi`aNqw;H~ZJ7&hEUmh~&5Z0#uqlZ-ie<%*e%=|#Twumhlc0eWBrH%a3SYyjf96JI| zgLSe#D`JzfkB7DAgc{nQ6C7`l8Nn8vfceGjO>z?cKAojN$#mw*?g_)t%Q2i9U`cNX zhEw>B&FnQme?6T|!t;4VvjQj1RWn#R&YAC+!P3&tAU;E&xIfwHp&feKKy(%k&ScSW zb_T1)#Y^c-R)>>nOsX|vv*yO(e6Y^DdcRDTPIs^Jlr;Hj*38h8S`EK4T;PY*b$)1F z=Z(6~8+9Ei!K*G8VDD@cr22&{!eTQoz{UOWS!_AF4E}y0OM)NIVkzoHm6#XcT-DG9 zb_cvNizQ9C7{(~#Kt`ST;|Fs4C89?P_7mm z_>04FygirIE-wj#EgcG5YQXZq%;MsNvM_-8LjmR+0Q1q?pYUUvC(GD)T4IN{d064t zF^|opr&Tz3!E_xDFJ3UEPN)oHR1Wf~YJg8UgKVlYFjqO?<9X~zyE_ahI}|8;2#_bN zu$TAWr7FCLcc3eRb?_uJYjCtWga-Vi%?_d2!Da@Usv8>o{K8v<7o6oRowhpQx^k9F z^CRF#<*aBzTUb4JhE{XukXkl6pue2WiSBTa?1gy64R;gDaZ-WjG93;mo6j2awuGVE z%E|5=;LO$#vODn`#|=-S+Z?$0@z?pR0nLDW0bA0(9gz$wshvZ+Y^MRu1G>v0;13(0 zcT^GfhE>m7Q-V%=y8MQ;hC9z<<@>^_;ROxn>Uf;l8<*CC1^4rM@cRJlU4&W)l~WX& zjrN6X9&U@EVj7KGAz6!Y!=alONHo;SAziKD`SO}YxJhxC=hS8$4Wq9+bX0a@B?Fym zXsKfcws{q-5I0l?t3DA{^+}`Z6GmZF1fv#oI|v$lPt5`kdWSYH<`-{qk;rcbUUF*| zPKHr(B9xL7Ln!Hi@*7y3e)|N-5^QfTq%FbGVO+bs7ER3~OITd|W$S93i|R`?yf1Qc z35(4gnmu^!YG|HuYwk3}FJ)=8UxK2g%*n%5OHqn3e5r;Fj~xm&c)e%Y8I;oCv|HTifR#IU$t=aGuo{h81^v zE_dEXOdRW(uySXIiu+lt7R#OGwI;*7=qdm(u)R~5mjuFi$sN*u5@lbEKyf5 zAC@S+J(eh#zYsm?k5;h)Dn~(IH5&_~RxmtPjDl$^SQd?m0^bTYYP=m04=Mx);=Jq{ zgu}q-2qO7l1)DZLCJZQkC{Vls6dwfgSF>f&$(Tk{q6GY*N>S6Igfu<-nu+OABy|QZ z$#G&?g9=Y@mZO(D-+(d;g;6ADAZBD^Z>1Y(+XsQnHe9Xa-B=;p7#EiYwdo-c&0 zz`=5W-s zGD^T7CY_S7zN#?6NgFCSC>4A>y2HdhEy`Rna&QpxG6U*7I0!va#s!vlYjOCs!nd_7 z1KluEJ?ttp59K^K2Df;4eL53IWYk*~5gxCmo^I#hs@nY@!Z1*cMKySnr?1$tV zG2;Z3-H15O!Oc9l0Q+ymVzM3nbR)Y8-GP9u<&@ZA(^_^7+_)B<{R;KSOeE>mwOFki zzFLbr{2h>3kHJ2eRgavw0RDQG$Gs4KR*#c%M+E$(o?UHDjvx=h{5{yH+y*v|X5#5+ z15UN^?EjGlw$oe|K^_2SuQ>+hHL{V2vat~<+yc8B*(CGf2x7d@0$=gWqoDfOHF$z* zun}Kop?wiu-I3Aow2zH4Cr1X~XMuA*Hqz{hG#+Rf2@{$a&i5h_7k{Az+M8IKxeN>Q z*ID4@Cfwerg1#n}XKsx|*C}_k7!9swmW;r3p$5B9KmimdRr2FSbSm9Y6IEKXan zmt|P^g^10Mvo@NpXx~51HkfI?qP6~%?IpBC(c%uU9Wu7{ndg}muLo#HUS!OKug(1G zD8t>}O6{)W?0sT#D;}->*EsLQuV(Gt->^rip0??~*;tdQRcX_n{5?NEa>Glnvv1LD z`uR7IQshJRo2<@+L*lhwHUoJL)_2%{Bjk2C^$y!6xs^DxV0OcM@345d{SRy*`YZp> zAJ`=nkf$9v~-A|+dQe1ko0w?g|j>|1nj*N%OMq6<6!#@2Dw;<&&jp@%y! z1g~9S7lI{#a9wl554gjWW`#{ZpopbewbMVaXllx|-o^<@(PI9=ekr1#J3NZd9>JFu z*~$If9irUg%(ps(q}g~*P}}4t10PAz3%MP|i*Q!hC(3!~^RB%w$~T$B5-T$DHt76J zj?r2a`CEcrT5pqwbMZYEAwLU~BILWsd=0;izplKj*}}1YQst6Wqf-HyyNAo zG1xU;o{J*>>3F#XO=a~}NbYI)^eSvhAAFD@e~s5O|BxxaM{qj!`~>-TxZiPWw%lj7 z+Z;AnGDJq zD*oS>$m8&=``Z$E1$r2_*-)g`IE$fkniQ+8n*o#i`DWJ?y351wLA&sBWtC6oD=f(Dp@h1aoSNQ$DzxrmQW{;HK#c2 zV}v+;Z#6)IVRW<}$473c8e@kio8>WPw}O7E_uMF#nbYm)V|w~V`EMqdy`0N@wD$R0 zxeL{<9XgujH17QRAAzJ%ZAq)#XyPXE*Bj&!6unA6*&x?rs8zJd1s0U|`!}KJn9A%2 zc|{qJyIC$CjP2VjKabtKyhEOj+U?N}c``o01^@FS8C})1Ww*+$TzU1}CMRO2pSw-& zjKfZE-zCpBwc7V^eB+>h7Y>~^$l8sfU8QZ`E%)=zz2h;t7CZOz$7Cm(Py0T3JN7aA zncN0RkIPZ`J>hX|?>4-FWQKwRaxVPvxEzBW|NQ}ZB)FcC6VS2B^|U-jvQbKR+IKrcz?pmBNp8F{P){Q-Xeoa`bOb{vw6 z$VILAkZdJrwacEDmvXn?C!UwD;o+a3ms>}Yh-@KlAzlRZx8WK|4;ikN3@>I&1hi;! z4!T8ZPigWD%I7Ix9+vC48zd%-fYuk~Xc`}(-Tk6G3x{w7ymdq_peYfW;}^0Ab!h}_ zI4aNN^O%>8%44}}<0nVum(jIRd-5e&Be+YWxnGgfB z6^K_PRZPIn?dy}HQAob&lk-elBesF-1Nki+q?QlmlPENAeTW(rb>72g&GGXtb8x3!^h8}BJYXlh0&kNXQW=VPRv7ejSi`w zp_VuW_k1Q#AsyOpK9f5L>C>(~C;!%hJr?s<`3dZ)qkoleM&B-N^4HkQ=+~t!J})me z*|#v8vs^zQEv>E64*yM_X`<*{^^fo6hqxEj!#~K=X=bGM{txm>ii*7GAM$+ze4yy3 zw1+B(#N0>}-$x+xdp6dQT3WlvSIUoR1;Q+r{7C3BDGfICRziZS40HM=RT5#WS$Pyy z!A^V|;X5`FelROhk;RBeAZJ9f9T`*-3CR{E%e0r3YV#~gIYIZFM@1!#TlwRX@*xV^ zex_WD9riU-Qc*d@%gVdd+|BT%h&>18c!;to_hO;FHpOLfN4D@`nhgJIQ*J}Wyxy){ zMGk2{u`6iVS~Z)hR1m3^nT6;o0*-1q7RpCjB<*&Gg42jr=#EnMq;Lgm&UWUMd8a$| zGrFvdxo-bzkG?N75q*`xKTLTGJ9bvIQjPZP@o429(xzP$b(89z%^UO+MOq$&Sn zKf~fedVB5|dhR&oN2FJKVVqLT%oiEH4{$MCNkk(M?@|)^ZU0Fw<)N#RWr3WE zyq-%wKS(FRFeAI%kFSZLpUe#YvIjAXIj7-!mokU;MZ$a0azV_%RRn&%etjJ;aY{M^ zJ0>biO{b)Ot$(62oty2P9OY4bHsI|XrHDl5gdM2kTM3bPA%bi{>1P`;$CZD^-=?&nWe|{9}^fv0R^sPjvn>ueJx(nRoS?RUB7MjrGQph3G8g zZD?&k`uJfvJ`%va#GH+I#)|M*98dD`dUlJywWdWUYM_lygL0%B@jDlk&v4e`nM{3_ zP)M8$y?Ak2Pd5sA+c}kucz}!dhY-N$T;pDcXS{xX2P4CY6GFYP?i}T;#iusC^#RQF zIBVQZO`clBi0>=9opqk|2*^EiE`hAW>j6G&F+OWJ=zkI{l;K>DPdjpsI#W1}1}*%w zE-Q69cX{Am3w&mAM#?cJ=IOQvoOq3~iNBPHya+-V9w>U1M(tTbGc@nPEzyksrE>c~ zpJ5YqY6sqe3|5DA@E*cuuS73}8P`?MDPB0IddBq?^A@el8gNSBQpOJu3HpGTg}ATv zS1AV=@z48$ds$?lABf&{$b>rm0lcgb$w21}Jowc|zI#=@2a5j4ViVCb!pS|$1}F_- z9o(^=ZH}FZovd@{l1~RgZ<0=}|28>|WSH-BhB!PpQ7nyDGmQoZof&Y)LLw=$mM}?4 zvGApA;S{9|59GCbrYL!YAI85{pfuXkWHvaqp}0`_2|u6zxKNpZYPLj$_^HYmTB<_v zRHcZPsoJemmC;1S2Sd|ka|qz`)0D??Z44`lluVo^oP&FdP@B2oiy~!JdnW3DN_CMC zSB8?c2vvMCBQ8vJnEfuW~}klti^ZiZt(bh3-R8Y z$M0fy7U`)An>;m(@xnU}m0YIg>1m5L1XJ>HhgMIS?P>G`yb}Y3EXOEP=JTVo48Dn2 z%yPyJps(?ivO6>MnDN2}dIgZ_%J9Ml_0E}kGN+rnW^j2eV@FAjQ4Sqi>fJbY)jONX z8g&NBxh-j(K@{F&Uo>4QK&Jq>f4XuFYUJNeSDrWsAVMmd1duPKiKsu&GYDYcSEdT9MQkhu)YxHQ=sq$-|S{YgQ|F z(KH9Vx*BatrUsqL7y|WPWvRSTwbgqX)m#Uh^eS-!(R_#Yg;%+Q(h>)(uU9^zm|xYP zv{B6XV}r67FMT;6yGhxiH~WPq#+X}K1G|%XH-@KdsZmX@W{=|y|mH+8Mi38)a`(pTM)a)0k7Yp9Je(% zqIJ}*jy8w3XQOfl2~WDZUBP)J9^`$#St&-T$m&pLnDNx^IdF9-$#8!M%E~tFw;jqB zGuf_{->#IQU$M6P4y7L_Fxq`vm1+~&uYGloQb^k8rsBvqoI=sk*=}(f2TlQ9m0z-R zi{=idhDE{CgJ{*dEMZy^Y=$x=^9x^5r-dDqly*ab3Vlq5VF^Vd`<5gRc9O zP4t2;Znxlzx7JDWsf3oeTJ8-Ue3JBm#>=fX|;&~YC0cE4f6D9l~gvN$p delta 17903 zcmb_^e_WJR*7$Sp%slr#&&)70%J3Tn6%_@A5(N_#6_tt<6_pfmgi$Aj;ipOdBqgO? zOq%qBW#+cNo299hJ-JCr#g=Vuu|>tUR8;JDZI?FQT`KCOzUR&iIz->k`_I?US#BA?mxQyDzSTZ1SOMj&zYbZ`e;rb zhl6jjFb}hgB(a`xmT4r#Q(#$4(mZD^)AZ?_JPKd8%HbZpbtKK?aITiyJ=3kT_1OZm zd6gXI`G;(Q`(~05eJ%ofl81+S-nYgQm*+ccDk=6P+miHEoIDR}E9GdY4pq)mPC$vD)9H5=eNUV=vz5C1(q{%r01t$lV}_FOdg&_+qvhi z;VHC(dyWsEK|8tUli_KGE>5Be#MJRn&y?U9^cvq&9;}rIlW3XPw1W|31|c^1bcLLz zja)7V4`iTtgeWHkg$Br?p( zBvG`DLD?v>X5UMh1pia~ufzX(?WIh^+N1WUQb+Y>x1%VPL@jp~&ZtVADM>S6{^y3( zQU9C}v({g`c6!XRjm{WnNuj&QSroHsEqwjCAzHsSe-eS+ZaOZqsH)smvLU9>T~b-@ zD6EWeZgmz`Rl3|IlX4(x6CDqCY@$)1*r_=m{^OP6_qWFSQjQw zO_Bl;mTL>XF?^-t1C@|-%@D2K`MqJe0e0x*@zbs_KBKhURqU#CZE+SGYB$B}uJJ8)=fq7zICfHOZl{I#eD(+Zk*RmH#Qy zyTas&w1WYJ$#W-kFft}{Yo)WK0(l@w9Y{w%rjvECYpk2~uwK^32sd!4lYu^5uBBZJ zeibfHqSqK4h>*kKy>K~+cKb6UBam{BKjVy$$I)JI<`&xLFZ?1x9&7Ap#FSa?kfeU* zd4~pT@saYQRzjdYLXLn>C&~%L0OkaFrcvRNR}TXaqwfZ zoRJ*I^N%n9dSJenlJ zshi|DO#UpAWccnTc~U6ia5ARUT~S%!Dp~K2$3bLa>am1|>!cL!AyXm%dlU3r?wTV8 zn#SQ$8;gMZC&?ylZkjw*rs*7xf6ZdFM`p=w7LoyFi)1$@or{p6nOy6!lgIQV%dd}F zf%@pn`1H~Ht`UEcS0DYbUVX%hmsiQ_X*P$}@7ZY4zFAwoS}q}>Ih>4N?yht$aTdDE zi%?`M9h)~-XK5eh%fkrCfv?ucx6@n>4gD+}e(GlmtSOLJlRWLE0(l-Kc`vM!4`ZT1 zk=#H?z81e;K0}BDj=AIm+J=qtG=JvLBoE5(k}s=y$XPxA;tMGsW^9rt4|8CiI=O_8 zC=Zid+Kx@~WlD-+W{G^7lxhDgk=ymUGH&%8oNR}V3V9c;;)lU77WP)k(@C{g1{oV!QLU4qgmS(mztoqDOkClL)=<2E^jm=0mqtAu)~QG02- ze6LK7YBTr9FUsUN{PBKyCZyaiA0o#!d`}1>C$#S#mYGUUzVL)h45s7W!Dg{6CY=ED zlk&LWlUPDea|s`0Lk4Rj(m7c8q?|&|!_Ft=J83hAzdR|s{OL^Cb5h<<&vVEaMeH!@ zDR~sVz+wJVSlGnjou`mVn9q4y-YN2}Ps=3}ng~*c!>qW zolnW@AmX$fOs{fCIxW|T8YG_ppPZI&6@}QwB*=S4ewMa!FrSfM!qo>3b{fXOS7+pj zIQFib_YNt1toAfO1@J`ncYN#X=bRIhtVnK^ulY1}YJ_ z>k{gK0nS~PL!jf5JfA2q=CVANDvH-$6kV3>sb)nok+2eXd9h=&St0sm5=n5EI?J&Y zcggjlF~yFOA_p!z)jk->ET}G7oXAP4PabEiaJn{Ztehzkgxy+D=|&CxrP`QsXN9wT zi?iq#DkYn*udZfX$?dSSS&pFg8-0b>o8_BHIQ-Bo&mhr|`ieYZ^e^*;jByp0ZZ0Ts z6g&Gk)V?CGA+hkqEAq_vSmipy;uK^U{z%>*8m~zBpj0>Otx}=_t(nBGt$kH~NJoQzHnwQ80nuMh|hnUUqq9o1L z`+ze8fHMV%UdmDe)jC@lqSo06hccfHpS&SQLGBxJC>p)uH{@};JcYo=S8&-o`-W`O z~ zuF6vh6uvIcHP;1Dsew=5#-aT9C;7IZT7^U{aXKp8B^8o{rtxh#4BT(aqtrUlLX9HT z`?_Oq@OS4>0HFo}U#T7vpbd)D=m$OO2R$ADdKB(xm6PGUcjSrcaRGl+kxn3d8%qxM zgI@>$Kj{SzJFP^`acp*!6go*5uC3fvbQ)(Zs|aSjBird|#b@wdZAA-y4!T?A>H6~u z+3)Eb9x`lxxzl+Mu4H0p5{l0`#k;n``9I56*z;$3I6bcb`b*KGBvQQ~`gBr}niTCX zf0pxfx@LuYj!lb%ocGbpv?!3&E{}&t-j_4!6$L(fU#?KDD17_+auj|zzK;xt{10UY zTR)JK3|AF`0&?aK|xFz(8BET|JlD6nuV8?he|n!08X=n?;K1 zkOafp7xzC_tJEi;G25@0Ah}(RgM)vOkL!r)&t2L_n6~yKd6*u}U&SYK zD_XwHPvr@ibbg4Febz{ZqtkZ&Q#pZRFFyZNF2J3^+)jDMFuO_;{1y#eS=47cG<3>w zYPc%cVU?t4xZEkPLVFVRnVh7=VljlxxOa0I! z1^)24yo97d_!qdYq`|B&J>i+4*mIHhM4r^>5jQ2^PIzZ&XR@GU30?@T(AVxzPvxpa00WlA|!I7kPOc zj`hlSkkiocjXV;y=-fB*Xh{ABYXXbLBAn>#xD)=)o($;h32)D=@kBZ)`ij}pko2vb zht#l%F!;^4@|@7~UZ5%(N2Cir_vu|9Fx3XZP7eu zaMz5)!p29JjRc0gfr27U_X^#qOI*ot_ROX?*DvU9*L$ptYmyE2C_Nx$MVkx9w zAcS~VC^%?hxGC07m{>nWU3kL6>ZoEAIy)B?pxny7Lcw>~SQI8ZZEP7XyYJfA1RVK~ zHnv1ZqO}}58%=1e7bgkU#`9q`&ImPIXehLXuzOMDXNF_{-J$Fo+;yxEW7#y(3v7pj zN0wuG4FIOWM;4QHXDDMl23@k7&$5mqfl2JnrN3sN5>t2my z<8Yb#M@eO?t{s96JBUb4KZ$pRmw&dfu0rdBIPlIe-Y31#DWHj6=MeCZvhpO_R5C_o~gJsS8G_WuO5e zb61S8YYMxIUiGG7pi5!%!&{AH-r{oi7FUt8JiwT=`bSxv!WNm^M2Ah1wbdxK8$I27 zBD8;{unCNI7$Gv9EvB7DC{AbNCv*<#W!KPNcKLeQWrR!VER9|>!uRQH3hg#R(o7aL ztlLP&FLqSBt12td6_g|_7c1kq9zREV131zn`oyhaQm+^)=K6fVA^m<}1N!6x4rRX) zewc~VMId7qy9txZS*%zwm=Lqyh{q6L&SHyvl`(MVY!-rgT{fGI!sMaZ>~__LfVdcl zh3w1OY&s1$`BrS9$>>G9GML*OD`4=y*(Al8JZ~L9?ayE<8S3_mEYzh$cqEIZW73|* zM$*Iq0>a8C!^~T~5cl57QZ0!l5;ecvf|qWLDzg`<($<)v)3*!)N5vTxB6*q5_l9 zr9_k={e;|-a%Wi;o}M|2(6hmf*d}LX6*yL~nWP#XU%_spWu`%^!jvj(71>{AlBx%F zw`yp21t@lR#{hrD1l4GlRYDgt=?)o94lc-w9T6- zjcPZMDH(-@?y8ajI1*Owb*Vc{knd(QX}cfoSvO0jScpy7;d?iG#MCLqgWj1Wb(!FJ zDceM^`Kw2lvB~;wlN1bJm$JxF#42`>-PqI|YzR+pmsX0ST8V^JR2Q#vZ|*jMr%afD zz;X7Nw4`bl%V_VwOP{YgI^4ej>P| zP8^i%V=I(+K`zcLCBmQfvDZ<>5ASE2Q5$r1EY+Ce?G2$;DNUPS$BcTKZidAf`Vh@k z&p0tL+mM3*0qOOY=p~fC$6I?ogQZWOV8dqf|H!39(Rpi9;Qdeb} znMBR=y-HGS()9R>L~{ zvf3FSs~u*((KFi|0k-GZgK8&Y(+;!LWrh+H9;gY=N&DzIc8bz#W~h6CJx;sLFi~R; zrAL4!Nxfz$HIqm{!?4&q+^ImkFTfMwL|Z{_mKY%#WCyTs05(tHWMTtD@Q%XoGh4sn-RJk~6_ zj7~r-{M3sk+2+T6_A*38D4A&&#E&a`7PAnpWa{wh$K?e1-I1UhRyfBuqAFR+72U>co{!%A zH_@5MzfRi#r{83Au+1BNvHp?m8Pb%~*ObfORB=F4E28<)k)%daa<@AWL=dkN4OtG%{X%|E6BN zN1v2^!#@;&bx2^Hl<}V7*Yyk`LNDPAJI_E)w`e>{kM3gk1)Iy!KTKQ1VST;Cps z!pj}ZXg?7&)N-DHk2_eXEZk)2q>rHeV-)MtkoqxOfaYiS$0+`%eKl`=jGn0XZfbZC zNhsXtDB0jFz=Le(IY|D5{SG(%?Vq4OcV0lBK%3?5U-PG|n>6{}uXM7|5zRqlN^Z$I zcS+G=w|ld&jU?u7SLMb6JQHsTf*(6kUYdRIYd*sUTYff}C04ZV&HhQd@(W|S5;S-< z@WJD1a1}Y|{h_Tv52Jkre6s#GxPAJBg%%1DU`xK{e zu9o_}a)%FMX$W74o|qT<*%0nFy08V5Tb#FIU+J7semg1iy`Ko>;iL*Kh4N9pBtns@ z5W!%Ss(lcVVf;}%e)JBe#y^l2!>x}@%8!^e@;_w<#UMXikF+xRSQ0Y_La2N0(iYR(s!Nm z*W37qRNrO^xM-}U?G|yp7_JpB;*DfvhoF?uX$cIX=(1e17a@VjB|HLV@}VPc7x~@rpH2+YHtr z+GfCw8yW>O{J4~_o@7Jt8<7&J7${*!6mOt}Xu}^TVfW$K14dxLJYk8U*BR`OA>IG2w_hwJWKJ}NTK zN*3mpY$|czU9zm)QBr|{J*YgQFk%X}2e;9slx3|eJ{ngSjTx90QV=ohWY=c{S06)xuU z8P;km(J#TRy>kn4v!c!ld<~D9Ts?>dI|K_h`sHg!00%aD8L-1ozH|+bpfy%_U=wN( zrq8V5(?vVpwpjtsO0FB!@A{$ruJ`p@By_RV;Kf}@4+ZwWad7_|f3g3KgZh6ou>VJg z^#7<8h=booaU6Fzc*5l4gOE=IBA*z7e8S(iKREcE$tMS4#xrEw=>f@!$AGQ@0X*#+ z=4mVBtmCEhoYnK#v?wSo6vYQl{46G5H#aE8XZwY6`Q2MEiPV+9^Xk9U$M)EL~d9bJL3N=PRj1X76}cvN%-L4 zQ>#=ddQkIXH2rwJ?_E#=Mk7LOge@P`i~#gC6Mj7&%MTbQ+QIjDh%V=m@UP8ie-h#K zyZ9Y=C;U=AkAjk7&hSQf`X=-|5`9n=n|K7Cz8%}kxlzb5byV|^(4lC&(p_eQwW=I}erj|n51lsz zM#>o^7r8^lFBdt2@*@(OXOr^0?8v~qRr5u$!zMZWTzXF@k14u>oc2cAk|@D= z93k>P%0F0)h%9kqFv<;}nCgO3N4cxA`bLqyJm9_J`n%*5&ADun%iCNiJg%1`mlO{g z0s{YBgRY<%$03vrg2OKT9InL&SLGke(NZ3=tJ+4U_-AWif~^={<``NoRS%-?8p=xS zxah}@L2xxg;c9$vHMZa>FkFWbTsTYv+>Qa8pmXuz(e;SpRr5Lo98jKmA5xu97k*d9 z?~J<6Hw>f3E(ZpG*9)-h8E6N>25t%@sR287!$Un3s27I3- z790F=3y+Gpf)+`bs<{}_a=Uv2+8tj6KAI46H;;&EwUHQ6w+w^jF>F+a^kXaw%Q8@E`fjYkn3MwRezG1!%~Ef6$kE03b>HgIpnrP!B_!LV)-bp+R8~Gu$^w=9^GsMw08=DPVr4 zo&7dnwB4?IaJ@`~BlqBGOESEE51)wV4*wQOHH_TGC(|Yc7H{Jjdc1Xb$I~-?3|!cT zt8E^9u#Hbb7D%-oYp1Dbhzfcru7_l3Zb8!1^>}<0McJAgA z@hTOb-Yt4!g4h~94a_xoK-TNc%){=iufZn6!Bc}9%QSddB>8Zy1{re>?Dz6idch2f z?!`UI6*K(mUVbxeGsES3`E1%{_RKVogxEbOYj|NYYY%VK8-mC~5Ywi&L(d*Q66x9Y zV)xP^V=teoFAMU2Zv>vbSXl+n?d8)bo;qLW-!Y4oHU@dlS%M*_mXFf61^K@~f`heu zB*g&yQgHcJBZF$YAk(e+299LoKw!-url}KG8xBLPm)k4Da2?qwz$| zbKDjTY#)zAc8=bM?oJvw_8}kZ;K6-dT$#1(S>Rng*Efzg!U`iORw<53XW{aTil58 zmD-wjIM?B4R2$wEpAFfx#EI0`YnBf5$nh;++x0O&M!jXRoqU{5m#8Ldw|yZ_ z*TTWk#lOXPv%J4y$8gm2?|i)ub-?ux)Vv-J&-{b`5izr2`#*U-3s=MRlHLI||3s@8 z-_4hz_qd~*Pc>wyx$15>UdLm!54-t$MhuEP-N!@mV-INgoCgt3{xk;sh^Pc(dU)(#CRS{t$9Rz#sv+3!ydO2 zv^;t2I7E!(U(iLfV^(CN4mq{PxT zRYS-vWB>#ZH-p{?Vg}4*OPedgGovWq3K5WFiX83T9dGq4ETGJ@+!&HP9-a5j+6EKH05u2 z9e;efvL5Gx-=fSVRod;hD0fqwlh@Lf-=iq(nyKUww0P~a6#Rq`OtY1nF_}GExg7<# zezsDH!KE}qxgU>p>ob&ZQJib%DF4APTke^wd`$2{`$FXhyi74_U5gP^?l2-7W8rP95&~D3D6=uTOS3E$qv^nSvt>#h z#Rx4mSGfak7V>hHn{_sm9Uc(*aQHY^$wpmHSgx!f=o{=^p}0|A?eNVCWdX8o=1S!z z9a{LZRmylg$}J*v z=SY<@l_*+kmC_;_gsqCIi)uE-N!Deq(hB1J<=$V3=nYd^Oj^@6Wt=|tifODA=8fQ~ zApSHs*qcWBcaxAGmv;b@olE7Pg={2rx5Czi7@ z`;<5lAoRbWJZTWi-CYNi5fr0s?mwVx##H<6fHK2?@}BY#ij2-+J}WdR0X{sWWZcLt zJgmHcv-;CvWeys#IiR4`w!w~v6}-IHetcM|BGKXI1j%%VtAdChYeG(yv&y+leBe?+ zq-gEn5v3svCw|m($^u=Y`Ek+6czEbJWd@q`*5^>p?ON*dN{^WA3BOm0a6x+D_eu;d znP-2m9Kv~ix>>1)OD`$I@O{QB%6+i%qGC2=V)(WmK6yn+fnygHJ4(P~uPP(qy^Bf& z-a`NDqB233W6p)BCS?kWMNX6Qgbww!_p&k)rQ!zVgFd2N-{lX_LQ1J;iWf~ z@$9@HYR9X%CNxApzNz%!`uz1Dm6akk>ejcEX(HY8mQp2Ljql%5B1M!)=v8G3Mu}+I zSCzR`_#O|wt*jSOAy_a1!rno%*J{=#y`#)Wl{LebR%Hf;glNyV3VYgahRAo7dFY~m z<6UK(2=loAUF8ynd1$x2r)UI^r!@WhN~%RTF1ye*)0TEA?=sqNhVk9Xt*i-E#1v29 zu_`58d$3!Xt;0q7-LDl8(Ht{}sdLbto#|2jTW?AXDki8-MdfaHrI=egJQS*)o{$za zO~Q>`v7>yGL|ihlbBUw}rAi4)5N;W6TD*~B#WGrm#&4BWeMV4b&>^Bs1JifPBdD=Y zey3bTv$3TQ?JQctnLj8~4Y5e03aWolCe!MmUsxjywK7S;@7{uxGF-ZT|D$pMwL9x4 zH1Bmm_3($ElrB<#=#+Xd+Q-R6y@jM{n}}LNNTb$G)i(_|k1uldcOtMyQMb_xL0X5R zV*E-|kk+TF%XQ{-Zi-oqTNP(zR*_v>9i-0FQM`WsjZHlw?wP%8=@M*NLxVbHlF5VT zEv;Ht?5e1MPg;~{XkyADEzhn-(EkV5gn!pl%ZJ1AF!eWbcMuBAqhj&Gu$OSvLVJQ> zYPecVdxPLaxcVB(Yz}OWP%|xk2q}>+nPek}`h(zdggQx=$BEVxp)MwPg*himjT3AA z#%T3(6usL=sNzNmMyO-Zgk2n={*~%o96!JSSC#Bc`c~@P_5CY3e#%o(1n! zrm6R%Fx{D|-hme-CsWl9Tm|-}sjE<=K2K9OVK){{S6{@w@mtitn2++XfC>KBE$ZJ1 zD*lJ*C^Gfhs+npA*PrM3W#!}Z)ks_sE@C3SlWd=_9+}vNtZ%R^5<ty0I*77OTBtF!49iSE*x*0WtkL~jelcd*;dRjat+JcEqRi@omSIiLx&|{N=8-X zMt8aE9;evjcUtx@oV(FkxCy_?z0+ClUW%d6&hl$)|7>sR(o$#Pa{L$yPrbXDHPu_T zY^%Sdhgp-nB@3J-&I;GAie5Iw2a@eB$HfNE^7`16@dM=X%QL<|!JG4adf8>!zj*FO zNBIV)cd=cz6{FFGa9y+PpXUV=;}Azy3mp|34ZMj=@!{b&)teoz;vUQXGP2P+*In*3 zMQw4G%ihoLqakFiIs@-{VcA+0zmkSuuT`Hz&6@2{=b>iRI@Ak9HCug0D5*ABSg3B% z^;yE9xlnyuA8+lqz(Yl>tc(!)uM)fHw=UMZuF}N-tP$z1acd6Y3{^yW-vn~%8yMpcNeC@Gf z^)4gsK9p)zM^Pip+tgjC5%t?pv|R9~ZR$bPYJ^PE$z_8{Wl;40>Ak3{wATm+_o#I= zkwf#>h7e1yZoK!9xWIeTR|T{8s`n36hW6^L;!ip>SbgV!)(Xew%2d3ed+HfA3+B|S z8T7an_MK6;bIG*HS)F>)s+rEBm4Zq8)Rjt~#kAR3Vm*hqg!|O6f$Vv!c6Oh-kJ4tm zC%Iq!0&m1%~d{7PMp%cK?lyI!r;AwRTx4ybq0uvY5~Bwv6x%}#Mo<94t2 z@+w{MDnT3Hpg!W~UcRrS*Mk!pz_w*XdkfTiL=gOfM)d@3v%*)6D*hb~E5sea20E?K za71k}U9$#zsrOiWt=hUr)O}=dQSYNFF1vWa^UPx^{y_@(`Z0AbCR2{7D^OB?eN3&@ z66c> zt9046T3~0?ow$tNcShZzv@kJ&`bL|Wz&XU9PsRL-bGQLA_geh7(#LJ*ZSeH7>X)It zmYB+|_{SECoLjBeD|>Bl>N&N~oNc>a)MtZdpI0|gyiyo>9+#RHs5*}pz6Dy&qeX9l N;1|>#x_+DVe*vS$_$UAX diff --git a/substrate/frame/revive/rpc/src/lib.rs b/substrate/frame/revive/rpc/src/lib.rs index 3cdb55f6f081a..ebe7dc7fc476a 100644 --- a/substrate/frame/revive/rpc/src/lib.rs +++ b/substrate/frame/revive/rpc/src/lib.rs @@ -163,7 +163,16 @@ impl EthRpcServer for EthRpcServerImpl { async fn send_raw_transaction(&self, transaction: Bytes) -> RpcResult { let hash = H256(keccak_256(&transaction.0)); - let call = subxt_client::tx().revive().eth_transact(transaction.0); + + let transaction = match TransactionSigned::decode(&transaction.0) { + Ok(tx) => tx, + Err(err) => { + log::debug!(target: LOG_TARGET, "Failed to decode transaction: {err:?}"); + return Err(EthRpcError::RlpError(err).into()); + }, + }; + + let call = subxt_client::tx().revive().eth_transact(subxt::utils::Static(transaction)); self.client.submit(call).await.map_err(|err| { log::debug!(target: LOG_TARGET, "submit call failed: {err:?}"); err diff --git a/substrate/frame/revive/rpc/src/receipt_extractor.rs b/substrate/frame/revive/rpc/src/receipt_extractor.rs index 0e5273d4f7501..46bee0d63fcf7 100644 --- a/substrate/frame/revive/rpc/src/receipt_extractor.rs +++ b/substrate/frame/revive/rpc/src/receipt_extractor.rs @@ -112,10 +112,10 @@ impl ReceiptExtractor { .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 signed_tx = call.signed_transaction.0; + let transaction_hash = H256(keccak_256(&signed_tx.signed_payload())); + let from = signed_tx.recover_eth_address().map_err(|_| { log::error!(target: LOG_TARGET, "Failed to recover eth address from signed tx"); ClientError::RecoverEthAddressFailed diff --git a/substrate/frame/revive/rpc/src/subxt_client.rs b/substrate/frame/revive/rpc/src/subxt_client.rs index 08d9343797e31..f82635f206823 100644 --- a/substrate/frame/revive/rpc/src/subxt_client.rs +++ b/substrate/frame/revive/rpc/src/subxt_client.rs @@ -47,6 +47,10 @@ pub use subxt::config::PolkadotConfig as SrcChainConfig; path = "pallet_revive::evm::api::rpc_types_gen::GenericTransaction", with = "::subxt::utils::Static<::pallet_revive::evm::GenericTransaction>" ), + substitute_type( + path = "pallet_revive::evm::api::rpc_types_gen::TransactionSigned", + with = "::subxt::utils::Static<::pallet_revive::evm::TransactionSigned>" + ), substitute_type( path = "pallet_revive::primitives::EthTransactInfo", with = "::subxt::utils::Static<::pallet_revive::EthTransactInfo>" diff --git a/substrate/frame/revive/src/evm/api/rpc_types.rs b/substrate/frame/revive/src/evm/api/rpc_types.rs index 09b9f67271504..a5a68ad5a906e 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types.rs @@ -289,7 +289,7 @@ impl GenericTransaction { input: tx.input.into(), nonce: Some(tx.nonce), value: Some(tx.value), - to: tx.to, + to: Some(tx.to), gas: Some(tx.gas), gas_price: Some( base_gas_price @@ -366,7 +366,7 @@ impl GenericTransaction { input: self.input.to_bytes(), nonce: self.nonce.unwrap_or_default(), value: self.value.unwrap_or_default(), - to: self.to, + to: self.to.unwrap_or_default(), gas: self.gas.unwrap_or_default(), gas_price: self.max_fee_per_gas.unwrap_or_default(), max_fee_per_gas: self.max_fee_per_gas.unwrap_or_default(), @@ -432,7 +432,7 @@ fn from_unsigned_works_for_7702() { input: Bytes::from(vec![1u8]), nonce: U256::from(1), value: U256::from(1), - to: Some(H160::zero()), + to: H160::zero(), gas: U256::from(1), gas_price: U256::from(20), max_fee_per_gas: U256::from(20), 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 9cb21d3af5927..132befef1c884 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -740,7 +740,11 @@ pub struct Transaction7702Unsigned { /// nonce pub nonce: U256, /// to address - pub to: Option
, + /// + /// # Note + /// + /// Extracted from eip-7702: `Note, this implies a null destination is not valid.` + pub to: Address, /// type pub r#type: TypeEip7702, /// value @@ -1098,4 +1102,274 @@ mod tests { // Verify that deserializing and serializing leads to the same result assert_eq!(block, block_roundtrip); } + + #[test] + fn test_hashes_or_transaction_infos_deserialization() { + let json = r#"["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"]"#; + let result: HashesOrTransactionInfos = serde_json::from_str(json).unwrap(); + assert!(matches!(result, HashesOrTransactionInfos::Hashes(_))); + + let json = r#"[]"#; + let result: HashesOrTransactionInfos = serde_json::from_str(json).unwrap(); + assert!(matches!(result, HashesOrTransactionInfos::Hashes(_))); + + let json = r#"[{"invalid": "data"}]"#; + let result: Result = serde_json::from_str(json); + assert!(result.is_err()); + + // Real block representation. + let json = r#"[{ + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x693ca5c6852a7d212dabc98b28e15257465c11f3", + "gas": "0x70bdb", + "gasPrice": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "maxFeePerGas": "0x47ca802f", + "hash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "input": "0x09c5eabe000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a90000cca0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000020000000000000000000000035c9618f600000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000002374fed200000000000000000001528fd550bc9a0000000000000000351e55bea6d51900dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000005c0c965e0000000000000000000000000000000000004c00000001000000000000000000000000000000000000002e24cd1d61a63f43658ed73b6ddeba00010002000100000000000000000000000000000000000000000000000039d622818daae62900006602000000000000000000002ff9e9686fa6ac00000000000000000000000000007f88ca000000000000000004caaa5ba8029c920300010000000000000000052319c661ddb06600000000000000000001528fd550bc9a0000000000000000005049606b67676100011c0c00000000000000002ff9e9686fa6ac000000000000000000000000035c16902c0000000000000000000000000000000200000000000000000000000000000002000073d53553ee552c1f2a9722e6407d43e41e19593f1cbc3d63300bfc6e48709f5b5ed98f228c70104e8c5d570b5608b47dca95ce6e371636965b6fdcab3613b6b65f061a44b7132011bb97a768bd238eacb62d7109920b000000000000000005246c56372e6d000000000000000000000000005c0c965e0000000000000000000000002374fed20000000000000000000000002374fed200011cc19621f6edbb9c02b95055b9f52eba0e2cb954c259f42aeca488551ea82b72f2504bbd310eb7145435e258751ab6854ab08b1630b89d6621dc1398c5d0c43b480000000000000000000000000000000000000000000000000000", + "nonce": "0x40c6", + "to": "0x0000000aa232009084bd71a5797d089aa4edfad4", + "transactionIndex": "0x0", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xb3e71bd95d73e965495b17647f5faaf058e13af7dd21f2af24eac16f7e9d06a1", + "s": "0x58775b0c15075fb7f007b88e88605ae5daec1ffbac2771076e081c8c2b005c20" + }]"#; + let result: HashesOrTransactionInfos = serde_json::from_str(json).unwrap(); + assert!(matches!(result, HashesOrTransactionInfos::TransactionInfos(_))); + + // Complex real block representation. + let json = r#"[{ + "accessList": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x650f69dead2eeee68214ac0bc29f23bc7e2f82c89293ef4b23dc1591bc737c67" + ] + }, + { + "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", + "storageKeys": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x88d075c869ce192f20da9bfc0d2db81b73b4aa4af2ce17e52384cb021d06bd06" + ] + }, + { + "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", + "storageKeys": [] + }, + { + "address": "0x800c32eaa2a6c93cf4cb51794450ed77fbfbb172", + "storageKeys": [] + }, + { + "address": "0x366aa56191e89d219ac36b33406fce85da1e7554", + "storageKeys": [] + }, + { + "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", + "storageKeys": [] + }, + { + "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", + "storageKeys": [ + "0xa3b7a258ccc3c19490a94edab51a442dd2eeac4318bddede8cd899595d08f28a" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0xb84fbcd09e20fa700ddef111765a21785d2290b3c7c8719a27e4b60b59126522", + "0xda591c30fe54b3edd3bcb5d0d916c5c472e3ad81645d0312a5e73f3708e8708b", + "0x0bc90c98aed598fd15d9075ded522981aeb2ee369c8117e46bd494dc17c29999", + "0xdbde769b5281dad4214cceeb1871ab281fb8fd2a4443141db1078642029ae248", + "0x9d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dc" + ] + }, + { + "address": "0x60bf78233f48ec42ee3f101b9a05ec7878728006", + "storageKeys": [] + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x44624a8a323b583a84b5812478c554a5e284223b469e9f7039175023c0e54c3e", + "0x3ad18d7747f05925bebbb1df8860daa9cd402d902420f95ce10c49792803c3d6", + "0xcc236083e86ee3df0f3160002f381f1404bd44c4dec1322196f34d52548202f5", + "0x88afba62e6432e4d0a3e39a2be587d39c0b93368d66cedb0531bb5292040a552", + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x5cfccd15aa8eff180914a82b4caf3b39b3c62421a17404ea7a7d0c80fe766666", + "0x659f5b53123b3e7a886575e106645d4d7c5af120440f3f409542b3987fa1ea07", + "0x77d5014beb071d1c3dabbdbdba61f9a5cc3ffedca11c102ef7e2fae619d04e12", + "0x6e91f60197c982353033e86512311820683e018e0f39963c5d00c2c490bc45d3", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3" + ] + }, + { + "address": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", + "storageKeys": [] + }, + { + "address": "0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45", + "storageKeys": [] + }, + { + "address": "0x1346d1ee3fb1b65fecfcb65c149ca0702c286f53", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0xc0d1c00078410fd0164580b0bad93d8a579580d06cf45fc2696a823498097b8a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "address": "0x899d774e0f8e14810d628db63e65dfacea682343", + "storageKeys": [ + "0xd64773870f40323194fda2d1773a23183ba723843a4aa8fb90d5eaf49c342f55", + "0xef7cf59cb40a7ae1b5e03b08af7ed07c83f41406ca13eaeed923c1f2fc8bbb2a", + "0x70f537a6c3c5e23e6deecb5baafd173071015ed695aa4c5ab2072a13f49234e4", + "0x8eb102192bd88c1782b7bb42421db4a5cda302102196a664e54ad03c03e19e1e" + ] + } + ], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x6bf97afe2d2c790999cded2a8523009eb8a0823f", + "gas": "0x15d818", + "gasPrice": "0x65045d54", + "hash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000899d774e0f8e14810d628db63e65dfacea682343000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000899d774e0f8e14810d628db63e65dfacea6823430000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000a374bf76d4c42c8c8c00000000000000000000000000000000005cd4d66627e732daca892b48abb16400000000000000000000000000000000000000000000000006b06fe010314e3e0681000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000006ac7510475c22e2e3060000000000000000000000000000000000000000000000000000000068a5d4fb98b80e71c53f4b325f7753088b0d8ee55933f28c326277958a47f93bc54a095400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bebc200000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000414a13957a7c51fc3c1579a62c6160cf8fdf6cbdb186688f8a71c5085ce84e5cfe6cdd79d18f7e34d99a555aaf04a2c7787f9ad58f7bab041c8a94500b5f051a201b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060bf78233f48ec42ee3f101b9a05ec78787280060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001e4760f2a0b000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000001388000000000000000000000000000000000000000000000000000000000000000e4d505accf000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000720d7562000000000000000000000000000000000000000000000000000000000000001c219463f0255ddbed6266f8998f2c3d706c12eaf9de73c3b9f082b0a583fce90546a423f6fe118493aa5f9f57adfd73963e67bb89e6b20faf95821275b6b1607e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000340000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002644dcebcba0000000000000000000000000000000000000000000000000000000068a5ce680000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff860000000000000000000000000000000000000000000000002d2e61b16af396e5000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000bebc20000000000000000000000000000000000000000000000000000aa03ac85e927d00000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000000000000000006d9aa07971bc4e6731b47ed80776c5740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000419969dd20c05e5c0ca3d82fed5f912ae3678db7452adc4bffeb8ae098920f9e2a7804cfa5e1e42f85209c494f49914c39258c7668a992f59a01b2fe2d73d445771b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000899d774e0f8e14810d628db63e65dfacea68234300000000000000000000000000000000000000000000000000000000000027100000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000aa03ac85e927d00000000000000000000000000000000000000000000006b3d96e8c277e88e06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", + "maxFeePerGas": "0x76630193", + "maxPriorityFeePerGas": "0x41351d80", + "nonce": "0x18733", + "r": "0x6f71e41e8630b35dea48e57d1afd291651a5f15c338133c4976267ac00dd9e56", + "s": "0x45689f732b0a8e6be5bdf5a45db561f33cae7e976f8e8ebdbcbe2e51dc40869c", + "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "transactionIndex": "0x7", + "type": "0x2", + "v": "0x0", + "value": "0x0", + "yParity": "0x0" + }]"#; + let result: HashesOrTransactionInfos = serde_json::from_str(json).unwrap(); + assert!(matches!(result, HashesOrTransactionInfos::TransactionInfos(_))); + + let json = r#"[{ + "accessList": [], + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "chainId": "0x1", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gas": "0x565f", + "gasPrice": "0x23cf3fd4", + "hash": "0x2c522d01183e9ed70caaf75c940ba9908d573cfc9996b3e7adc90313798279c8", + "input": "0x", + "maxFeePerGas": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "nonce": "0x2c5ce1", + "r": "0x4a5703e4d8daf045f021cb32897a25b17d61b9ab629a59f0731ef4cce63f93d6", + "s": "0x711812237c1fed6aaf08e9f47fc47e547fdaceba9ab7507e62af29a945354fb6", + "to": "0x388c818ca8b9251b393131c08a736a67ccb19297", + "transactionIndex": "0x7a", + "type": "0x2", + "v": "0x0", + "value": "0x12bf92aae0c2e70", + "yParity": "0x0" + }] + "#; + let result: HashesOrTransactionInfos = serde_json::from_str(json).unwrap(); + assert!(matches!(result, HashesOrTransactionInfos::TransactionInfos(_))); + } + + #[test] + fn test_block_decode() { + let json = r#"{ + "baseFeePerGas": "0x23cf3fd4", + "blobGasUsed": "0x0", + "difficulty": "0x0", + "excessBlobGas": "0x80000", + "extraData": "0x546974616e2028746974616e6275696c6465722e78797a29", + "gasLimit": "0x2aea4ea", + "gasUsed": "0xe36e2f", + "hash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logsBloom": "0xb56c514421c05ba024436428e2487b83134983e9c650686421bd10588512e0a9a55d51e8e84c868446517ed5e90609dd43aad1edcc1462b8e8f15763b3ff6e62a506d3d910d0aae829786fac994a6de34860263be47eb8300e91dd2cc3110a22ba0d60008e6a0362c5a3ffd5aa18acc8c22b6fe02c54273b12a841bc958c9ae12378bc0e5881c2d840ff677f8038243216e5c105e58819bc0cbb8c56abb7e490cf919ceb85702e5d54dece9332a00c9e6ade9cb47d42440201ecd7704088236b39037c9ff189286e3e5d6657aa389c2d482e337af5cfc45b0d25ad0e300c2b6bf599bc2007008830226612a4e7e7cae4e57c740205a809dc280825165b98559c", + "miner": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "mixHash": "0x11b02e97eaa48bc83cbb6f9478f32eaf7e8b67fead4edeef945822612f1854f6", + "nonce": "0x0000000000000000", + "number": "0x161bd0f", + "parentBeaconBlockRoot": "0xd8266eb7bb40e4e5e3beb9caed7ccaa448ce55203a03705c87860deedcf7236d", + "parentHash": "0x7c9625cc198af5cf677a15cdc38da3cf64d57b9729de5bd1c96b3c556a84aa7d", + "receiptsRoot": "0x758614638725ede86a2f4c8339eb79b84ae346915319dc286643c9324e34f28a", + "requestsHash": "0xd9267a5ab4782c4e0bdc5fcd2fefb53c91f92f91b6059c8f13343a0691ba77d1", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "size": "0x14068", + "stateRoot": "0x7ed9726e3172886af5301968c2ddb7c38f8adf99c99ec10fdfaab66c610854bb", + "timestamp": "0x68a5ce5b", + "transactions": [ + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x693ca5c6852a7d212dabc98b28e15257465c11f3", + "gas": "0x70bdb", + "gasPrice": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "maxFeePerGas": "0x47ca802f", + "hash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "input": "0x09c5eabe000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a90000cca0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000020000000000000000000000035c9618f600000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000002374fed200000000000000000001528fd550bc9a0000000000000000351e55bea6d51900dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000005c0c965e0000000000000000000000000000000000004c00000001000000000000000000000000000000000000002e24cd1d61a63f43658ed73b6ddeba00010002000100000000000000000000000000000000000000000000000039d622818daae62900006602000000000000000000002ff9e9686fa6ac00000000000000000000000000007f88ca000000000000000004caaa5ba8029c920300010000000000000000052319c661ddb06600000000000000000001528fd550bc9a0000000000000000005049606b67676100011c0c00000000000000002ff9e9686fa6ac000000000000000000000000035c16902c0000000000000000000000000000000200000000000000000000000000000002000073d53553ee552c1f2a9722e6407d43e41e19593f1cbc3d63300bfc6e48709f5b5ed98f228c70104e8c5d570b5608b47dca95ce6e371636965b6fdcab3613b6b65f061a44b7132011bb97a768bd238eacb62d7109920b000000000000000005246c56372e6d000000000000000000000000005c0c965e0000000000000000000000002374fed20000000000000000000000002374fed200011cc19621f6edbb9c02b95055b9f52eba0e2cb954c259f42aeca488551ea82b72f2504bbd310eb7145435e258751ab6854ab08b1630b89d6621dc1398c5d0c43b480000000000000000000000000000000000000000000000000000", + "nonce": "0x40c6", + "to": "0x0000000aa232009084bd71a5797d089aa4edfad4", + "transactionIndex": "0x0", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xb3e71bd95d73e965495b17647f5faaf058e13af7dd21f2af24eac16f7e9d06a1", + "s": "0x58775b0c15075fb7f007b88e88605ae5daec1ffbac2771076e081c8c2b005c20" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x4791eb2224d272655e8d5da171bb07dd5a805ff6", + "hash": "0xda8bc5dc5617758c6af0681d71642f68ce679bb92df4d8cf48493f0cfad14e20", + "transactionIndex": "0x19", + "gas": "0x186a0", + "gasPrice": "0x6a5efc76", + "maxPriorityFeePerGas": "0x6a5efc76", + "maxFeePerGas": "0x6a5efc76", + "input": "0x2c7bddf4", + "nonce": "0x6233", + "to": "0x62b53c45305d29bbe4b1bfa49dd78766b2f1e624", + "value": "0x0", + "type": "0x4", + "accessList": [], + "chainId": "0x1", + "authorizationList": [ + ], + "v": "0x1", + "yParity": "0x1", + "r": "0x3b863c04d39f70e499ffb176376128a57481727116027a92a364b6e1668d13a7", + "s": "0x39b13f0597c509de8260c7808057e64126e7d0715044dda908d1f513e1ed79ad" + } + ], + "transactionsRoot": "0xca2e7e6ebe1b08030fe5b9efabee82b95e62f07cff5a4298354002c46b41a216", + "uncles": [], + "withdrawals": [ + ], + "withdrawalsRoot": "0x7a3ad42fdb774c0e662597141f52a81210ffec9ce0db9dfcd841f747b0909010" + }"#; + + let _result: Block = serde_json::from_str(json).unwrap(); + } } diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 50400ad723cbd..6e74aa87ea1d4 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -22,40 +22,13 @@ use crate::evm::{ }; use alloc::{vec, vec::Vec}; -use alloy_consensus::RlpEncodableReceipt; -use alloy_core::primitives::{bytes::BufMut, Bloom, FixedBytes, Log, B256}; +use alloy_consensus::private::alloy_trie::{HashBuilder, Nibbles}; +use alloy_core::primitives::{bytes::BufMut, B256}; use codec::{Decode, Encode}; use frame_support::weights::Weight; use scale_info::TypeInfo; use sp_core::{keccak_256, H160, H256, U256}; -/// The log emitted by executing the ethereum transaction. -/// -/// This is needed to compute the receipt bloom hash. -#[derive(Encode, Decode, TypeInfo, Clone, Debug)] -pub struct EventLog { - /// The contract that emitted the event. - pub contract: H160, - /// Data supplied by the contract. Metadata generated during contract compilation - /// is needed to decode it. - pub data: Vec, - /// A list of topics used to index the event. - pub topics: Vec, -} - -/// The transaction details needed to build the ethereum block hash. -#[derive(Encode, Decode, TypeInfo, Clone, Debug)] -pub struct TransactionDetails { - /// The RLP encoding of the signed transaction. - pub transaction_encoded: Vec, - /// The logs emitted by the transaction. - pub logs: Vec, - /// Whether the transaction was successful. - pub success: bool, - /// The accurate gas used by the transaction. - pub gas_used: Weight, -} - /// Details needed to reconstruct the receipt info in the RPC /// layer without losing accuracy. #[derive(Encode, Decode, TypeInfo, Clone, Debug, PartialEq, Eq)] @@ -64,190 +37,839 @@ pub struct ReceiptGasInfo { pub gas_used: U256, } -/// A processed transaction by `Block::process_transaction_details`. -struct TransactionProcessed { - transaction_encoded: Vec, - tx_hash: H256, - gas_info: ReceiptGasInfo, - encoded_receipt: Vec, - receipt_bloom: Bloom, +impl Block { + /// Compute the trie root using the `(rlp(index), encoded(item))` pairs. + pub fn compute_trie_root(items: &[Vec]) -> B256 { + alloy_consensus::proofs::ordered_trie_root_with_encoder(items, |item, buf| { + buf.put_slice(item) + }) + } + + /// Compute the ETH header hash. + pub fn header_hash(&self) -> H256 { + // Note: Cap the gas limit to u64::MAX. + // In practice, it should be impossible to fill a u64::MAX gas limit + // of an either Ethereum or Substrate block. + let gas_limit = self.gas_limit.try_into().unwrap_or(u64::MAX); + + let alloy_header = alloy_consensus::Header { + state_root: self.state_root.0.into(), + transactions_root: self.transactions_root.0.into(), + receipts_root: self.receipts_root.0.into(), + + parent_hash: self.parent_hash.0.into(), + beneficiary: self.miner.0.into(), + number: self.number.as_u64(), + logs_bloom: self.logs_bloom.0.into(), + gas_limit, + gas_used: self.gas_used.as_u64(), + timestamp: self.timestamp.as_u64(), + + ommers_hash: self.sha_3_uncles.0.into(), + extra_data: self.extra_data.clone().0.into(), + mix_hash: self.mix_hash.0.into(), + nonce: self.nonce.0.into(), + + base_fee_per_gas: Some(self.base_fee_per_gas.as_u64()), + withdrawals_root: Some(self.withdrawals_root.0.into()), + blob_gas_used: Some(self.blob_gas_used.as_u64()), + excess_blob_gas: Some(self.excess_blob_gas.as_u64()), + parent_beacon_block_root: self.parent_beacon_block_root.map(|root| root.0.into()), + requests_hash: self.requests_hash.map(|hash| hash.0.into()), + + ..Default::default() + }; + + alloy_header.hash_slow().0.into() + } } -impl Block { - /// Build the Ethereum block. - /// - /// # Note - /// - /// This is an expensive operation. +/// The Incremental Hash Builder is designed to efficiently compute the transaction and receipt +/// trie roots in Ethereum, minimizing memory usage. This is achieved by constructing the Merkle +/// Trie incrementally, rather than storing all values in memory simultaneously. +/// +/// ## ETH Trie Overview +/// +/// In Ethereum, the trie calculates the hash of a node (leaf) by combining the remaining key path +/// with the RLP-encoded item, as follows: +/// +/// ```ignore +/// hash (remaining of the key path ++ RLP (item)) +/// ``` +/// +/// Because the hash incorporates the remaining key path, computing the trie root accurately +/// requires more than just the hash of the RLP-encoded item (hash(RLP(item))). To address this, the +/// Incremental Hash Builder leverages the internal structure of the Ethereum trie to optimize +/// memory usage. +/// +/// The Ethereum trie is ordered by the RLP-encoded index of items (RLP(index)). This ordering +/// allows the trie to be built incrementally, provided the items are added in a consistent order. +/// We leverage the following property of encoding RLP indexes to avoid sorting the items (and +/// therefore, we avoid knowing the number of items in advance): +/// +/// ```ignore +/// rlp(1) < rlp(2) < ... < rlp(127) < RLP (0) < rlp(128) < ... < rlp(n) +/// ``` +/// For more details see: +/// +/// +/// This property allows the builder to add items in the order of indices 1, 2, ..., 127, followed +/// by index 0, and then index 128 onward. In this implementation, the focus is on placing the first +/// RLP encoded value at index 128. +/// +/// The primary optimization comes from computing the hash (remaining_key_path ++ RLP(item)) as +/// early as possible during the trie construction process. This approach minimizes the memory +/// required by avoiding the need to store all items simultaneously. +/// +/// For transactions, from real ethereum block, we can observe the following: +/// - worst case we use 90% less space +/// - best case we use 99.5% less space +/// +/// ```ignore +/// hash max 8042 +/// hash min 444 +/// hash total 79655 +/// hash saved worst case 0.1009603916891595 +/// hash saved best case 0.005574038039043374 +/// ``` +/// +/// For receipts, from real ethereum block, we can observe the following: +/// - worst case we use 94% less space +/// - best case we use 99.3% less space +/// +/// ```ignore +/// hash max 7249 +/// hash min 760 +/// hash total 106054 +/// hash saved worst case 0.06835197163709054 +/// hash saved best case 0.007166160635148132 +/// ``` +pub struct IncrementalHashBuilder { + /// Hash builder. + hash_builder: HashBuilder, + /// The index of the current value. + index: u64, + /// RLP encoded value. + first_value: Option>, +} + +/// The intermediate representation of the [`IncrementalHashBuilder`] that can be placed into the +/// pallets storage. This contains the minimum amount of data that is needed to serialize +/// and deserialize the incremental hash builder. +#[derive(Encode, Decode, scale_info::TypeInfo, Clone, PartialEq, Eq, Debug)] +pub struct IncrementalHashBuilderIR { + /// The nibbles of the builder. + pub key: Vec, + /// The type of the builder value. + /// 0 represents plain bytes. + /// 1 represents the hash of the bytes. + pub value_type: u8, + /// The current value stored by the builder. + pub builder_value: Vec, + /// The stack of RLP nodes. + pub stack: Vec>, + /// State mask. + pub state_masks: Vec, + /// Tree mask. + pub tree_masks: Vec, + /// Hash mask. + pub hash_masks: Vec, + /// True if the buider should be stored in database. + pub stored_in_database: bool, + /// Current RLP buffer. + pub rlp_buf: Vec, + + /// The index of the current value. + pub index: u64, + /// RLP encoded value. + pub first_value: Option>, +} + +impl IncrementalHashBuilder { + /// Construct the hash builder from the first value. + pub fn new(first_value: Vec) -> Self { + Self { hash_builder: HashBuilder::default(), index: 1, first_value: Some(first_value) } + } + + /// Converts the intermediate representation back into a builder. + pub fn from_ir(serialized: IncrementalHashBuilderIR) -> Self { + use alloy_consensus::private::alloy_trie::{ + hash_builder::{HashBuilderValue, HashBuilderValueRef}, + nodes::RlpNode, + TrieMask, + }; + + let value = match serialized.value_type { + 0 => { + let mut value = HashBuilderValue::new(); + value.set_bytes_owned(serialized.builder_value); + value + }, + 1 => { + use alloy_core::primitives::B256; + + let buffer: B256 = serialized.builder_value[..] + .try_into() + .expect("The buffer was serialized properly; qed"); + let value_ref = HashBuilderValueRef::Hash(&buffer); + + let mut value = HashBuilderValue::new(); + value.set_from_ref(value_ref); + value + }, + _ => panic!("Value type was serialized properly; qed"), + }; + + let hash_builder = HashBuilder { + key: Nibbles::from_nibbles(serialized.key), + value, + stack: serialized + .stack + .into_iter() + .map(|raw| RlpNode::from_raw(&raw).expect("RlpNode was encoded properly; qed")) + .collect(), + state_masks: serialized + .state_masks + .into_iter() + .map(|mask| TrieMask::new(mask)) + .collect(), + tree_masks: serialized.tree_masks.into_iter().map(|mask| TrieMask::new(mask)).collect(), + hash_masks: serialized.hash_masks.into_iter().map(|mask| TrieMask::new(mask)).collect(), + stored_in_database: serialized.stored_in_database, + updated_branch_nodes: None, + proof_retainer: None, + rlp_buf: serialized.rlp_buf, + }; + + IncrementalHashBuilder { + hash_builder, + index: serialized.index, + first_value: serialized.first_value, + } + } + + /// Converts the builder into an intermediate representation. + pub fn to_ir(self) -> IncrementalHashBuilderIR { + use alloy_consensus::private::alloy_trie::hash_builder::HashBuilderValueRef; + + IncrementalHashBuilderIR { + key: self.hash_builder.key.to_vec(), + value_type: match self.hash_builder.value.as_ref() { + HashBuilderValueRef::Bytes(_) => 0, + HashBuilderValueRef::Hash(_) => 1, + }, + builder_value: self.hash_builder.value.as_slice().to_vec(), + stack: self.hash_builder.stack.into_iter().map(|n| n.as_slice().to_vec()).collect(), + + state_masks: self.hash_builder.state_masks.into_iter().map(|mask| mask.get()).collect(), + tree_masks: self.hash_builder.tree_masks.into_iter().map(|mask| mask.get()).collect(), + hash_masks: self.hash_builder.hash_masks.into_iter().map(|mask| mask.get()).collect(), + + stored_in_database: self.hash_builder.stored_in_database, + rlp_buf: self.hash_builder.rlp_buf, + index: self.index, + first_value: self.first_value, + } + } + + /// Add a new value to the hash builder. + pub fn add_value(&mut self, value: Vec) { + let rlp_index = alloy_rlp::encode_fixed_size(&self.index); + self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &value); + + if self.index == 0x7f { + // Pushing the previous item since we are expecting the index + // to be index + 1 in the sorted order. + if let Some(encoded_value) = self.first_value.take() { + let rlp_index = alloy_rlp::encode_fixed_size(&0usize); + + self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); + } + } + + self.index += 1; + } + + /// Build the trie root hash. + pub fn finish(&mut self) -> H256 { + // We have less than 0x7f items to the trie. Therefore, the + // first value index is the last one in the sorted vector + // by rlp encoding of the index. + if let Some(encoded_value) = self.first_value.take() { + let rlp_index = alloy_rlp::encode_fixed_size(&0usize); + self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); + } + + self.hash_builder.root().0.into() + } +} + +/// Accumulate receipts into a stream of RLP encoded bytes. +/// This is a very straight forward implementation that RLP encodes logs as they are added. +/// +/// The main goal is to generate the RLP-encoded representation of receipts +/// which is required to compute the receipt root hash, without storing the full receipt +/// data in memory. +/// +/// One approach is to store the full receipt in memory, together with the RLP encoding +/// of the receipt. +/// +/// However, since we only care about the RLP encoding of the receipt, we can optimize the memory +/// usage by only storing the RLP encoded value and the logs directly. This effectively saves +/// the need to store the full receipt (which can grow unboundedly due to the number of logs), and +/// builds the RLP encoding incrementally as logs are added. +/// +/// The implementation leverages the RLP encoding details of the receipt: +/// +/// ```ignore +/// // Memory representation of the RLP encoded receipt: +/// [ +/// ReceiptHeader ++ rlp(status) ++ rlp(gas) ++ rlp(bloom) +/// ++ LogsHeader ++ rlp(log1) ++ rlp(log2) ++ ... ++ rlp(logN) +/// ] +/// ``` +/// +/// The optimization comes from the fact that `rlp(log1) ++ rlp(log2) ++ ... ++ rlp(logN)` +/// can be built incrementally. +/// +/// On average, from the real ethereum block, this implementation reduces the memory usage by 30%. +/// `EncodedReceipt Space optimization (on average): 0.6995642434146292` +pub struct AccumulateReceipt { + /// The RLP bytes where the logs are accumulated. + pub encoding: Vec, + /// The bloom filter collected from accumulating logs. + pub bloom: LogsBloom, +} + +/// Bloom log filter compatible with Ethereum implementation. +/// +/// This structure avoids conversions between substrate to alloy types +/// to optimally compute the bloom. +#[derive(Clone, Copy)] +pub struct LogsBloom { + /// The bloom bytes used to store logs. + pub bloom: [u8; BLOOM_SIZE_BYTES], +} + +impl Default for LogsBloom { + fn default() -> Self { + Self::new() + } +} + +impl LogsBloom { + /// Constructs a new [`LogsBloom`]. + pub const fn new() -> Self { + Self { bloom: [0u8; BLOOM_SIZE_BYTES] } + } + + /// Ingests a raw log (event) into the bloom filter. + pub fn accrue_log(&mut self, contract: &H160, topics: &[H256]) { + Self::m3_2048(&mut self.bloom, contract.as_ref()); + + for topic in topics { + Self::m3_2048(&mut self.bloom, topic.as_ref()); + } + } + + /// Accrues the input into the bloom filter. + pub fn accrue_bloom(&mut self, other: &Self) { + for i in 0..BLOOM_SIZE_BYTES { + self.bloom[i] |= other.bloom[i]; + } + } + + /// Specialized Bloom filter that sets three bits out of 2048, given an + /// arbitrary byte sequence. /// - /// (I) For each transaction captured (with the unbounded number of events): - /// - transaction hash is computed using `keccak256` - /// - transaction is 2718 RLP encoded - /// - the receipt is constructed and contains all the logs emitted by the transaction - /// - This includes computing the bloom filter for the logs (O(N) to compute) - /// - The receipt is 2718 RLP encoded: the cost is O(N) to encode due to the number of logs. + /// See Section 4.3.1 "Transaction Receipt" of the + /// [Ethereum Yellow Paper][ref] (page 6). /// - /// (II) Transaction trie root and receipt trie root are computed. + /// [ref]: https://ethereum.github.io/yellowpaper/paper.pdf + fn m3_2048(bloom: &mut [u8; 256], bytes: &[u8]) { + let hash = keccak_256(bytes); + for i in [0, 2, 4] { + let bit = (hash[i + 1] as usize + ((hash[i] as usize) << 8)) & 0x7FF; + bloom[256 - 1 - bit / 8] |= 1 << (bit % 8); + } + } +} + +impl AccumulateReceipt { + /// Constructs a new [`AccumulateReceipt`]. + pub const fn new() -> Self { + Self { encoding: Vec::new(), bloom: LogsBloom::new() } + } + + /// Add the log into the accumulated receipt. /// - /// (III) Block hash is computed from the provided information. + /// This accrues the log bloom and keeps track of the RLP encoding of the log. + pub fn add_log(&mut self, contract: &H160, data: &[u8], topics: &[H256]) { + // Accrue the log bloom. + self.bloom.accrue_log(contract, topics); + + // Determine the length of the log RLP encoding. + let mut topics_len = 0; + for topic in topics { + // Topics are represented by 32 bytes. However, their encoding + // can produce different lengths depending on their value. + topics_len += alloy_rlp::Encodable::length(&topic.0); + } + // Account for the size of the list header. + let topics_list_header_length = topics_len + alloy_rlp::length_of_length(topics_len); + // Compute the total payload length of the log. + let payload_length = alloy_rlp::Encodable::length(&contract.0) + + alloy_rlp::Encodable::length(&data) + + topics_list_header_length; + + let header = alloy_rlp::Header { list: true, payload_length }; + header.encode(&mut self.encoding); + alloy_rlp::Encodable::encode(&contract.0, &mut self.encoding); + // Encode the topics as a list + alloy_rlp::Header { list: true, payload_length: topics_len }.encode(&mut self.encoding); + for topic in topics { + alloy_rlp::Encodable::encode(&topic.0, &mut self.encoding); + } + alloy_rlp::Encodable::encode(&data, &mut self.encoding); + } + + /// Finalize the accumulated receipt and return the RLP encoded bytes. + pub fn encoded_receipt( + encoded_logs: Vec, + bloom: LogsBloom, + status: bool, + gas: u64, + transaction_type: Vec, + ) -> Vec { + let logs_length = encoded_logs.len(); + let list_header_length = logs_length + alloy_rlp::length_of_length(logs_length); + + let header = alloy_rlp::Header { + list: true, + payload_length: alloy_rlp::Encodable::length(&status) + + alloy_rlp::Encodable::length(&gas) + + alloy_rlp::Encodable::length(&bloom.bloom) + + list_header_length, + }; + + let mut encoded = transaction_type; + header.encode(&mut encoded); + alloy_rlp::Encodable::encode(&status, &mut encoded); + alloy_rlp::Encodable::encode(&gas, &mut encoded); + alloy_rlp::Encodable::encode(&bloom.bloom, &mut encoded); + + let logs_header = alloy_rlp::Header { list: true, payload_length: logs_length }; + logs_header.encode(&mut encoded); + + encoded.extend(encoded_logs); + + encoded + } +} + +/// Number of bytes that a bloom stores. +const BLOOM_SIZE_BYTES: usize = 256; + +/// The intermediate representation of the Ethereum block builder. +#[derive(Encode, Decode, TypeInfo)] +pub struct EthereumBlockBuilderIR { + transaction_root_builder: Option, + receipts_root_builder: Option, + + gas_used: U256, + pub(crate) tx_hashes: Vec, + + logs_bloom: [u8; BLOOM_SIZE_BYTES], + pub(crate) gas_info: Vec, +} + +impl Default for EthereumBlockBuilderIR { + fn default() -> Self { + Self { + transaction_root_builder: None, + receipts_root_builder: None, + gas_used: U256::zero(), + tx_hashes: Vec::new(), + logs_bloom: [0; BLOOM_SIZE_BYTES], + gas_info: Vec::new(), + } + } +} + +/// Ethereum block builder. +pub struct EthereumBlockBuilder { + pub(crate) transaction_root_builder: Option, + pub(crate) receipts_root_builder: Option, + + gas_used: U256, + pub(crate) tx_hashes: Vec, + + logs_bloom: LogsBloom, + gas_info: Vec, +} + +impl EthereumBlockBuilder { + /// Constructs a new [`EthereumBlockBuilder`]. + pub const fn new() -> Self { + Self { + transaction_root_builder: None, + receipts_root_builder: None, + gas_used: U256::zero(), + tx_hashes: Vec::new(), + logs_bloom: LogsBloom::new(), + gas_info: Vec::new(), + } + } + + /// Converts the builder into an intermediate representation. + pub fn to_ir(self) -> EthereumBlockBuilderIR { + EthereumBlockBuilderIR { + transaction_root_builder: self.transaction_root_builder.map(|b| b.to_ir()), + receipts_root_builder: self.receipts_root_builder.map(|b| b.to_ir()), + gas_used: self.gas_used, + tx_hashes: self.tx_hashes, + logs_bloom: self.logs_bloom.bloom, + gas_info: self.gas_info, + } + } + + /// Converts the intermediate representation back into a builder. + pub fn from_ir(ir: EthereumBlockBuilderIR) -> Self { + Self { + transaction_root_builder: ir + .transaction_root_builder + .map(|b| IncrementalHashBuilder::from_ir(b)), + receipts_root_builder: ir + .receipts_root_builder + .map(|b| IncrementalHashBuilder::from_ir(b)), + gas_used: ir.gas_used, + tx_hashes: ir.tx_hashes, + logs_bloom: LogsBloom { bloom: ir.logs_bloom }, + gas_info: ir.gas_info, + } + } + + /// Reset the state of the block builder to accommodate for the next block. + pub fn reset(&mut self) { + *self = Self::new(); + } + + /// Process a single transaction at a time. + pub fn process_transaction( + &mut self, + transaction_encoded: Vec, + success: bool, + gas_used: Weight, + encoded_logs: Vec, + receipt_bloom: LogsBloom, + ) { + let tx_hash = H256(keccak_256(&transaction_encoded)); + self.tx_hashes.push(tx_hash); + + // Update the transaction trie. + let transaction_type = Self::extract_transaction_type(transaction_encoded.as_slice()); + Self::add_builder_value(&mut self.transaction_root_builder, transaction_encoded); + + // Update gas and logs bloom. + self.gas_used = self.gas_used.saturating_add(gas_used.ref_time().into()); + self.logs_bloom.accrue_bloom(&receipt_bloom); + + // Update the receipt trie. + let encoded_receipt = AccumulateReceipt::encoded_receipt( + encoded_logs, + receipt_bloom, + success, + self.gas_used.as_u64(), + transaction_type, + ); + Self::add_builder_value(&mut self.receipts_root_builder, encoded_receipt); + + self.gas_info.push(ReceiptGasInfo { gas_used: gas_used.ref_time().into() }); + } + + /// Build the ethereum block from provided data. pub fn build( - transaction_details: impl IntoIterator, + &mut self, block_number: U256, parent_hash: H256, timestamp: U256, block_author: H160, gas_limit: U256, ) -> (H256, Block, Vec) { - let mut block = Self { + let transactions_root = Self::compute_trie_root(&mut self.transaction_root_builder); + let receipts_root = Self::compute_trie_root(&mut self.receipts_root_builder); + + let tx_hashes = core::mem::replace(&mut self.tx_hashes, Vec::new()); + let gas_info = core::mem::replace(&mut self.gas_info, Vec::new()); + + let block = Block { number: block_number, parent_hash, timestamp, miner: block_author, gas_limit, - // The remaining fields are populated by `process_transaction_details`. + state_root: transactions_root, + transactions_root, + receipts_root, + + gas_used: self.gas_used, + + logs_bloom: self.logs_bloom.bloom.into(), + transactions: HashesOrTransactionInfos::Hashes(tx_hashes), + ..Default::default() }; - // Needed for computing the transaction root. - let mut signed_tx = Vec::new(); - // Needed for computing the receipt root. - let mut receipts = Vec::new(); - // Gas info will be stored in the pallet storage under `ReceiptInfoData` - // and is needed for reconstructing the Receipts. - let mut gas_infos = Vec::new(); - // Transaction hashes are placed in the ETH block. - let mut tx_hashes = Vec::new(); - // Bloom filter for the logs emitted by the transactions. - let mut logs_bloom = Bloom::default(); - - for detail in transaction_details { - let processed = block.process_transaction_details(detail); - - signed_tx.push(processed.transaction_encoded); - tx_hashes.push(processed.tx_hash); - gas_infos.push(processed.gas_info); - receipts.push(processed.encoded_receipt); - logs_bloom.accrue_bloom(&processed.receipt_bloom); - } - - // Compute expensive trie roots. - let transactions_root = Self::compute_trie_root(&signed_tx); - let receipts_root = Self::compute_trie_root(&receipts); - - // We use the transaction root as state root since the state - // root is not yet computed by the substrate block. - block.state_root = transactions_root.0.into(); - block.transactions_root = transactions_root.0.into(); - block.receipts_root = receipts_root.0.into(); - block.logs_bloom = (*logs_bloom.data()).into(); - block.transactions = HashesOrTransactionInfos::Hashes(tx_hashes); - - // Compute the ETH header hash. let block_hash = block.header_hash(); + (block_hash, block, gas_info) + } - (block_hash, block, gas_infos) + fn compute_trie_root(builder: &mut Option) -> H256 { + match builder { + Some(builder) => builder.finish(), + None => HashBuilder::default().root().0.into(), + } } - /// Returns a tuple of the RLP encoded transaction and receipt. - /// - /// Internally collects the total gas used. - fn process_transaction_details(&mut self, detail: TransactionDetails) -> TransactionProcessed { - let TransactionDetails { transaction_encoded, logs, success, gas_used } = detail; + fn add_builder_value(builder: &mut Option, value: Vec) { + match builder { + Some(builder) => builder.add_value(value), + None => *builder = Some(IncrementalHashBuilder::new(value)), + } + } - let tx_hash = H256(keccak_256(&transaction_encoded)); + fn extract_transaction_type(transaction_encoded: &[u8]) -> Vec { // The transaction type is the first byte from the encoded transaction, // when the transaction is not legacy. For legacy transactions, there's // no type defined. Additionally, the RLP encoding of the tx type byte // is identical to the tx type. - let transaction_type = transaction_encoded + transaction_encoded .first() .cloned() .map(|first| match first { TYPE_EIP2930 | TYPE_EIP1559 | TYPE_EIP4844 | TYPE_EIP7702 => vec![first], _ => vec![], }) - .unwrap_or_default(); + .unwrap_or_default() + } +} - let logs = logs - .into_iter() - .map(|log| { - Log::new_unchecked( - log.contract.0.into(), - log.topics.into_iter().map(|h| FixedBytes::from(h.0)).collect::>(), - log.data.into(), - ) - }) - .collect(); +#[cfg(test)] +mod test { + use super::*; + use crate::evm::{Block, ReceiptInfo}; - self.gas_used = self.gas_used.saturating_add(gas_used.ref_time().into()); + /// Manual implementation of the Ethereum trie root computation. + /// + /// Given the RLP encoded values, the implementation adjusts the + /// index to account for RLP encoding rules. + fn manual_trie_root_compute(encoded: Vec>) -> H256 { + use alloy_consensus::private::alloy_trie::{HashBuilder, Nibbles}; + + const fn adjust_index_for_rlp(i: usize, len: usize) -> usize { + if i > 0x7f { + i + } else if i == 0x7f || i + 1 == len { + 0 + } else { + i + 1 + } + } - let receipt = alloy_consensus::Receipt { - status: success.into(), - cumulative_gas_used: self.gas_used.as_u64(), - logs, - }; + let mut hb = HashBuilder::default(); - let receipt_bloom = receipt.bloom_slow(); + let items_len = encoded.len(); + for i in 0..items_len { + let index = adjust_index_for_rlp(i, items_len); - // Receipt encoding must be prefixed with the rlp(transaction type). - let mut encoded_receipt = transaction_type; - let encoded_len = encoded_receipt - .len() - .saturating_add(receipt.rlp_encoded_length_with_bloom(&receipt_bloom)); + let index_buffer = alloy_rlp::encode_fixed_size(&index); + hb.add_leaf(Nibbles::unpack(&index_buffer), &encoded[index]); - encoded_receipt.reserve(encoded_len); - receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); + // Each mask in these vectors holds a u16. + let masks_len = (hb.state_masks.len() + hb.tree_masks.len() + hb.hash_masks.len()) * 2; + let _size = hb.key.len() + + hb.value.as_slice().len() + + hb.stack.len() * 33 + + masks_len + hb.rlp_buf.len(); + } - TransactionProcessed { - transaction_encoded, - tx_hash, - gas_info: ReceiptGasInfo { gas_used: gas_used.ref_time().into() }, - encoded_receipt, - receipt_bloom, + hb.root().0.into() + } + + /// The test compares three hashing options: + /// - Block::compute_trie_root: this uses the consensus proofs crate + /// - manual_trie_root_compute: this ensures the keys are added in the correct order + /// - IncrementalHashBuilder: this offers the most compact storage option + /// + /// The above hashes must be identical. While at it, the incremental hash + /// builder is serialized and deserialized to ensure consistency. + #[test] + fn incremental_hasher() { + const UPPER_BOUND: usize = 256; + const RLP_VALUE_SIZE: usize = 128; + + let mut rlp_values = Vec::with_capacity(UPPER_BOUND); + + for i in 0..UPPER_BOUND { + // Simulate an RLP value repeated for `i`. + let rlp_value = vec![i as u8; RLP_VALUE_SIZE]; + + rlp_values.push(rlp_value); + + let block_hash: H256 = Block::compute_trie_root(&rlp_values).0.into(); + let manual_hash = manual_trie_root_compute(rlp_values.clone()); + + let mut builder = IncrementalHashBuilder::new(rlp_values[0].clone()); + for rlp_value in rlp_values.iter().skip(1) { + builder.add_value(rlp_value.clone()); + + let ir_builder = builder.to_ir(); + builder = IncrementalHashBuilder::from_ir(ir_builder); + } + let incremental_hash = builder.finish(); + + assert_eq!(block_hash, manual_hash); + assert_eq!(block_hash, incremental_hash); } } - /// Compute the trie root using the `(rlp(index), encoded(item))` pairs. - pub fn compute_trie_root(items: &[Vec]) -> B256 { - alloy_consensus::proofs::ordered_trie_root_with_encoder(items, |item, buf| { - buf.put_slice(item) - }) + #[test] + fn test_alloy_rlp_ordering_compatibility() { + let zero_encoded = alloy_rlp::encode_fixed_size(&0usize); + let max_single_byte = alloy_rlp::encode_fixed_size(&127usize); + let first_multi_byte = alloy_rlp::encode_fixed_size(&128usize); + + // Document the exact bytes we expect + assert_eq!(zero_encoded.as_slice(), &[0x80]); // RLP encoding of 0 + assert_eq!(max_single_byte.as_slice(), &[0x7f]); // RLP encoding of 127 + assert_eq!(first_multi_byte.as_slice(), &[0x81, 0x80]); // RLP encoding of 128 + + // Verify ordering + assert!(max_single_byte < zero_encoded); + assert!(zero_encoded < first_multi_byte); } - /// Compute the ETH header hash. - fn header_hash(&self) -> H256 { - // Note: Cap the gas limit to u64::MAX. - // In practice, it should be impossible to fill a u64::MAX gas limit - // of an either Ethereum or Substrate block. - let gas_limit = self.gas_limit.try_into().unwrap_or(u64::MAX); + #[test] + fn ensure_identical_hashes() { + // curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x161bd0f", true],"id":1}' -H "Content-Type: application/json" https://ethereum-rpc.publicnode.com | jq .result + const BLOCK_PATH: &str = "./test-assets/eth_block.json"; + // curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockReceipts","params":["0x161bd0f"],"id":1}' -H "Content-Type: application/json" https://ethereum-rpc.publicnode.com | jq .result + const BLOCK_RECEIPTS: &str = "./test-assets/eth_receipts.json"; - let alloy_header = alloy_consensus::Header { - state_root: self.state_root.0.into(), - transactions_root: self.transactions_root.0.into(), - receipts_root: self.receipts_root.0.into(), + let json = std::fs::read_to_string(BLOCK_PATH).unwrap(); + let block: Block = serde_json::from_str(&json).unwrap(); - parent_hash: self.parent_hash.0.into(), - beneficiary: self.miner.0.into(), - number: self.number.as_u64(), - logs_bloom: self.logs_bloom.0.into(), - gas_limit, - gas_used: self.gas_used.as_u64(), - timestamp: self.timestamp.as_u64(), + let json = std::fs::read_to_string(BLOCK_RECEIPTS).unwrap(); + let receipts: Vec = serde_json::from_str(&json).unwrap(); - ommers_hash: self.sha_3_uncles.0.into(), - extra_data: self.extra_data.clone().0.into(), - mix_hash: self.mix_hash.0.into(), - nonce: self.nonce.0.into(), - base_fee_per_gas: Some(self.base_fee_per_gas.as_u64()), - withdrawals_root: Some(self.withdrawals_root.0.into()), - blob_gas_used: Some(self.blob_gas_used.as_u64()), - excess_blob_gas: Some(self.excess_blob_gas.as_u64()), - parent_beacon_block_root: self.parent_beacon_block_root.map(|root| root.0.into()), + assert_eq!(block.header_hash(), receipts[0].block_hash); - ..Default::default() + let tx = match &block.transactions { + HashesOrTransactionInfos::TransactionInfos(infos) => infos.clone(), + _ => panic!("Expected full tx body"), }; - alloy_header.hash_slow().0.into() + let encoded_tx: Vec<_> = tx + .clone() + .into_iter() + .map(|tx| tx.transaction_signed.signed_payload()) + .collect(); + + let transaction_details: Vec<_> = tx + .into_iter() + .zip(receipts.into_iter()) + .map(|(tx_info, receipt_info)| { + if tx_info.transaction_index != receipt_info.transaction_index { + panic!("Transaction and receipt index do not match"); + } + + let logs: Vec<_> = receipt_info + .logs + .into_iter() + .map(|log| (log.address, log.data.unwrap_or_default().0, log.topics)) + .collect(); + + ( + tx_info.transaction_signed.signed_payload(), + logs, + receipt_info.status.unwrap_or_default() == 1.into(), + receipt_info.gas_used.as_u64(), + ) + }) + .collect(); + + // Build the ethereum block incrementally. + let mut incremental_block = EthereumBlockBuilder::new(); + for (signed, logs, success, gas_used) in transaction_details { + let mut log_size = 0; + + let mut accumulate_receipt = AccumulateReceipt::new(); + for (address, data, topics) in &logs { + let current_size = data.len() + topics.len() * 32 + 20; + log_size += current_size; + accumulate_receipt.add_log(address, data, topics); + } + + incremental_block.process_transaction( + signed, + success, + gas_used.into(), + accumulate_receipt.encoding, + accumulate_receipt.bloom, + ); + + let ir = incremental_block.to_ir(); + incremental_block = EthereumBlockBuilder::from_ir(ir); + + println!(" Otherwise size {:?}", log_size); + } + + // The block hash would differ here because we don't take into account + // the ommers and other fields from the substrate perspective. + // However, the state roots must be identical. + let built_block = incremental_block + .build( + block.number, + block.parent_hash, + block.timestamp, + block.miner, + Default::default(), + ) + .1; + + assert_eq!(built_block.gas_used, block.gas_used); + assert_eq!(built_block.logs_bloom, block.logs_bloom); + // We are using the tx root for state root. + assert_eq!(built_block.state_root, built_block.transactions_root); + + // Double check the receipts roots. + assert_eq!(built_block.receipts_root, block.receipts_root); + + let manual_hash = manual_trie_root_compute(encoded_tx.clone()); + + let mut total_size = 0; + for enc in &encoded_tx { + total_size += enc.len(); + } + println!("Total size used by transactions: {:?}", total_size); + + let mut builder = IncrementalHashBuilder::new(encoded_tx[0].clone()); + for tx in encoded_tx.iter().skip(1) { + builder.add_value(tx.clone()) + } + let incremental_hash = builder.finish(); + + println!("Incremental hash: {:?}", incremental_hash); + println!("Manual Hash: {:?}", manual_hash); + println!("Built block Hash: {:?}", built_block.transactions_root); + println!("Real Block Tx Hash: {:?}", block.transactions_root); + + assert_eq!(incremental_hash, block.transactions_root); + + // This double checks the compute logic. + assert_eq!(manual_hash, block.transactions_root); + // This ensures we can compute the same transaction root as Ethereum. + assert_eq!(block.transactions_root, built_block.transactions_root); } } diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index dc2252de8856d..e8893378e9845 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -18,7 +18,6 @@ use crate::{ address::{self, AddressMapper}, eth_block_storage, - evm::block_hash::EventLog, gas::GasMeter, limits, precompiles::{All as AllPrecompiles, Instance as PrecompileInstance, Precompiles}, @@ -28,8 +27,8 @@ use crate::{ tracing::if_tracing, transient_storage::TransientStorage, AccountInfo, AccountInfoOf, BalanceOf, BalanceWithDust, CodeInfo, CodeInfoOf, Config, - ContractInfo, Error, Event, ImmutableData, ImmutableDataOf, InflightEthTxEvents, - Pallet as Contracts, RuntimeCosts, LOG_TARGET, + ContractInfo, Error, Event, ImmutableData, ImmutableDataOf, Pallet as Contracts, RuntimeCosts, + LOG_TARGET, }; use alloc::vec::Vec; use core::{fmt::Debug, marker::PhantomData, mem}; @@ -2030,13 +2029,8 @@ where tracer.log_event(contract, &topics, &data); }); - if eth_block_storage::is_executing_ethereum_call() { - InflightEthTxEvents::::append(EventLog { - contract, - data: data.clone(), - topics: topics.clone(), - }); - } + // Capture the log only if it is generated by an Ethereum transaction. + eth_block_storage::capture_ethereum_log(&contract, &data, &topics); Contracts::::deposit_event(Event::ContractEmitted { contract, data, topics }); } diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index f67b5a9881fff..c35c559ec5a1a 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -45,7 +45,7 @@ pub mod weights; use crate::{ evm::{ - block_hash::{EventLog, ReceiptGasInfo, TransactionDetails}, + block_hash::{EthereumBlockBuilder, EthereumBlockBuilderIR, ReceiptGasInfo}, runtime::GAS_PRICE, CallTracer, GasEncoder, GenericTransaction, PrestateTracer, Trace, Tracer, TracerType, TransactionSigned, TYPE_EIP1559, @@ -130,20 +130,49 @@ const SENTINEL: u32 = u32::MAX; const LOG_TARGET: &str = "runtime::revive"; pub(crate) mod eth_block_storage { + use crate::{ + evm::block_hash::{AccumulateReceipt, LogsBloom}, + H160, H256, + }; + use alloc::vec::Vec; use environmental::environmental; /// The maximum number of block hashes to keep in the history. pub const BLOCK_HASH_COUNT: u32 = 256; - // Indicates whether an Ethereum call is currently being executed. - environmental!(executing_call: bool); + // The events emitted by this pallet while executing the current inflight transaction. + // + // The events are needed to reconstruct the receipt root hash, as they represent the + // logs emitted by the contract. The events are consumed when the transaction is + // completed. To minimize the amount of used memory, the events are RLP encoded directly. + environmental!(receipt: AccumulateReceipt); + + /// Capture the Ethereum log for the current transaction. + /// + /// This method does nothing if called from outside of the ethereum context. + pub fn capture_ethereum_log(contract: &H160, data: &[u8], topics: &[H256]) { + receipt::with(|receipt| { + receipt.add_log(contract, data, topics); + }); + } - pub fn is_executing_ethereum_call() -> bool { - executing_call::with(|ctx| *ctx).unwrap_or(false) + /// Get the receipt details of the current transaction. + /// + /// This method returns `None` if and only if the function is called + /// from outside of the ethereum context. + pub fn get_receipt_details() -> Option<(Vec, LogsBloom)> { + receipt::with(|receipt| { + let encoding = core::mem::take(&mut receipt.encoding); + let bloom = core::mem::take(&mut receipt.bloom); + (encoding, bloom) + }) } + /// Capture the receipt events emitted from the current ethereum + /// transaction. The transaction must be signed by an eth-compatible + /// wallet. pub fn with_ethereum_context(f: impl FnOnce() -> R) -> R { - executing_call::using(&mut true, f) + receipt::using(&mut AccumulateReceipt::new(), f) } } @@ -498,6 +527,8 @@ pub mod pallet { CallDataTooLarge = 0x30, /// The return data exceeds [`limits::CALLDATA_BYTES`]. ReturnDataTooLarge = 0x31, + /// The amount of emitted events exceeds [`limits::NUM_EMITTED_EVENTS`]. + TooManyEmittedEvents = 0x32, } /// A reason for the pallet revive placing a hold on funds. @@ -549,27 +580,6 @@ pub mod pallet { #[pallet::storage] pub(crate) type OriginalAccount = StorageMap<_, Identity, H160, AccountId32>; - /// The events emitted by this pallet while executing the current inflight transaction. - /// - /// The events are needed to reconstruct the ReceiptInfo, as they represent the - /// logs emitted by the contract. The events are consumed when the transaction is - /// completed and moved to the `InflightEthTransactions` storage object. - #[pallet::storage] - #[pallet::unbounded] - pub(crate) type InflightEthTxEvents = StorageValue<_, Vec, ValueQuery>; - - /// The EVM submitted transactions that are inflight for the current block. - /// - /// The transactions are needed to construct the ETH block. - /// - /// This contains the information about transaction payload, transaction index within the block, - /// the events emitted by the transaction, the status of the transaction (success or not), and - /// the gas consumed. - #[pallet::storage] - #[pallet::unbounded] - pub(crate) type InflightEthTransactions = - StorageValue<_, Vec, ValueQuery>; - /// The current Ethereum block that is stored in the `on_finalize` method. /// /// # Note @@ -599,6 +609,12 @@ pub mod pallet { #[pallet::unbounded] pub(crate) type ReceiptInfoData = StorageValue<_, Vec, ValueQuery>; + /// Incremental ethereum block builder. + #[pallet::storage] + #[pallet::unbounded] + pub(crate) type EthBlockBuilderIR = + StorageValue<_, EthereumBlockBuilderIR, ValueQuery>; + #[pallet::genesis_config] #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { @@ -645,9 +661,6 @@ pub mod pallet { // If we cannot fetch the block author there's nothing we can do. // Finding the block author traverses the digest logs. let Some(block_author) = Self::block_author() else { - // Drain storage in case of errors. - InflightEthTxEvents::::kill(); - InflightEthTransactions::::kill(); return; }; @@ -659,17 +672,13 @@ pub mod pallet { H256::default() }; let gas_limit = Self::evm_block_gas_limit(); - // This touches the storage, must account for weights. - let transactions = InflightEthTransactions::::take(); - - let (block_hash, block, receipt_data) = EthBlock::build( - transactions, - eth_block_num, - parent_hash, - T::Time::now().into(), - block_author, - gas_limit, - ); + + let block_builder_ir = EthBlockBuilderIR::::get(); + EthBlockBuilderIR::::kill(); + + let (block_hash, block, receipt_data) = EthereumBlockBuilder::from_ir(block_builder_ir) + .build(eth_block_num, parent_hash, T::Time::now().into(), block_author, gas_limit); + // Put the block hash into storage. BlockHash::::insert(eth_block_num, block_hash); @@ -1408,6 +1417,13 @@ where tx.r#type = Some(TYPE_EIP1559.into()); } + let Ok(unsigned) = tx.clone().try_into_unsigned() else { + return Err(EthTransactError::Message("Failed to convert to unsigned tx".into())); + }; + const DUMMY_SIGNATURE: [u8; 65] = [1u8; 65]; + let dummy_signed = unsigned.with_signature(DUMMY_SIGNATURE); + let encoded_dummy_payload = dummy_signed.signed_payload(); + // Convert the value to the native balance type. let value = tx.value.unwrap_or_default(); let input = tx.input.clone().to_vec(); @@ -1499,7 +1515,7 @@ where // Since this is a dry run, we don't need to pass the signed transaction // payload. Instead, use a dummy value. The signed transaction // will be provided by the user when the tx is submitted. - transaction_encoded: TransactionSigned::default().signed_payload(), + transaction_encoded: encoded_dummy_payload, } .into(); (result, dispatch_call) @@ -1571,7 +1587,7 @@ where // Since this is a dry run, we don't need to pass the signed transaction // payload. Instead, use a dummy value. The signed transaction // will be provided by the user when the tx is submitted. - transaction_encoded: TransactionSigned::default().signed_payload(), + transaction_encoded: encoded_dummy_payload, } .into(); (result, dispatch_call) @@ -1582,8 +1598,7 @@ where return Err(EthTransactError::Message("Invalid transaction".into())); } - let eth_transact_call = - crate::Call::::eth_transact { signed_transaction: TransactionSigned::default() }; + let eth_transact_call = crate::Call::::eth_transact { signed_transaction: dummy_signed }; let fee = tx_fee(eth_transact_call.into(), dispatch_call); let raw_gas = Self::evm_fee_to_gas(fee); let eth_gas = @@ -1661,12 +1676,20 @@ where ::RuntimeCall: Dispatchable, { + use sp_runtime::SaturatedConversion; + let max_block_weight = T::BlockWeights::get() .get(DispatchClass::Normal) .max_total .unwrap_or_else(|| T::BlockWeights::get().max_block); - Self::evm_gas_from_weight(max_block_weight) + // Length to fee conversion of 5 MiB tx size: + // pallet_transaction_payment::Pallet::::length_to_fee(5 * 1024 * 1024); + let length_fee: u64 = 52_428_800_000_000_000 + 6 * 1_000_000_000; + // 519.999.999.188 + let balance: BalanceOf = BalanceOf::::saturated_from(length_fee); + + Self::evm_gas_from_weight(max_block_weight).saturating_add(Self::evm_fee_to_gas(balance)) } /// Get the gas price. @@ -1796,15 +1819,23 @@ impl Pallet { /// /// The data is used during the `on_finalize` hook to reconstruct the ETH block. fn store_transaction(transaction_encoded: Vec, success: bool, gas_used: Weight) { - // Collect inflight events emitted by this EVM transaction. - let logs = InflightEthTxEvents::::take(); + // Method returns `None` only when called from outside of the ethereum context. + // This is not the case here, since the `store_transaction` is called from within the + // ethereum context. + let (encoded_logs, bloom) = eth_block_storage::get_receipt_details().unwrap_or_default(); - InflightEthTransactions::::append(TransactionDetails { + let block_builder_ir = EthBlockBuilderIR::::get(); + let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); + + block_builder.process_transaction( transaction_encoded, - logs, success, gas_used, - }); + encoded_logs, + bloom, + ); + + EthBlockBuilderIR::::put(block_builder.to_ir()); } /// The address of the validator that produced the current block. diff --git a/substrate/frame/revive/src/limits.rs b/substrate/frame/revive/src/limits.rs index 1a88f73749f17..7f04536d88d2e 100644 --- a/substrate/frame/revive/src/limits.rs +++ b/substrate/frame/revive/src/limits.rs @@ -48,6 +48,13 @@ pub const CALL_STACK_DEPTH: u32 = 25; /// We set it to the same limit that ethereum has. It is unlikely to change. pub const NUM_EVENT_TOPICS: u32 = 4; +/// The maximum number of events a call to [`crate::SyscallDoc::deposit_event`] can emit. +/// +/// It is unlikely that a single contract call needs to emit more than 512 events. +/// This limit is in place to prevent a single contract call from filling up the memory +/// with events. +pub const NUM_EMITTED_EVENTS: u32 = 512; + /// Maximum size of events (including topics) and storage values. pub const PAYLOAD_BYTES: u32 = 416; diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index aece048204a2a..a5ac940a9e994 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -18,31 +18,18 @@ //! The pallet-revive ETH block hash specific integration test suite. use crate::{ - evm::block_hash::{EventLog, TransactionDetails}, + evm::Block, test_utils::{builder::Contract, deposit_limit, ALICE}, tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeOrigin, Test}, - BalanceWithDust, Code, Config, EthBlock, EthereumBlock, InflightEthTransactions, - InflightEthTxEvents, Pallet, ReceiptGasInfo, ReceiptInfoData, TransactionSigned, Weight, H256, + BalanceWithDust, Code, Config, EthBlock, EthBlockBuilderIR, EthereumBlock, + EthereumBlockBuilder, Pallet, ReceiptGasInfo, ReceiptInfoData, TransactionSigned, }; use frame_support::traits::{fungible::Mutate, Hooks}; use pallet_revive_fixtures::compile_module; -impl PartialEq for EventLog { - // Dont care about the contract address, since eth instantiate cannot expose it. - fn eq(&self, other: &Self) -> bool { - self.data == other.data && self.topics == other.topics - } -} - -impl PartialEq for TransactionDetails { - // Ignore the weight since its subject to change. - fn eq(&self, other: &Self) -> bool { - self.transaction_encoded == other.transaction_encoded && - self.logs == other.logs && - self.success == other.success - } -} +use alloy_consensus::RlpEncodableReceipt; +use alloy_core::primitives::{FixedBytes, Log as AlloyLog}; #[test] fn on_initialize_clears_storage() { @@ -51,30 +38,12 @@ fn on_initialize_clears_storage() { ReceiptInfoData::::put(receipt_data.clone()); assert_eq!(ReceiptInfoData::::get(), receipt_data); - let event = EventLog { contract: Default::default(), data: vec![1], topics: vec![] }; - InflightEthTxEvents::::put(vec![event.clone()]); - assert_eq!(InflightEthTxEvents::::get(), vec![event.clone()]); - - let transactions = vec![TransactionDetails { - transaction_encoded: TransactionSigned::TransactionLegacySigned(Default::default()) - .signed_payload(), - logs: vec![event.clone()], - success: true, - gas_used: Weight::zero(), - }]; - - InflightEthTransactions::::put(transactions.clone()); - assert_eq!(InflightEthTransactions::::get(), transactions.clone()); - let block = EthBlock { number: 1.into(), ..Default::default() }; EthereumBlock::::put(block.clone()); assert_eq!(EthereumBlock::::get(), block); Contracts::on_initialize(0); - // The events and tx info is killed on the finalized hook. - assert_eq!(InflightEthTxEvents::::get(), vec![event]); - assert_eq!(InflightEthTransactions::::get(), transactions); // RPC queried storage is cleared out. assert_eq!(ReceiptInfoData::::get(), vec![]); assert_eq!(EthereumBlock::::get(), Default::default()); @@ -103,28 +72,28 @@ fn transactions_are_captured() { // Instantiate with code is not captured. assert_ok!(builder::instantiate_with_code(gas_binary).value(1).build()); - let transactions = InflightEthTransactions::::get(); - let expected = vec![ - TransactionDetails { - transaction_encoded: TransactionSigned::TransactionLegacySigned(Default::default()) - .signed_payload(), - logs: vec![], - success: true, - gas_used: Weight::zero(), - }, - TransactionDetails { - transaction_encoded: TransactionSigned::Transaction4844Signed(Default::default()) - .signed_payload(), - logs: vec![], - success: true, - gas_used: Weight::zero(), - }, + let block_builder = EthBlockBuilderIR::::get(); + // Only 2 transactions were captured. + assert_eq!(block_builder.gas_info.len(), 2); + + let expected_payloads = vec![ + // Signed payload of eth_call. + TransactionSigned::TransactionLegacySigned(Default::default()).signed_payload(), + // Signed payload of eth_instantiate_with_code. + TransactionSigned::Transaction4844Signed(Default::default()).signed_payload(), ]; - assert_eq!(transactions, expected); + let expected_tx_root = Block::compute_trie_root(&expected_payloads); + + // Double check the trie root hash. + let builder = EthereumBlockBuilder::from_ir(block_builder); + let tx_root = builder.transaction_root_builder.unwrap().finish(); + assert_eq!(tx_root, expected_tx_root.0.into()); Contracts::on_finalize(0); - assert_eq!(InflightEthTransactions::::get(), vec![]); + // Builder is killed on finalize. + let block_builder = EthBlockBuilderIR::::get(); + assert_eq!(block_builder.gas_info.len(), 0); }); } @@ -145,33 +114,67 @@ fn events_are_captured() { // Bare call must not be captured. builder::bare_instantiate(Code::Existing(code_hash)).build_and_unwrap_contract(); + let balance = Pallet::::convert_native_to_evm(BalanceWithDust::new_unchecked::(100, 10)); // Capture the EthInstantiate. - assert_eq!(InflightEthTxEvents::::get(), vec![]); assert_ok!(builder::eth_instantiate_with_code(binary).value(balance).build()); - // Events are cleared out by storing the transaction. - assert_eq!(InflightEthTxEvents::::get(), vec![]); - - let transactions = InflightEthTransactions::::get(); - let expected = vec![TransactionDetails { - transaction_encoded: TransactionSigned::Transaction4844Signed(Default::default()) - .signed_payload(), - logs: vec![EventLog { - data: vec![1, 2, 3, 4], - topics: vec![H256::repeat_byte(42)], - contract: Default::default(), - }], - success: true, - gas_used: Weight::zero(), - }]; - - assert_eq!(transactions, expected); + + // The contract address is not exposed by the `eth_instantiate_with_code` call. + // Instead, extract the address from the frame system's last event. + let events = frame_system::Pallet::::events(); + let contract = events + .into_iter() + .filter_map(|event_record| match event_record.event { + crate::tests::RuntimeEvent::Contracts(crate::Event::Instantiated { + contract, + .. + }) => Some(contract), + _ => None, + }) + .last() + .expect("Contract address must be found from events"); + + let expected_payloads = vec![ + // Signed payload of eth_instantiate_with_code. + TransactionSigned::Transaction4844Signed(Default::default()).signed_payload(), + ]; + let expected_tx_root = Block::compute_trie_root(&expected_payloads); + const EXPECTED_GAS: u64 = 6345452; + + let logs = vec![AlloyLog::new_unchecked( + contract.0.into(), + vec![FixedBytes::from([42u8; 32])], + vec![1, 2, 3, 4].into(), + )]; + let receipt = alloy_consensus::Receipt { + status: true.into(), + cumulative_gas_used: EXPECTED_GAS, + logs, + }; + + let receipt_bloom = receipt.bloom_slow(); + // Receipt starts with encoded tx type which is 3 for 4844 transactions. + let mut encoded_receipt = vec![3]; + receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); + let expected_receipt_root = Block::compute_trie_root(&[encoded_receipt]); + + let block_builder = EthBlockBuilderIR::::get(); + // 1 transaction captured. + assert_eq!(block_builder.gas_info.len(), 1); + assert_eq!(block_builder.gas_info, vec![ReceiptGasInfo { gas_used: EXPECTED_GAS.into() }]); + + let builder = EthereumBlockBuilder::from_ir(block_builder); + let tx_root = builder.transaction_root_builder.unwrap().finish(); + assert_eq!(tx_root, expected_tx_root.0.into()); + + let receipt_root = builder.receipts_root_builder.unwrap().finish(); + assert_eq!(receipt_root, expected_receipt_root.0.into()); Contracts::on_finalize(0); - assert_eq!(InflightEthTransactions::::get(), vec![]); - assert_eq!(InflightEthTxEvents::::get(), vec![]); + let block_builder = EthBlockBuilderIR::::get(); + assert_eq!(block_builder.gas_info.len(), 0); }); } diff --git a/substrate/frame/revive/src/vm/pvm.rs b/substrate/frame/revive/src/vm/pvm.rs index b0a2ed8264b24..cd652e45991fe 100644 --- a/substrate/frame/revive/src/vm/pvm.rs +++ b/substrate/frame/revive/src/vm/pvm.rs @@ -325,11 +325,21 @@ pub struct Runtime<'a, E: Ext, M: ?Sized> { ext: &'a mut E, input_data: Option>, _phantom_data: PhantomData, + /// The number of emitted events. + /// + /// When this reaches the maximum allowed number of events, no further events + /// can be emitted, and the transaction will fail. + emitted_events: u32, } impl<'a, E: Ext, M: ?Sized + Memory> Runtime<'a, E, M> { pub fn new(ext: &'a mut E, input_data: Vec) -> Self { - Self { ext, input_data: Some(input_data), _phantom_data: Default::default() } + Self { + ext, + input_data: Some(input_data), + _phantom_data: Default::default(), + emitted_events: 0, + } } /// Get a mutable reference to the inner `Ext`. diff --git a/substrate/frame/revive/src/vm/pvm/env.rs b/substrate/frame/revive/src/vm/pvm/env.rs index 0255670a4f529..56dcef18cc377 100644 --- a/substrate/frame/revive/src/vm/pvm/env.rs +++ b/substrate/frame/revive/src/vm/pvm/env.rs @@ -721,6 +721,11 @@ pub mod env { ) -> Result<(), TrapReason> { self.charge_gas(RuntimeCosts::DepositEvent { num_topic, len: data_len })?; + self.emitted_events += 1; + if self.emitted_events > limits::NUM_EMITTED_EVENTS { + return Err(Error::::TooManyEmittedEvents.into()); + } + if num_topic > limits::NUM_EVENT_TOPICS { return Err(Error::::TooManyTopics.into()); } diff --git a/substrate/frame/revive/test-assets/eth_block.json b/substrate/frame/revive/test-assets/eth_block.json new file mode 100644 index 0000000000000..9cbd0b32f901f --- /dev/null +++ b/substrate/frame/revive/test-assets/eth_block.json @@ -0,0 +1,3387 @@ +{ + "baseFeePerGas": "0x23cf3fd4", + "blobGasUsed": "0x0", + "difficulty": "0x0", + "excessBlobGas": "0x80000", + "extraData": "0x546974616e2028746974616e6275696c6465722e78797a29", + "gasLimit": "0x2aea4ea", + "gasUsed": "0xe36e2f", + "hash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logsBloom": "0xb56c514421c05ba024436428e2487b83134983e9c650686421bd10588512e0a9a55d51e8e84c868446517ed5e90609dd43aad1edcc1462b8e8f15763b3ff6e62a506d3d910d0aae829786fac994a6de34860263be47eb8300e91dd2cc3110a22ba0d60008e6a0362c5a3ffd5aa18acc8c22b6fe02c54273b12a841bc958c9ae12378bc0e5881c2d840ff677f8038243216e5c105e58819bc0cbb8c56abb7e490cf919ceb85702e5d54dece9332a00c9e6ade9cb47d42440201ecd7704088236b39037c9ff189286e3e5d6657aa389c2d482e337af5cfc45b0d25ad0e300c2b6bf599bc2007008830226612a4e7e7cae4e57c740205a809dc280825165b98559c", + "miner": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "mixHash": "0x11b02e97eaa48bc83cbb6f9478f32eaf7e8b67fead4edeef945822612f1854f6", + "nonce": "0x0000000000000000", + "number": "0x161bd0f", + "parentBeaconBlockRoot": "0xd8266eb7bb40e4e5e3beb9caed7ccaa448ce55203a03705c87860deedcf7236d", + "parentHash": "0x7c9625cc198af5cf677a15cdc38da3cf64d57b9729de5bd1c96b3c556a84aa7d", + "receiptsRoot": "0x758614638725ede86a2f4c8339eb79b84ae346915319dc286643c9324e34f28a", + "requestsHash": "0xd9267a5ab4782c4e0bdc5fcd2fefb53c91f92f91b6059c8f13343a0691ba77d1", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "size": "0x14068", + "stateRoot": "0x7ed9726e3172886af5301968c2ddb7c38f8adf99c99ec10fdfaab66c610854bb", + "timestamp": "0x68a5ce5b", + "transactions": [ + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x693ca5c6852a7d212dabc98b28e15257465c11f3", + "gas": "0x70bdb", + "gasPrice": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "maxFeePerGas": "0x47ca802f", + "hash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "input": "0x09c5eabe000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a90000cca0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000020000000000000000000000035c9618f600000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000002374fed200000000000000000001528fd550bc9a0000000000000000351e55bea6d51900dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000005c0c965e0000000000000000000000000000000000004c00000001000000000000000000000000000000000000002e24cd1d61a63f43658ed73b6ddeba00010002000100000000000000000000000000000000000000000000000039d622818daae62900006602000000000000000000002ff9e9686fa6ac00000000000000000000000000007f88ca000000000000000004caaa5ba8029c920300010000000000000000052319c661ddb06600000000000000000001528fd550bc9a0000000000000000005049606b67676100011c0c00000000000000002ff9e9686fa6ac000000000000000000000000035c16902c0000000000000000000000000000000200000000000000000000000000000002000073d53553ee552c1f2a9722e6407d43e41e19593f1cbc3d63300bfc6e48709f5b5ed98f228c70104e8c5d570b5608b47dca95ce6e371636965b6fdcab3613b6b65f061a44b7132011bb97a768bd238eacb62d7109920b000000000000000005246c56372e6d000000000000000000000000005c0c965e0000000000000000000000002374fed20000000000000000000000002374fed200011cc19621f6edbb9c02b95055b9f52eba0e2cb954c259f42aeca488551ea82b72f2504bbd310eb7145435e258751ab6854ab08b1630b89d6621dc1398c5d0c43b480000000000000000000000000000000000000000000000000000", + "nonce": "0x40c6", + "to": "0x0000000aa232009084bd71a5797d089aa4edfad4", + "transactionIndex": "0x0", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xb3e71bd95d73e965495b17647f5faaf058e13af7dd21f2af24eac16f7e9d06a1", + "s": "0x58775b0c15075fb7f007b88e88605ae5daec1ffbac2771076e081c8c2b005c20" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xc445a471debbc8ef54dbfd90af406b6a682313e3", + "gas": "0x62e08", + "gasPrice": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "maxFeePerGas": "0x23cf3fd4", + "hash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "input": "0x078fc43000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000004d0563b78d0000000000000000000000000000000000000000000000044cca9748c816200e0000000000000000000000000000000000000000000000000000000010cb11ad0000000000000000000000000000000000000000000000000ede120b0b0b800000000000000000000000000000000000000000000000000005f3f3c10cd7400000000000000000000000000000000000000000000000000000000000000baa240000000000000000000000000000000000003c7ce03ee690113f579b1bcb93c1000000000000000000000000000000000000000000c6467309887ae60c8000004342b77fe3417bcb09d0a4383301b0dc733c755b00020000000000000000000200000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000063cca0fafb5280000000000000000000000000000000000000000000000000000000068a5ce5d00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000c445a471debbc8ef54dbfd90af406b6a682313e3000000000000000000000000000000000000000000000000000000000000000000000000000000e214d604044df5ba5f000000000000000457cc9deaca1658b10000000000006f9e4169d6f2c9919000000000000000001cc8f062718bfb1dcc0000000000000000000000000000000000000000000e8f80a0fffc209f777a9600000000000000004563918244f400000000000000000000006a94d74f43000000000000000000000000000068a5ce5b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004134c551c8d6c4f84a61a779134ed200c4d154e9904ad7b5a78c4d917f5b2b34a506596488971df877891a98c370f1a4a1c3aa42f05088d48253ac7be9e9840d7a1c00000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x288c", + "to": "0xc90d7c41974397cb8b260238ec9ecb6bbd965259", + "transactionIndex": "0x1", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x7900ae1a7b6c21f147f6ad27d8b2822a30803d6380f55d0eb33ed36e1dc35d10", + "s": "0x4401c414cb2291df96a75a433f26bf05abed976487b43a704d85572438877741" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x8361a4786bd2081acbf4a0802aab618d6aa1c674", + "gas": "0x5b8d8", + "gasPrice": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "maxFeePerGas": "0x23cf3fd4", + "hash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "input": "0x078fc43000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000f115584f7000000000000000000000000000000000000000000000000d763281af8acbffc00000000000000000000000000000000000000000000000000000000034e01a70000000000000000000000000000000000000000000000000ede120b0b0b800000000000000000000000000000000000000000000000000005f3f3c10cd7400000000000000000000000000000000000000000000000000000000000000a834d000000000000000000000000000000000000000000043b5c9e50ece56a7cc95e000000000000000000000000000000000000000000c65ba00c505c3103000000315a892a4d02c5c1169d5f0e4f7cb4130cc0d13800020000000000000000000900000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000063cca0fafb52a0000000000000000000000000000000000000000000000000000000068a5ce5d00000000000000000000000000000000000000000000000000000000000000e00000000000000000000000008361a4786bd2081acbf4a0802aab618d6aa1c674000000000000000000000000000000000000000000000000000000000000000000000000000000e20a8903d9fa15ca380000000000000000d98a8c58ae5c8eb4000000000000aaac7ccf4f95012fb000000000000000001518a6cb136ff2ec07000000000000000000000000000000000000000000131ba2ee23a8d1d090000000000000000000004563918244f400000000000000000000006a94d74f43000000000000000000000000000068a5ce5b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041ca4402002b4df0c349b539ad62d7b8eb2c396e7a2a2a4fce9a253a9485c781b156ac977f9ba4a18f69e5a54261bf94f16ecb245b164a102fd2078985497b51d91c00000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xda3", + "to": "0xc90d7c41974397cb8b260238ec9ecb6bbd965259", + "transactionIndex": "0x2", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xac496ed50541793c57be842cb4ec3ef4b934bc082c296da66f81925129a89509", + "s": "0x53b96d8ad942ab7743890b25d3e7af790a28d6bd116cfaf2bd2135c659bae2e4" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x6b063481f8216b5624ec496dd72376bef00faffd", + "gas": "0xc3620", + "gasPrice": "0x2d2a4df1", + "maxPriorityFeePerGas": "0x95b0e1d", + "maxFeePerGas": "0x97f474e8", + "hash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000084ca8bc7997272c7cfb4d0cd3d55cd942b3c9419000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000084ca8bc7997272c7cfb4d0cd3d55cd942b3c9419000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000097d5014cb66f000000000000000000000000000000000000000000c570539d7c13b90257976a000000000000000000000000000000000000000000000000000000001ae32af80000000000000000000000000000000000000000000000230ec810de9c63d000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c360000000000000000000000000000000000000000000000230ec810de9c63d000000000000000000000000000000000000000000000000000000000001ac76e250000000000000000000000000000000000000000000000000000000068a5cea0506ca878e4bf5525292d5c63dfb3f96c2d1e319ae14bc546dc75b9d61da6b4f7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000230ec810de9c63d000000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000416b237d30af3fa86383cdb796eb81403acfbcd2b5b16c085c6aec00549e91d60a08d87f822a06b411f335be0e4a16bde6e630a2697e7cf553e4314d09257287031c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000004c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d64900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000036447a4a98900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000203165e06d852288d50b640d10e4f50000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000004104000000000000000000000000b60b34d830f26c5a11c47ddb1e0a1f31d90a78b10000000000000000000000000000000000000000000000134f6e6f97fa338eb80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000c601d4ad4d401000000000000000000000000000000000000000000000000000000000000000000000004104000000000000000000000000a14afc841a2742cbd52587b705f00f322309580e00000000000000000000000000000000000000000000000fa7469b560e4519070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000c601d4ad4d4010000000000000000000000000000000000000000000000000000000000000000000000041050000000000000000000000007858e59e0c01ea06df3af3d20ac7b0003275d4bf000000000000000000000000000000000000000000000000000000000edb15d4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f0", + "nonce": "0x1585", + "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", + "transactionIndex": "0x3", + "value": "0x0", + "type": "0x2", + "accessList": [ + { + "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", + "storageKeys": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xa214b15162c78c6464e5ab06ab626d767ffac37a0858a2cbd1ab2e078f4bfd88" + ] + }, + { + "address": "0x2db07a3a657b6e16999b67d48500486a1cb0d649", + "storageKeys": [ + "0xf297cbbe3a3ff7264e184be5e03b61da7ac48af65d6ce5972c71bf59570c7406" + ] + }, + { + "address": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", + "storageKeys": [] + }, + { + "address": "0x7858e59e0c01ea06df3af3d20ac7b0003275d4bf", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8" + ] + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "storageKeys": [ + "0x3756065a1737877f5b2bc32c8c3f70b69057844ed80018b7b266bffc54ef98fd", + "0x50b15c2f32347ba182685596e2bd684e73b17d41f907c1d56bd125291ba3009f", + "0x618059526d7d1bb5608c8e3a0740d1f656fa8a764ecca600a8e0e3e0c313ce66", + "0x8de37585c313a58117507b9d5d325d1ed41e8e98deeee1ae5852b930e365e5b0", + "0x982ddcb64cfb6b923c9d3f3239160c877d57f1425dd7a125c7ebd1de727ae229", + "0xc877f7c350d0ae49415387c376c008036a6d8a86d61bcbab69c1f22659674f4c" + ] + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x406a6663cff73aaf362dd9ff433725f76c50718c3325dccceca1eb4b4f496798" + ] + }, + { + "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", + "storageKeys": [] + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x5838486f9709d509ca183bfd62059dc0b93c11a7aeb478ba6d797befb42741ce", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x93c40640380b12c4457039f9068961907821d6675c1c864b3d7911da89086f7f", + "0xcc236083e86ee3df0f3160002f381f1404bd44c4dec1322196f34d52548202f5", + "0xfeb6616e93dc1fa98d03f6845393dc522313be256222f7c27d490e56de385c92" + ] + }, + { + "address": "0xa14afc841a2742cbd52587b705f00f322309580e", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x000000000000000000000000000000000000000000000000000000000000003e", + "0x000000000000000000000000000000000000000000000000000000000000003f", + "0xf38081dfdf02e3ffc50aad06e4e2844f32f17b04fcae6b632a7977242c8e0838" + ] + }, + { + "address": "0xb60b34d830f26c5a11c47ddb1e0a1f31d90a78b1", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x9b637a02e6f8cc8aa1e3935c0b27bde663b11428c7707039634076a3fb8a0c48" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0x9d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dc", + "0xafe9768e778c9438b5b48d29377de15c330f2905e9106aecbd6ac88e3f82cea3" + ] + }, + { + "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", + "storageKeys": [] + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", + "0x47f0d8c24352282bd22f6c16110950f1718ca728a004736610a9835aafa6c77c", + "0x8b5463664f7b4b91a8418860695dc9b177a054a3467899bfa0769d27d031a6f2", + "0xbcdfe241f132b38477ee35d4e497c725e4d20778d490eecefb1940b28dbce0ca" + ] + } + ], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xfb39be2cbd91adebb6d19764a63e590d26621a37e54664f44dc874d3e9a98e63", + "s": "0x3df8c4cd15e261ea7d2f52d5e48e0c9a45348024d994a2bb46fb83bde1f16d2c" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", + "gas": "0x6270", + "gasPrice": "0x38cc2a7c", + "maxPriorityFeePerGas": "0x14fceaa8", + "maxFeePerGas": "0x3bfc6fc7", + "hash": "0xa655290cbb744571dd7455dacd45109cb3c7adce13392aa7ed3f2f64f5b644e4", + "input": "0x3e2cde32361a914a98179ab5c890c1e000b5d03fbf2f7db2d288ddfa477cf663", + "nonce": "0x324506", + "to": "0xfbd6acca70a8632061593f1a07056affb7965ac3", + "transactionIndex": "0x4", + "value": "0x1960988987cdc7", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x50d24e5c7715bfa5a0ef2d74dcd9468bef8c23efe870dea425553fa945f05c6", + "s": "0x4a95f1d9194a3bf3b6a04e5bc438ca16d49daab68567fd6ecb989f568fac56e1" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x6d478cb16317680a517ff89253f82032efdc31ba", + "gas": "0xafa0", + "gasPrice": "0x6b55cbd4", + "maxPriorityFeePerGas": "0x47868c00", + "maxFeePerGas": "0x792d1e40", + "hash": "0xfeee6a0b16850d3300339f32be2765355e301689b0f430b9f7db1695806ace46", + "input": "0x095ea7b3000000000000000000000000111111125421ca6dc452d289314280a0f8842a650000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xdbb", + "to": "0x3b50805453023a91a8bf641e279401a0b23fa6f9", + "transactionIndex": "0x5", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x9f714c12cf41e8bdb0e1756715e0d8b62d07e354dc87fcb11377556c56ec738", + "s": "0x279a0b129838df35a3da6adbe60a83729229f608f8654c5f8726e4bea4424f78" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", + "gas": "0x79173", + "gasPrice": "0x708ad4a2", + "maxPriorityFeePerGas": "0x4cbb94ce", + "maxFeePerGas": "0x73bb19ed", + "hash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "input": "0x33739082000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000180000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c3000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c30000000000000000000000000000000000000000000000000000000000000b60000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000002b838c5e3c210000000000000000000000000000000000000000000000000000000068a5d0aa0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000007e0000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000000000000000001ff3684f28c67538d4d072c22734000000000000000000000000000000000000000000000000000000001185c2f9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ff3684f28c67538d4d072c2273400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000005c42213bc0b000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f9000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004e41fff991f000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222000000000000000000000000163f8c2467924be0ae7b5347228cabf26031875300000000000000000000000000000000000000000000001135683983035c6d9000000000000000000000000000000000000000000000000000000000000000a09ec76e970eebf8e87ffa04210af43c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e4c1fb425e000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5cf7d00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028438c9c147000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000002710000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001a4dac748d4000000000000000000000000163f8c2467924be0ae7b5347228cabf260318753000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000114bfd68823e680000000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef0000000068a5ce8e000000000000000000000000000000000000000068a5ce520000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001c308445be1fba35529ad765babeb7d04e657d10b1e885929e9088fb8de4e8a73137377dc9e14ddb6b6209e77701b660572de494c7eab10db93d7249805bba87eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e22200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001243b2253c8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000163f8c2467924be0ae7b5347228cabf2603187530000000000000000000000000000000000000000000000000000000000000001000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041cf307ce44d3877629b9e0188f9a2597ccac6729afd8aef39e6e2c2656685cec26a3a780a735e3399a023174e86b20c9c9f34621bf284c9ad465e94ff0ec532141c00000000000000000000000000000000000000000000000000000000000000f38077731f06dcf1ed1ab9112da6f1043441c3e18931b8b201a5332f021cbdcff38077731f06dcf1ed1ab9112da6f1043441c3e18931b8b201a5332f021cbdcf", + "nonce": "0x324507", + "to": "0xbbbfd134e9b44bfb5123898ba36b01de7ab93d98", + "transactionIndex": "0x6", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x685e8b339917d4d4b64a120035f225b0178ee8c98c3ba2aee1931ce5145bff06", + "s": "0x1998af1516cf3e23f3e8bb867bfc5b2fca88a21526d0863a0980726fc424a2e5" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x6bf97afe2d2c790999cded2a8523009eb8a0823f", + "gas": "0x15d818", + "gasPrice": "0x65045d54", + "maxPriorityFeePerGas": "0x41351d80", + "maxFeePerGas": "0x76630193", + "hash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000899d774e0f8e14810d628db63e65dfacea682343000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000899d774e0f8e14810d628db63e65dfacea6823430000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000a374bf76d4c42c8c8c00000000000000000000000000000000005cd4d66627e732daca892b48abb16400000000000000000000000000000000000000000000000006b06fe010314e3e0681000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000006ac7510475c22e2e3060000000000000000000000000000000000000000000000000000000068a5d4fb98b80e71c53f4b325f7753088b0d8ee55933f28c326277958a47f93bc54a095400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bebc200000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000414a13957a7c51fc3c1579a62c6160cf8fdf6cbdb186688f8a71c5085ce84e5cfe6cdd79d18f7e34d99a555aaf04a2c7787f9ad58f7bab041c8a94500b5f051a201b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060bf78233f48ec42ee3f101b9a05ec78787280060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001e4760f2a0b000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000001388000000000000000000000000000000000000000000000000000000000000000e4d505accf000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000720d7562000000000000000000000000000000000000000000000000000000000000001c219463f0255ddbed6266f8998f2c3d706c12eaf9de73c3b9f082b0a583fce90546a423f6fe118493aa5f9f57adfd73963e67bb89e6b20faf95821275b6b1607e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000340000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002644dcebcba0000000000000000000000000000000000000000000000000000000068a5ce680000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff860000000000000000000000000000000000000000000000002d2e61b16af396e5000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000bebc20000000000000000000000000000000000000000000000000000aa03ac85e927d00000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000000000000000006d9aa07971bc4e6731b47ed80776c5740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000419969dd20c05e5c0ca3d82fed5f912ae3678db7452adc4bffeb8ae098920f9e2a7804cfa5e1e42f85209c494f49914c39258c7668a992f59a01b2fe2d73d445771b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000899d774e0f8e14810d628db63e65dfacea68234300000000000000000000000000000000000000000000000000000000000027100000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000aa03ac85e927d00000000000000000000000000000000000000000000006b3d96e8c277e88e06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", + "nonce": "0x18733", + "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "transactionIndex": "0x7", + "value": "0x0", + "type": "0x2", + "accessList": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x650f69dead2eeee68214ac0bc29f23bc7e2f82c89293ef4b23dc1591bc737c67" + ] + }, + { + "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", + "storageKeys": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0x88d075c869ce192f20da9bfc0d2db81b73b4aa4af2ce17e52384cb021d06bd06" + ] + }, + { + "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", + "storageKeys": [] + }, + { + "address": "0x800c32eaa2a6c93cf4cb51794450ed77fbfbb172", + "storageKeys": [] + }, + { + "address": "0x366aa56191e89d219ac36b33406fce85da1e7554", + "storageKeys": [] + }, + { + "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", + "storageKeys": [] + }, + { + "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", + "storageKeys": [ + "0xa3b7a258ccc3c19490a94edab51a442dd2eeac4318bddede8cd899595d08f28a" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0xb84fbcd09e20fa700ddef111765a21785d2290b3c7c8719a27e4b60b59126522", + "0xda591c30fe54b3edd3bcb5d0d916c5c472e3ad81645d0312a5e73f3708e8708b", + "0x0bc90c98aed598fd15d9075ded522981aeb2ee369c8117e46bd494dc17c29999", + "0xdbde769b5281dad4214cceeb1871ab281fb8fd2a4443141db1078642029ae248", + "0x9d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dc" + ] + }, + { + "address": "0x60bf78233f48ec42ee3f101b9a05ec7878728006", + "storageKeys": [] + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x44624a8a323b583a84b5812478c554a5e284223b469e9f7039175023c0e54c3e", + "0x3ad18d7747f05925bebbb1df8860daa9cd402d902420f95ce10c49792803c3d6", + "0xcc236083e86ee3df0f3160002f381f1404bd44c4dec1322196f34d52548202f5", + "0x88afba62e6432e4d0a3e39a2be587d39c0b93368d66cedb0531bb5292040a552", + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x5cfccd15aa8eff180914a82b4caf3b39b3c62421a17404ea7a7d0c80fe766666", + "0x659f5b53123b3e7a886575e106645d4d7c5af120440f3f409542b3987fa1ea07", + "0x77d5014beb071d1c3dabbdbdba61f9a5cc3ffedca11c102ef7e2fae619d04e12", + "0x6e91f60197c982353033e86512311820683e018e0f39963c5d00c2c490bc45d3", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3" + ] + }, + { + "address": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", + "storageKeys": [] + }, + { + "address": "0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45", + "storageKeys": [] + }, + { + "address": "0x1346d1ee3fb1b65fecfcb65c149ca0702c286f53", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0xc0d1c00078410fd0164580b0bad93d8a579580d06cf45fc2696a823498097b8a", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "address": "0x899d774e0f8e14810d628db63e65dfacea682343", + "storageKeys": [ + "0xd64773870f40323194fda2d1773a23183ba723843a4aa8fb90d5eaf49c342f55", + "0xef7cf59cb40a7ae1b5e03b08af7ed07c83f41406ca13eaeed923c1f2fc8bbb2a", + "0x70f537a6c3c5e23e6deecb5baafd173071015ed695aa4c5ab2072a13f49234e4", + "0x8eb102192bd88c1782b7bb42421db4a5cda302102196a664e54ad03c03e19e1e" + ] + } + ], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x6f71e41e8630b35dea48e57d1afd291651a5f15c338133c4976267ac00dd9e56", + "s": "0x45689f732b0a8e6be5bdf5a45db561f33cae7e976f8e8ebdbcbe2e51dc40869c" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xc8ad355c8291cbd52e738ed1df1f5ccbbbbf00ee", + "gas": "0x76186", + "gasPrice": "0x2d50b891", + "maxPriorityFeePerGas": "0x98178bd", + "maxFeePerGas": "0x9e685dbf", + "hash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f4308b0263723b121056938c2172868e408079d0000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f4308b0263723b121056938c2172868e408079d00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000c5d6c3b2125dc8000000000000000000000000000000000000000000000000000000000000f810081d2232000000000000000000000000000000000000000000000001a0d9ab1774735d130000000000000000000000000000000000000000000000000000000002160ec00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000ee007a00b876742c33491454447a40bc63d3d4680000000000000000000000000000000000000000000000000000000002160ec000000000000000000000000000000000000000000000000199b40c6d1c841a520000000000000000000000000000000000000000000000000000000068a5d50f222f46d540f557f4c5cf7864f3cdddcc5ecfdce6ccc7d7fa9401501c00c6eb28000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002160ec000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041d9644c6be7266136904797f084e8352986344bd869f4a9731be80d21ebbee746515f68447acfcdeb724248b251dd1b22b0fc5b6a7a551eb9bb54d9de4e2925fc1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002644dcebcba0000000000000000000000000000000000000000000000000000000068a5ce680000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff860000000000000000000000000000000000000000000000002d2e61b16af396e4000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000020b32aa000000000000000000000000000000000000000000000000001d27419875a7660000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000000000000000003eeca8e9088f6bdbdb18cf66347231200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000020b32aa00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004151d76016fd78972466adf9211a6ed7f7920ebefdd05878b2aa1147c8516d7cdf0725c40332cdf2196f02bb1af34b17b21e703acd2d67eab2204dfcab55e8023b1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", + "nonce": "0x15d2", + "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", + "transactionIndex": "0x8", + "value": "0x0", + "type": "0x2", + "accessList": [ + { + "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", + "storageKeys": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xa214b15162c78c6464e5ab06ab626d767ffac37a0858a2cbd1ab2e078f4bfd88" + ] + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x3ac39fa695c7fcc2f08ed03f39a14f6200dcd6d70476484cefdbd20e318a12f6" + ] + }, + { + "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", + "storageKeys": [] + }, + { + "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", + "storageKeys": [ + "0xa3b7a258ccc3c19490a94edab51a442dd2eeac4318bddede8cd899595d08f28a" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0x0bc90c98aed598fd15d9075ded522981aeb2ee369c8117e46bd494dc17c29999", + "0x9d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dc", + "0xdbde769b5281dad4214cceeb1871ab281fb8fd2a4443141db1078642029ae248" + ] + }, + { + "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", + "storageKeys": [] + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x2f4eccef1a2ac26ee311f5ed3175b060e147894716e6aef238fb247a8c0442ca", + "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", + "0x4282b1b811d28a715ea8710781664398187c8e7782bfa23d89b52b7df4a2d8f3", + "0x735ee752cf3aae249c79a037f284ac2a506e6033138d147b09b48992c871ad59", + "0xbcdfe241f132b38477ee35d4e497c725e4d20778d490eecefb1940b28dbce0ca", + "0xd7a51ade5c6492019478dc383052660ff7a3e7e43c6807d36c3e98ca0308f43a", + "0xded6b53414d9315f8b52550ee338588467e17d823032131926cff044d8e24022" + ] + }, + { + "address": "0xf4308b0263723b121056938c2172868e408079d0", + "storageKeys": [ + "0x0c80462f4c67c47b6702d5d78f89be290cda72230796295a3f0d81e5ea5efacf", + "0x2f4eccef1a2ac26ee311f5ed3175b060e147894716e6aef238fb247a8c0442ca", + "0x618059526d7d1bb5608c8e3a0740d1f656fa8a764ecca600a8e0e3e0c313ce66", + "0xbcdfe241f132b38477ee35d4e497c725e4d20778d490eecefb1940b28dbce0ca" + ] + } + ], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xaecfe2fed3c701d85e5ab7a4429e75d30863c4e9f3bf2447e8776ae94dfbb299", + "s": "0x4736b0a001b7ab77ff092200b51f95a847da9e4ba87e19091f90b36445f1d7ca" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x943810707e090f1bdc486c4c990d43da3b162e52", + "gas": "0xf456c", + "gasPrice": "0x2d50b891", + "maxPriorityFeePerGas": "0x98178bd", + "maxFeePerGas": "0x9e685dbf", + "hash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f5581dfefd8fb0e4aec526be659cfab1f8c781da000000000000000000000000f5581dfefd8fb0e4aec526be659cfab1f8c781da000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000c601d4ad4d40100000000000000000000000000000000000000000000000000000000000000f08207d3003000000000000000000000000000000000000000000000000000000003c18ecd8000000000000000000000000000000000000000000000318d845d95db27be800000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36000000000000000000000000000000000000000000000318d845d95db27be800000000000000000000000000000000000000000000000000000000003be8c78f0000000000000000000000000000000000000000000000000000000068a5ce8d506ca878e4bf5525292d5c63dfb3f96c2d1e319ae14bc546dc75b9d61da6b4f700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000318d845d95db27be8000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000004108bd95c77ca0e0300f77d6084f777c937cdf6c73440bcb8bef9555851961773079721b9c1449707d60e2310bbbbb4cd73197ce25c4acc60262db616181d421b51c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003400000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d64900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000026447a4a989000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000002e563eed429041ddf3b86e77d08986000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000d9b4f53e13ad00000000000000000000000000000000000000000000000000000000000000410500000000000000000000000087986ae1e99f99da1f955d16930dc8914ffbed560000000000000000000000000000000000000000000002c2b9c5fcc62d54533900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000d9b4f53e13ad00000000000000000000000000000000000000000000000000000000000000410100000000000000000000000092c2fc5f306405eab0ff0958f6d85d7f8892cf4d000000000000000000000000000000000000000000000054e9ab31a1339be5930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f6e72db5454dd049d0788e411b06cfaf168530420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000448d7ef9bb0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41000000000000000000000000000000000000000000000000000000003c196d470000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", + "nonce": "0x1539", + "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", + "transactionIndex": "0x9", + "value": "0x0", + "type": "0x2", + "accessList": [ + { + "address": "0x1820a4b7618bde71dce8cdc73aab6c95905fad24", + "storageKeys": [ + "0x26ffaf3a152d9fc724f491aa88ce2ea63ad2e54309955f7fd1c8cc431e36cd34", + "0x65e2bcb9b53b49e6a207a8cad45c445797ac132820851a5c2ca766f4bf70616b", + "0x6651bfb587c6c83e7c5b50954a25fb69217eaf629b55ce7bce79d7e0393b515c", + "0xa208009c466c46de16aa4c0f6ebe699a7e5312ea2340511e7a3493d58c777750", + "0xb2d447267ac2372fd4f82b45f0b2a765998bdb05d5e4e3ea4ea1196b5b7d4055" + ] + }, + { + "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", + "storageKeys": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xa214b15162c78c6464e5ab06ab626d767ffac37a0858a2cbd1ab2e078f4bfd88" + ] + }, + { + "address": "0x2db07a3a657b6e16999b67d48500486a1cb0d649", + "storageKeys": [ + "0xb9a049cec27bd0e04f03ab406fe4a5b51e014bbb45dde170cb834dfe14d24e95" + ] + }, + { + "address": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", + "storageKeys": [] + }, + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "storageKeys": [ + "0x07c7175170b0f7dbe5045e3aadd9d8d1a1bcd86d67b2f66b428714307f9deece", + "0x0e3d19729328f478ffc901c115f05d0195e5b68e282b84da93c6bafd953fdc80", + "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", + "0x5a57ab83a89afb99a56f8abebbc3d088fc84de8c39b430a65f65eb47fde6dad0", + "0x94cb0693589c4317987c2bdd65ee12478eaccf583a76f667a44bfc1f5ee9d33e" + ] + }, + { + "address": "0x87986ae1e99f99da1f955d16930dc8914ffbed56", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a31" + ] + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x495bc0bde1e41fc4a3b21299a3f1a2ed0b63f941d98cd981904995296886f56f" + ] + }, + { + "address": "0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000000c" + ] + }, + { + "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", + "storageKeys": [] + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", + "0x2209089ff8bd3b7bac6ff21ec014fbd229af53b4ecc03dcfbd102128759cb6c8", + "0x33d96ce24063b8b087fa8c040c066e1b9739925a812f2a0c2202c9ef763d01be", + "0x5838486f9709d509ca183bfd62059dc0b93c11a7aeb478ba6d797befb42741ce", + "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3", + "0x9254cb65314db3d2d7ca17f753f1d9c7f1b6fa05111d18d10ed5b9519d1b247c", + "0xcc236083e86ee3df0f3160002f381f1404bd44c4dec1322196f34d52548202f5" + ] + }, + { + "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", + "storageKeys": [] + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "storageKeys": [ + "0x0e1b053921947bb61bee9f4bdc68bd6cab8cd39676a3cd25cbd3106515a600eb", + "0x463e11d6a09091abd5aa6409bcbdabd9d238935494dfe44240ecc5ea0b354ca3", + "0x5c53079ea7792e51eb61b662d072997b7fc830cb7c1fbf2e6dfc67a145adb39e", + "0x64ac251e964da0f5b6d07d47428fa7c41487ff293e1deb77eb407c15028dab0c", + "0x68d6103d434297b53d93172ff9b8e9fa609a873ee797a41b54b397befc982be5", + "0x7dd76b6185fc1dea9f4a90a6ff981e0a3e4f93b86e4ca82614c0e6daf68aa56c", + "0x7dd76b6185fc1dea9f4a90a6ff981e0a3e4f93b86e4ca82614c0e6daf68aa56d", + "0x80ff297fa2adcff46f46c76227076eddf7fcd5eb46559fed52522694ef9d5ca5", + "0x89ef6b4e32d5d82988d37d3a1fa7a16af850a0cec75c22bb7f54de6246e3415c", + "0x9ee8a636f0e458db742f50e2e2ad1530450af2611cd1652a371252abdedc2946", + "0xa5ab90ef73957dfec11eeabb333dccdc845a4f9bb24c2ecaa73241e72a97b1df", + "0xa5ab90ef73957dfec11eeabb333dccdc845a4f9bb24c2ecaa73241e72a97b1e0", + "0xae2dca3d72df02635ac422fe39c20b891efdf3630b23ee68b0b2cfeb0a922b20", + "0xb1622186449cb54cc8232698c69ae603adb41bb57566ca3651938555eb357a5a", + "0xb1622186449cb54cc8232698c69ae603adb41bb57566ca3651938555eb357a5b", + "0xbdd568ee226292b5392bccf8c984d00f7926aea871906d874009a37a5acb559f", + "0xd81a2e6b8d823272625dace0cd0304f8adc01aacbad3c8184dcbe8a3d88f83d0", + "0xd81a2e6b8d823272625dace0cd0304f8adc01aacbad3c8184dcbe8a3d88f83d1" + ] + }, + { + "address": "0xf6e72db5454dd049d0788e411b06cfaf16853042", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000004" + ] + } + ], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x5efc73acc9209d3c66c2aeded4e4a875bd8856b1674c7ea9ac46a647cc76e183", + "s": "0x63ceb18132c678a51071f869b1637d33b53006e620bf6ec991fda5a458abd94d" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", + "gas": "0x12b04", + "gasPrice": "0x708ad4a2", + "maxPriorityFeePerGas": "0x4cbb94ce", + "maxFeePerGas": "0x73bb19ed", + "hash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", + "input": "0x30be55670000000000000000000000000000000000000000000000000000000000000060000000000000000000000000ae1a530128950b1735674a975e1622872e556b59000000000000000000000000ae1a530128950b1735674a975e1622872e556b5900000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e22200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000304e4108473ed6d00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000c53e91fb904a5426b90d2fce78b7a29058931688395e3f1203b7bd652866cce6", + "nonce": "0x324508", + "to": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "transactionIndex": "0xa", + "value": "0x304e4108473ed6d", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xfcf73e22d0c3470cf5b073cdf239c1875127cefd0adcbfdc07df485e4f8ccf10", + "s": "0x118b537e5d953e7ae1082310a0a2cf80e1af3a0047d8aebf7144ed5fbbbb8148" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x80c700683ec017a190b132a4ce042beeb7c6b821", + "gas": "0x493e0", + "gasPrice": "0x2c523e86", + "hash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "input": "0x7ff36ab50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000080c700683ec017a190b132a4ce042beeb7c6b8210000000000000000000000000000000000000000000000000000000068a5dc640000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e0265346277ad201609308b506e901b520150a08", + "nonce": "0x1", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionIndex": "0xb", + "value": "0x621b921b80f2af", + "type": "0x0", + "chainId": "0x1", + "v": "0x26", + "r": "0xb99ac5e4528b39173dc5779c74f0e3a720f20531b73dad03f2596229cb3ab489", + "s": "0x17073a6061963ac8b4cef1ac5f57a703453c29f8b860f0045ffc1928bce0307" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x7830c87c02e56aff27fa8ab1241711331fa86f43", + "gas": "0x1e8480", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0xb2d05e00", + "hash": "0x65dfef793509b00a864042275789801fd0c89fe3fe1d67648c4bba8148fd511c", + "input": "0x1a1da07500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000015694000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000003840170eae1303ecb3b5809671b962b0b2d4f3aa000000000000000000000000000000000000000000000000003ad6b94d191000000000000000000000000000da80d2757f2eceab6c2c5a31e51c6db8b9af83720000000000000000000000000000000000000000000000000070413fe0b078000000000000000000000000001f7824205b9427666d6a4a35c223c2afdddb5f350000000000000000000000000000000000000000000000000671ab6cb65960000000000000000000000000009fcd0e5fb4e70845090ca8b61c9bcea79472f02e000000000000000000000000000000000000000000000000002f92040cf04c000000000000000000000000009a9a9aafed1590214f18ffd2c45b982ad05c96a4000000000000000000000000000000000000000000000000005ff4017bff8400000000000000000000000000d2ac77b70369bd47ba2e07004b42c12b5dae6d9200000000000000000000000000000000000000000000000000034e4695eac40000000000000000000000000075fb24e0faf3ae4057b6eb0ab567a3786d6b7dea0000000000000000000000000000000000000000000000000030994e318e0000000000000000000000000000ca74f404e0c7bfa35b13b511097df966d5a655970000000000000000000000000000000000000000000000022b1b746db77ef40000000000000000000000000093d3151e799c7c01a2bc24d9566bd64850f0d9ac000000000000000000000000000000000000000000000000005715aba96e5c0000000000000000000000000083a37983d7717dc946d6eb736e8be6cf3bb94b6700000000000000000000000000000000000000000000000001853a17d6a15000000000000000000000000000fbac3516677cc50dea378bc6452377e3bdfae7dc0000000000000000000000000000000000000000000000000075ec64cfa92400", + "nonce": "0x284ae6", + "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "transactionIndex": "0xc", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xbef5a78bce7f069bb85ece9f17a21ca4ff06156d81c1ff51e0f99f67d2f27c72", + "s": "0x416881a96e033a3b039e5cc791de1585c4338b94fa42b9563f0ebdfa91ab2894" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x078430ebd8db8288fd056d137e0e11cf67fb8fc1", + "gas": "0x326fa", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0xa7c2cc55", + "hash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "input": "0xc60db8a1000000000000000000000000000000000000000000000a2a792108221ac98c54000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000001c50000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000a2a792108221ac98c540000000000000000000000000000000000000000000000000000000068a67703000000000000000000000000000000000000000000000000000000000000001bf13c7019ddb500c11b8de954cfcce21aa46a6c287db7dd71d4c0c90cdeaba06743a4bdf8f0b9cb9a3dd580f4d57ad4de0a7b12c9125d1f97dd0bb19bca506ec1", + "nonce": "0x5d", + "to": "0x71a41517fe65890fe835d67fce17a9747112696c", + "transactionIndex": "0xd", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x746fa8b401730a75ff8832f0fe455f528f90cd5360bcb63f4364c5e397defcec", + "s": "0x695cd4e982301b54a79d0d66338485b28b51e27b220073931e1d370ec42a8c7a" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x7830c87c02e56aff27fa8ab1241711331fa86f43", + "gas": "0x1e8480", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0xb2d05e00", + "hash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "input": "0xca350aa60000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000000013000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000004fa31bbbb0729c76ca3fb7c5d466c1b30764749b0000000000000000000000000000000000000000000000000000000015476340000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000008e1e9185870f026be6b59219f673fe84481a329a000000000000000000000000000000000000000000000000000000002d27ecbb000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000060c531e7594102a7a9be19197c969639bebf5fae000000000000000000000000000000000000000000000000000000001cf8f755000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f8b2374fc5335176857aa83f8a37be8afdf8bac7000000000000000000000000000000000000000000000000000000002113fe2a000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000088a857dfc3ed7b4e326adbbe79224de634982235000000000000000000000000000000000000000000000000000000000e4e1c00000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f668293ea8362fe9dccd4499c23fcb00259196130000000000000000000000000000000000000000000000000000000002a9f1f7000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000026b23da6eb7d863bef139feb51ba027ec2f0769a0000000000000000000000000000000000000000000000000000000002faf080000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000de396526ede4218a67327cec9658e7571a0eac5c00000000000000000000000000000000000000000000000000000000017f2b8d000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000f5261acdfbe5b46b6c79271ea86d933603236899000000000000000000000000000000000000000000000000000000014437f0cd000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000006de7232e53fd11e218842e5506577837134a1171000000000000000000000000000000000000000000000000000000000311d3e0000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000006de7232e53fd11e218842e5506577837134a117100000000000000000000000000000000000000000000000000000000077e07a0000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000d5b12d6651b94d6340699077258feb3314d6b1ae0000000000000000000000000000000000000000000000000000000004661940000000000000000000000000be9895146f7af43049ca1c1ae358b0541ea4970400000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f000000000000000000000000000000000000000000000002ec03212a197a0c0000000000000000000000000084ca8bc7997272c7cfb4d0cd3d55cd942b3c941900000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c360000000000000000000000000000000000000000000000230ec810de9c63d0000000000000000000000000000d8775f648430679a709e98d2b0cb6250d2887ef0000000000000000000000007c06dfc7576ef157e111d80cd8ce98f8ab60feaf0000000000000000000000000000000000000000000000008b95e9381c0e24000000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f98400000000000000000000000006fd4ba7973a0d39a91734bbc35bc2bcaa99e3b00000000000000000000000000000000000000000000000334af9bea1f4c02c000000000000000000000000004a220e6096b25eadb88358cb44068a32482546750000000000000000000000009f3b333f36069244901885d5e520ffee722a4585000000000000000000000000000000000000000000000000106df6c44af68000000000000000000000000000faba6f8e4a5e8ab82f62fe7c39859fa577269be3000000000000000000000000c3bf801d58a4c0418d96eda0164fb743ad065aca0000000000000000000000000000000000000000000000016d4f1287753300000000000000000000000000006c3ea9036406852006290770bedfcaba0e23a0e80000000000000000000000002c8b4fba3b3706827c96f3e4ccbc0d1442dcd07400000000000000000000000000000000000000000000000000000016e43d727e", + "nonce": "0x284ae7", + "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "transactionIndex": "0xe", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xccb5a4f9cbbd52675934666dd5b55240a52fc8453a4ed02c0a667e222d7530fa", + "s": "0x5f1d42b6a68cd48c84bffb8d35663feeb910b2202d9ae077f34e0e47d7eed806" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xa03400e098f4421b34a3a44a1b4e571419517687", + "gas": "0x15f90", + "gasPrice": "0xa6f095d4", + "maxPriorityFeePerGas": "0x83215600", + "maxFeePerGas": "0xc92b663a", + "hash": "0x706cc7072418792c08feb0ace7ba254538265f6bfdb6282584f936160791d8e1", + "input": "0xa9059cbb0000000000000000000000000fac5094987a848754db82a7db870e635f12693900000000000000000000000000000000000000006d06bff6e90832e72f68a000", + "nonce": "0x9c174", + "to": "0xf8ebf4849f1fa4faf0dff2106a173d3a6cb2eb3a", + "transactionIndex": "0xf", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xa6227d8331598c8b57b985e5e11b799c6f5e15b7e5b64e1d233783d5edf18084", + "s": "0x251e93d98b77b2ab2a270200fdb90dde273121fe2f7b5e8bcbbd1d687780c002" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xae2fc483527b8ef99eb5d9b44875f005ba1fae13", + "gas": "0x544f2", + "gasPrice": "0x2f779f57", + "maxPriorityFeePerGas": "0x2f779f55", + "maxFeePerGas": "0x2f779f57", + "hash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "input": "0x2ba9dd6e1a4e35d307497da8d5d4052173410951b3d55eef268302615987d46003cc37387dbe544ff4f16fa1200077e0f63a424a4439cbe457d80e4f4b51ad25b2c56c271000a59e7c706586679af2ba6d1a9fc2da9c6af59883fdd3c83deea6ffc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2e0f63a424a4439cbe457d80e4f4b51ad25b2c56c0bb8353d6c618dd1040a79923cd74113ef0ed07c07d2b0e73e9e429906", + "nonce": "0x4cbf83", + "to": "0x1f2f10d1c40777ae1da742455c65828ff36df387", + "transactionIndex": "0x10", + "value": "0x5b", + "type": "0x2", + "accessList": [ + { + "address": "0xdd6e1a4e35d307497da8d5d4052173410951b3d5", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x9c04773acff4c5c42718bd0120c72761f458e43068a3961eb935577d1ed4effb" + ] + }, + { + "address": "0x615987d46003cc37387dbe544ff4f16fa1200077", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000000000000000000d", + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000016", + "0x0000000000000000000000000000000000000000000000000000000000000013", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x28d47d5a1b1bb6d81ee8f3296c3aabe6858274ba016748dc240a0c7b404bed4e", + "0x81578d72e57cfe5afd3cabf194b9dd0cd31cbf55328ad151e90cde0d8a724a2f", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0xc4cd4eff418a87bd16e163858527636e3f62260f9fd3e6abc04042e6b2a417ed", + "0x0000000000000000000000000000000000000000000000000000000000000010", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "address": "0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0xc02c10ae588f2466ea6e6350d07ab12ee7521cf6f0c110cec9b4bd1ec5838085", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000014", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0xac6fb4f0f81e11dc1f89f596e243b0ed419667343ccffe17523030f10980cedd", + "0x9d8106a7b639091777047eab6393a843ae4f778b78087f1dc0a2a206ede77128", + "0x28d47d5a1b1bb6d81ee8f3296c3aabe6858274ba016748dc240a0c7b404bed4e", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0cc3e71b6c8503b085fba098fa97a196e68800a75592ac94ee4fd52a7743498f", + "0x000000000000000000000000000000000000000000000000000000000000000e" + ] + }, + { + "address": "0x7c706586679af2ba6d1a9fc2da9c6af59883fdd3", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000588", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x087ee8928d220a836313fd42a2026f22b82c654c81888dac4ae8bd03caea005a", + "0x0000000000000000000000000000000000000000000000000000000000000587" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0xf6cc6c4222dae194a09f19d368f4b2b85698ddef67e513b005143d861f8ea8e2", + "0xbd5af5151dcb9feb2c4ef23509c863dd4415e4d2c27b5c08786933a8ed41acc7", + "0x35425d932c70410b9314c106b34cf243d577a8b57c3baf57fb710448b88ade38" + ] + }, + { + "address": "0x6c618dd1040a79923cd74113ef0ed07c07d2b0e7", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a" + ] + } + ], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xbb4c027501530e321903206f7cbaf17b7410586c68a6a75ffebd5a3c3f634232", + "s": "0x48896f0e5f5fec1b2d65c3cf6c04bd5ba55930b86f023b1059438343dc2e716e" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gas": "0x15f90", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0x2e90edd000", + "hash": "0x341b093276998eaf55ba531d7cb2be1ff32f44a398c85b60d4180791cdadf218", + "input": "0x", + "nonce": "0x23db9d", + "to": "0xa5ccd022e4b4ac431deadb329e20aa76c4a80f5a", + "transactionIndex": "0x11", + "value": "0x3ff2e795f50000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xde0674de89b18bb5bc3c687263f58e7649bbc74344b35b95d891b22d465a5daf", + "s": "0x5729711edfae9add35453fd71f65a69aff60d1b7f7323efa79bfe19483b28bdf" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xd24b2b3f3420cda82d40e0c8584b88ce7ec386e8", + "gas": "0xfde8", + "gasPrice": "0x4fb1722d", + "hash": "0xa7c324afd989fec33f0436d148f3e9ef90f7159b55075827aab7b72d6840a977", + "input": "0xa9059cbb0000000000000000000000005626213e557182a6d19048d29b535b5d7f5408be0000000000000000000000000000000000000000000000000000000129d00963", + "nonce": "0x0", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x12", + "value": "0x0", + "type": "0x0", + "chainId": "0x1", + "v": "0x25", + "r": "0xa9a1b25fa18f5c88abb741c220dc4bea6660040c33c777fcac746a6edb6c4e86", + "s": "0x1f0d5d0cd66e7d4153759a7124be88be0e2fe6c9f7aa477b0604c6a6fb328266" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x260b364fe0d3d37e6fd3cda0fa50926a06c54cea", + "gas": "0x15f90", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0x2e90edd000", + "hash": "0xe5cb77f931850a0890a14d4ae7f73fe1bad375114d0ccf680c7c744d1f73a045", + "input": "0xa9059cbb0000000000000000000000005a617641788bc9c3a91696eda1bb66c60034c9b60000000000000000000000000000000000000000000000000000000042636c39", + "nonce": "0x75b0", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x13", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x957458fa189a658986928ed43f8867206b50af621a7311ecc38adc102f32dcd9", + "s": "0x9dd044eb1178b7b43402aa135d7be8ad5f4a3bbbd189a04c2be57b2f0f3b799" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x5000afd95cbc51054caf4c5330342890ead87b70", + "gas": "0x3f950", + "gasPrice": "0x6b55cbd4", + "maxPriorityFeePerGas": "0x47868c00", + "maxFeePerGas": "0x792d1e40", + "hash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", + "input": "0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000068a5d54f0000000000000000000000000000000000000000000000000000000000000003100604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000003070b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000001351609ff758000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000027213e28d7fda5c57fe9e5dd923818dbccf71c4700000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000005000afd95cbc51054caf4c5330342890ead87b700000000000000000000000000000000000000000000000000000000015862eb60c", + "nonce": "0x117", + "to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", + "transactionIndex": "0x14", + "value": "0x1351609ff758000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x50d994452bd34a1017f8dc01715c4314619e45386b47fdb5941c0774063c6e23", + "s": "0x19a353f77421f8b1b6f337318443ff1285049f98e20ed4fb696cf30d91fdb2a" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xc35fb86f962ea955751a793a007b5cdd44f798d7", + "gas": "0x108bf", + "gasPrice": "0x2c523e86", + "hash": "0x8af00935a2db3f2e066c91359011f9e29093f62a7616e816413f2710dbfc4b41", + "input": "0x23b872dd0000000000000000000000007d7990b713c3497937fac4331176c127710b97d500000000000000000000000016fbc59070699f26c094fa8716b743561e0c53d300000000000000000000000000000000000000000000000000000000148b1abe", + "nonce": "0x62c25", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x15", + "value": "0x0", + "type": "0x0", + "chainId": "0x1", + "v": "0x25", + "r": "0xa427d9860091d1c471e62fd44eb20562ed1cd42cd34fa0125a54479dc408d9d7", + "s": "0xdff66fea1e4737178aefac617bc5141e942818d9f6ef234add9380d741a9d06" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x5de41533c43766bb1181de4826a7f8f2e4e64549", + "gas": "0x5208", + "gasPrice": "0x330fb22a", + "hash": "0x7c406076c4f872219370ca69e2e9dfb8096c47f514615aecda99577551b8cba1", + "input": "0x", + "nonce": "0x0", + "to": "0x0c8aa5263afde3c43a0fe88aed2b10ade922e666", + "transactionIndex": "0x16", + "value": "0x6c8ae427399ab0", + "type": "0x0", + "chainId": "0x1", + "v": "0x26", + "r": "0xc579b2efa5d6a1c35c409381fd366c9a02410bb576fd9382bdb8e8658b8263f1", + "s": "0x6e4bc46e650c4bb7c05f82bff0def0922414b9844680f7282425a21787443a9c" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x3ffa6671d869ae0d923a17505e633e700fb8e35a", + "gas": "0x3d090", + "gasPrice": "0x14bfac694", + "maxPriorityFeePerGas": "0x12a05f200", + "maxFeePerGas": "0x14bfac694", + "hash": "0xef7c2d4ba0dbc86ccfd07a62ca7f843ea8cdc1587011fd8c14ba640f1535ac79", + "input": "0xa9059cbb000000000000000000000000842264311e492fdb425e8430472b6f9a4f66048300000000000000000000000000000000000000000000000000000000001ed2a0", + "nonce": "0x1c", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x17", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xd1394a94128159724fdda3ee2861ebdf90cee5622051e4e0033d09ee3f3dca4", + "s": "0x6dcb716ca9c8bb2d4a3a036dc128b5a9d6f3580aa94951a60402e4fab1622ae9" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x552fe7e19ecd9789e57131c09712977b4d075cbe", + "gas": "0x5208", + "gasPrice": "0xd69f9dd4", + "maxPriorityFeePerGas": "0xb2d05e00", + "maxFeePerGas": "0xe158605f", + "hash": "0xac88e9bd517db66ea5eebd8caba9d5c33ddfce1f779eef3e6821e15510f4c864", + "input": "0x", + "nonce": "0x0", + "to": "0x76eeb4c8b149738a9b198d866c80e8087a0a4f17", + "transactionIndex": "0x18", + "value": "0x2e8f847e4fef28", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xaadb63e5503f6f955be7a06acd51010c00e6d49a2f79f186648be38bd81513b0", + "s": "0x4f542d1920058fdbaa15289d3cea5ab96edec8a2a2ae581c82e733795dce227" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x4791eb2224d272655e8d5da171bb07dd5a805ff6", + "gas": "0x186a0", + "gasPrice": "0x6a5efc76", + "maxPriorityFeePerGas": "0x6a5efc76", + "maxFeePerGas": "0x6a5efc76", + "hash": "0xda8bc5dc5617758c6af0681d71642f68ce679bb92df4d8cf48493f0cfad14e20", + "input": "0x2c7bddf4", + "nonce": "0x6233", + "to": "0x62b53c45305d29bbe4b1bfa49dd78766b2f1e624", + "transactionIndex": "0x19", + "value": "0x0", + "type": "0x4", + "accessList": [], + "chainId": "0x1", + "authorizationList": [ + { + "chainId": "0x1", + "address": "0x89046d34e70a65acab2152c26a0c8e493b5ba629", + "nonce": "0x2946", + "yParity": "0x1", + "r": "0xa8a2a3ccf59245a4e58e863d0df6bb76f9aa2cb9c1d7eff9a39f29169a89d2a8", + "s": "0x7733d3223be9565ec2f827564f966ed0af413a91153eaddf4f6ab3304ea259db" + } + ], + "v": "0x1", + "yParity": "0x1", + "r": "0x3b863c04d39f70e499ffb176376128a57481727116027a92a364b6e1668d13a7", + "s": "0x39b13f0597c509de8260c7808057e64126e7d0715044dda908d1f513e1ed79ad" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gas": "0x15f90", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0x2e90edd000", + "hash": "0xd7938913fd206fc1ef384e45dada725badd5a3ff87a793d9c432b70488a7bcdb", + "input": "0x", + "nonce": "0x23db9e", + "to": "0xe401a6a38024d8f5ab88f1b08cad476ccaca45e8", + "transactionIndex": "0x1a", + "value": "0x3ff2e795f50000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x6989bb3ab8e8886cc26c334042057b945fbafb19338cfa4a108c42ab6132d789", + "s": "0x3ddf325b978ef21761cb821b85b5b15a65ef412099cc91104039b5da122b5186" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gas": "0x15f90", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0x2e90edd000", + "hash": "0x80c2402d4dbfadb46899b4ceb48f3851c8be0d08eb399608b6966f401653e60d", + "input": "0x", + "nonce": "0x23db9f", + "to": "0x3b26af33b78b1414e40c83be39a6f1b924b1e08a", + "transactionIndex": "0x1b", + "value": "0x3ff2e795f50000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xb9d797a14458207ec151efc427bf04203e663450d412f2edcb687b4c5cc0625f", + "s": "0x5a1e4dee44c870e45ef0aeb6373c8f87c2767f624b9c1c5eb120d37caba21816" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x2c61206798f1ab3bce5833ecdd4a78aeba2e6b36", + "gas": "0x247020", + "gasPrice": "0x23d05144", + "maxPriorityFeePerGas": "0x11170", + "maxFeePerGas": "0x8f0d1800", + "hash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "input": "0xf83374d2000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000006000000000000000000000000b167d99000cec6232e3b27f7f01d2b41c60f7fdc0000000000000000000000003b9c214a501b2ae33ab1793b57b09879a754f2ef000000000000000000000000c5327f8a6f6ea98928ff6a893d74a5cbc743f170000000000000000000000000f92c421115b1f11203abcfce78eed1aadad3e0a5000000000000000000000000f801db2654e911e922665c4cb885d8cca4c155bf000000000000000000000000c7e957681720875f3a2143f1afb72e7fb6ffdd78000000000000000000000000000000000000000000000000000000000000000600000000000000000000000073ada7d3ce2c1dcf9bb4100b650196ccc2ccdfa6000000000000000000000000df37c5d3eea96515faa286c30e8f6b05640cad00000000000000000000000000b21cef20389f300cdc7b2572f0a9a1afe62f4479000000000000000000000000f1edbdf579ad83cc86064bd089300b6b9362f084000000000000000000000000321166c624541dde00025d2d916d117410ba8421000000000000000000000000e1e82ee891f469897a815b0bfcc34dd5d597f76a", + "nonce": "0x4ba", + "to": "0xceb550db4b2f889782936bbedfe42ab406e8243d", + "transactionIndex": "0x1c", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xfbffa3c98d57923e4aabe7ddcad28263c456e4225c28bbe1c2bd989589120390", + "s": "0x3c04c706b36b0b24cf6c97b025eb29935a3112b4436bcc927ab82e0e8b0c28e8" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xaf8648ea8cecb238158b6fdf3fd3faf57f7e5828", + "gas": "0x37d7e", + "gasPrice": "0x6b55cbd4", + "maxPriorityFeePerGas": "0x47868c00", + "maxFeePerGas": "0x792d1e40", + "hash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", + "input": "0xfd9f1e10000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000bc0000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000689fa0e400000000000000000000000000000000000000000000000000000000698ceee400000000000000000000000000000000000000000000000000000000000000003d958fe20000000000000000000000000000000000000000d7f47ee15044ce5c0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000364c828ee171616a39897688a831c2499ad972ec00000000000000000000000000000000000000000000000000000000000018b400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014b66cd7a745400000000000000000000000000000000000000000000000000014b66cd7a7454000000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001aa535d3d0c000000000000000000000000000000000000000000000000000001aa535d3d0c0000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000689fa0e400000000000000000000000000000000000000000000000000000000698ceee400000000000000000000000000000000000000000000000000000000000000003d958fe20000000000000000000000000000000000000000a29357375656c9f90000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000364c828ee171616a39897688a831c2499ad972ec0000000000000000000000000000000000000000000000000000000000000ef100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014b66cd7a745400000000000000000000000000000000000000000000000000014b66cd7a7454000000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001aa535d3d0c000000000000000000000000000000000000000000000000000001aa535d3d0c0000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e582800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5c2e500000000000000000000000000000000000000000000000000000000699310e500000000000000000000000000000000000000000000000000000000000000003d958fe200000000000000000000000000000000000000002fe9624b3e78822e0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000364c828ee171616a39897688a831c2499ad972ec0000000000000000000000000000000000000000000000000000000000000ef1000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000139ba1106b264000000000000000000000000000000000000000000000000000139ba1106b264000000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e58280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019396991e7c0000000000000000000000000000000000000000000000000000019396991e7c0000000000000000000000000000000a26b00c1f0df003000390027140000faa719000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e582800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5c2e500000000000000000000000000000000000000000000000000000000699310e500000000000000000000000000000000000000000000000000000000000000003d958fe20000000000000000000000000000000000000000624359a486d8b48b0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000364c828ee171616a39897688a831c2499ad972ec00000000000000000000000000000000000000000000000000000000000018b4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000139ba1106b264000000000000000000000000000000000000000000000000000139ba1106b264000000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e58280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019396991e7c0000000000000000000000000000000000000000000000000000019396991e7c0000000000000000000000000000000a26b00c1f0df003000390027140000faa719", + "nonce": "0xb2", + "to": "0x0000000000000068f116a894984e2db1123eb395", + "transactionIndex": "0x1d", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x9f60f2ef3f5228b21403114f8429bbac75b92450e22f725fdb9b059a28c9dde9", + "s": "0x3602001215d9f8703ce93e1c669c67046b6bdf31dbb7fac375f3503d06e74135" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xe75de7c288e72bb44ce46d4a795bb794bd19664b", + "gas": "0xfde8", + "gasPrice": "0x4fb1722d", + "hash": "0xffe56e6ac055509a585cbce2c45f16125695652d5214c2d06b0c4a1646780b0e", + "input": "0xa9059cbb000000000000000000000000408cb2bb16d073f0b6d4785fdab75b184e59e41e00000000000000000000000000000000000000000000000000000000831967dc", + "nonce": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x1e", + "value": "0x0", + "type": "0x0", + "chainId": "0x1", + "v": "0x26", + "r": "0xc783ef9fa2f5689c52282e1b3c225ba0e9d85a30e4ca12169d5983df4bdc2177", + "s": "0x7eeba7844d4faf91a651e8db26d93cb431e9e50eae0cbf4221ca20f189feafb2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x1cca465c62fb70741dd181ee86b53974db7d4122", + "gas": "0x8f028", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0x686bea4e", + "hash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "input": "0x049639fb00000000000000000000000000000000000000000000000000000000000000040000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000002b477372c53d68000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000022812aa3caf0000000000000000000000005141b82f5ffda4c6fe1e372978f1c5427640a1900000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000bf16540c857b4e32ce6c37d2f7725c8eec869b8b000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000002b477372c53d6800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008500000000000000000000000000000000000000000000000000000000006700206ae40711b8002dc6c0bf16540c857b4e32ce6c37d2f7725c8eec869b8b1111111254eeb25477b68fb85ed929f73a96058200000000000000000000000000000000000000000000000002b477372c53d6803ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000000000000000000000000000000000c4e3736f000000000000000000000000000000000000000000000000", + "nonce": "0x12", + "to": "0x3c11f6265ddec22f4d049dde480615735f451646", + "transactionIndex": "0x1f", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xd6d31bd1912778e81e5f6b147983f1af9dce728da7bc5b247fad6332b82bc0dc", + "s": "0x6131aa416e85c9334e456fe83d148a1c337131ef66c3e2e4fa229d37b7a7a237" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x776e7ad582e7ccc660f628774c54dd5aad1f14a1", + "gas": "0x5208", + "gasPrice": "0x495818a5", + "maxPriorityFeePerGas": "0x2588d8d1", + "maxFeePerGas": "0x4c885df0", + "hash": "0x0230cf61b59c8ac739a7cced4477df1611842ca8faeadeab19307145889782a7", + "input": "0x", + "nonce": "0xd4", + "to": "0xb9bd424575359fcc3d3c1538b2e11e37fb517fcf", + "transactionIndex": "0x20", + "value": "0x1141817eaf3e29a", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xd130c8627f94d5fc6655556e7a2a4431f35a1f1c2d4513e401b5a08a44c77044", + "s": "0x528d66e37ccaac4a4b30186de4483879bb625bf8c11e62bc9d84d5d4e0139c82" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xaf31d6f4e3841b28c5b0581770ffaf2e1f558515", + "gas": "0x30d40", + "gasPrice": "0x4182b434", + "maxPriorityFeePerGas": "0x1db37460", + "maxFeePerGas": "0x4bfef4c0", + "hash": "0x30c4df0d162a8e6b3a0677be57584d0a50da42677eff50c900f15f36ca1ad7a9", + "input": "0x8703a14049cde59eeb9733a488b963e44544990641bab848f807b8ccb680947fe318ac28dd993d7af5d9873f1127af77a360d4f3c1018b5a8782d75c7509fe8d383311432833c2c8a293f0a2a7b1bbcdbcc53df43624b7dea2c3eaa1e640bc5c", + "nonce": "0x12", + "to": "0x0000bbddc7ce488642fb579f8b00f3a590007251", + "transactionIndex": "0x21", + "value": "0x1", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xf4c3510a1569fc094383d9c522a07506d021f1cee66fe364bf428b496f544a7f", + "s": "0x2047793252aabaf72b58eddcd7923d2b2c45ed4dd0ce508f4b238f66005b6f00" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x70df61c20275d9088c4e50c12de9af6d23276e5c", + "gas": "0x11056", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0x6625e6dc", + "hash": "0x315141d0a9a6f772f7a151235bdc319a32aed88e0ddd6ca34a94f903cdecd562", + "input": "0xa9059cbb00000000000000000000000069275b5c10143c8fd1cbdb2637348b1558c736600000000000000000000000000000000000000000000000000000000001312d00", + "nonce": "0x9d", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x22", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xb8bb48b4443aa7ac31be9a04bfc14052f538413cc573cc6d06966df1b5c07837", + "s": "0x6d225e5f06a50f60692de4fbc8c8fcdb0c2278ab06e011a41cfe961275baf414" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x10fdba297c8da9fa8904ffd699ce81de5615985c", + "gas": "0xf519", + "gasPrice": "0x3fce7f68", + "maxPriorityFeePerGas": "0x1bff3f94", + "maxFeePerGas": "0x46071a12", + "hash": "0xd208e85483ab2355d80676863ecac1a0c67f2455f8af2bcaa68e6cc9bbf92fe6", + "input": "0xa9059cbb00000000000000000000000025d772eb5e0c9dcd7229c7b9158b1e6cb73dadc100000000000000000000000000000000000000000000000000000007aef40a00", + "nonce": "0x8", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x23", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x4aaf48f73a9e21f8c180597170b013ba09472d5c94c168851a83557570a36ac8", + "s": "0x1718671522544df411a23b8e0155ebf4ab12d38060127d061a80a6496415022b" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gas": "0x13015", + "gasPrice": "0xdc3a2c62", + "hash": "0x8e59ea830734462addb7c73571c2092c1d2bfcc0689987a2d08dd234827e5c5e", + "input": "0xa9059cbb000000000000000000000000a842ba73e0bfe9adeacd527570cc3ab2617de753000000000000000000000000000000000000000000000012f365a5d8850e0000", + "nonce": "0x1b5890", + "to": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", + "transactionIndex": "0x24", + "value": "0x0", + "type": "0x0", + "chainId": "0x1", + "v": "0x26", + "r": "0x74a40f16aa4c3630e4c3db8bd0e858dc928c724db0420b5b876bd098b9323db5", + "s": "0x3e34780bc8530e360c420a89fa6d7c1f2ebf88fd7eb002ac040cc85d10393cd9" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xb1b2d032aa2f52347fbcfd08e5c3cc55216e8404", + "gas": "0xea2c", + "gasPrice": "0x29c520d4", + "maxPriorityFeePerGas": "0x5f5e100", + "maxFeePerGas": "0x44978472", + "hash": "0xeb72be22b2d9521239741a245f8c90a561199b1df62649eea12f1d504fcf0511", + "input": "0xa9059cbb0000000000000000000000008e7dedd9b1a7fd101a08b1c95f3c602fe0d4b48600000000000000000000000000000000000000000000001fd4a70fe0b9180000", + "nonce": "0x1c5046", + "to": "0xc52c326331e9ce41f04484d3b5e5648158028804", + "transactionIndex": "0x25", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x7fa203846559204e74e4582bfd14c4d98956c8022e7a8d73b0b118c303ded8a", + "s": "0x332762ddece05a4bbc2a594955d7391791afcfcfdc36f9a8760c87ff8a396c60" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x87fcc6982257de5bdaa679d08e56117aa0b5a5d1", + "gas": "0x40fc7", + "gasPrice": "0x251c128e", + "maxPriorityFeePerGas": "0x14cd2ba", + "maxFeePerGas": "0x2ae72a17", + "hash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "input": "0x791ac9470000000000000000000000000000000000000000000000000002dc9608740d6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000087fcc6982257de5bdaa679d08e56117aa0b5a5d10000000000000000000000000000000000000000000000000000000068a5ce8f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000cced7736d6781f2a3aa9c7a2a24fea935c9fa9f8000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "nonce": "0xa", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionIndex": "0x26", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x14a1376af91b40ed1ee0d2bbbc52fa168060bff14acf003ff760af7ea20d9a2a", + "s": "0x34f01622feaf1ef0d6d97056a19eb020a053e71f2ae08555a5dd3952b4815922" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xf51710015536957a01f32558402902a2d9c35d82", + "gas": "0x15f90", + "gasPrice": "0x338a0fe7", + "maxPriorityFeePerGas": "0xfbad013", + "maxFeePerGas": "0x746a528800", + "hash": "0xf01b080912591defbcce2bb82770072f83b3a91a83ccf4bd7d54893f8cb9cbae", + "input": "0x", + "nonce": "0x6492b", + "to": "0x6f4bb3d0625b2cfd4400c6834943fde26c057f7a", + "transactionIndex": "0x27", + "value": "0x635fb4242c74000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x694607d920514e4044689d082d84e6bedbc5447613695e7b3c27e42bdcbdfe0e", + "s": "0x6c2b2f93ae2ff8d04a698cbf4f3bd1637a6206018e9e8b084d2f77fc7a0dcb9c" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x9696f59e4d72e237be84ffd425dcad154bf96976", + "gas": "0x32918", + "gasPrice": "0x29c520d4", + "maxPriorityFeePerGas": "0x5f5e100", + "maxFeePerGas": "0x17bfac7c00", + "hash": "0xfd26a9f8e2db5d764cf715384c0bfac63f02b7562b0e6f955709d4da06ef261c", + "input": "0x", + "nonce": "0x7b73f9", + "to": "0x19d315d10037a99d54d099a13e5e3a99a826ecae", + "transactionIndex": "0x28", + "value": "0xaf799de600c00", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x401a4ceafae4577e72043c1a3bdaa91a648218e42e56db29fbde1021e3d52f0d", + "s": "0x2bfd49ed4fe208497ae427e0fc7e2a0c4326e0610b0d0e39a256b61f68fb0c8f" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x4976a4a02f38326660d17bf34b431dc6e2eb2327", + "gas": "0x32918", + "gasPrice": "0x29c520d4", + "maxPriorityFeePerGas": "0x5f5e100", + "maxFeePerGas": "0x17bfac7c00", + "hash": "0xea9ffed304d53fbaabf6114693e8bb852ce67b3246f6db6bf20e2bb63c606cb6", + "input": "0x", + "nonce": "0x4f278f", + "to": "0x7a9c7afb0673dfb0cacb2bfde0a55c873c59fe1c", + "transactionIndex": "0x29", + "value": "0x37e23e15c27000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x436d711ad2dc2eaa545612cfcd02c7e8d6be2f26da4030cd8e98e9178a364c06", + "s": "0x41020c56073ae7c1132d74bea483d74dfefdc89e7f4a49c8fefbdc529d625f47" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x6dce2424e724a02d231cbcf64edeee8d15bd9e4b", + "gas": "0x5208", + "gasPrice": "0x27e37c7e", + "maxPriorityFeePerGas": "0x27e37c7e", + "maxFeePerGas": "0x27e37c7e", + "hash": "0x6bbd906f6a605b46a4863de27fbd8497f1e320ddb54b8daf1c932fb25ecce27b", + "input": "0x", + "nonce": "0x9", + "to": "0xb386dff391830280763869d8f416206d16289e31", + "transactionIndex": "0x2a", + "value": "0xa9bb3d1574010", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x60a484d887401d328b4753991e25d50f90f651a136efb6cd1dad61fbc1db9c04", + "s": "0x55346221ba438e894b9d1a17d2bc1676c942d2966a1e0686afd19563ff72a5cb" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x2d0d297c319be90844fab9b4ee070b8a81243163", + "gas": "0x1776d", + "gasPrice": "0x3b9aca00", + "hash": "0x3f164f5ef4d0c9cea6fd7defbda6abdfb3f6dd12957fe85f721d1443e8ac1998", + "input": "0xa9059cbb000000000000000000000000cff7b816bdcc412d3a8ee0461ba7a30a9b6a5cac00000000000000000000000000000000000000000000000000000000da054a19", + "nonce": "0x6", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x2b", + "value": "0x0", + "type": "0x0", + "chainId": "0x1", + "v": "0x26", + "r": "0xa9c6d1ef65c0290498a2788c225c6602924359c000ee4e8ccdaccb6e199b696f", + "s": "0x157545cc15cdb06b6c67749fee395fda7c768ca23c43d5ef69059c7e3630eefa" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xb5357b69181efcf8f6f45198b601e21e270a20ff", + "gas": "0x5208", + "gasPrice": "0x261331f8", + "maxPriorityFeePerGas": "0x3861426", + "maxFeePerGas": "0x261331f8", + "hash": "0xe79c391b1b8ee215a67c818d1b3318872b9c8282d8ea3956349a831fa7fffbcd", + "input": "0x", + "nonce": "0x18", + "to": "0x7bf38c17a6519dd17842bc37044cc30b92b81dc5", + "transactionIndex": "0x2c", + "value": "0x38d7ea4c68000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xce1f442f77e65b6ed7442ec68b12e90cdd2213c39d2b05c1a0fdb0c3b8330104", + "s": "0x57c413c84e94dfce00d71ccbfaec6f812d4c543afc07b6f9a4f1eacbb3a07176" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x2cff890f0378a11913b6129b2e97417a2c302680", + "gas": "0x5208", + "gasPrice": "0x23d0d9fc", + "maxPriorityFeePerGas": "0x19a28", + "maxFeePerGas": "0x46e974ec", + "hash": "0x124c9963d0414550d86a8c6d796b054f04ab221dfd4df6fc37135a5d2a33ed09", + "input": "0x", + "nonce": "0x43c8", + "to": "0xa455eb2c7a4f4b90106cad96cc9c36e62cd46806", + "transactionIndex": "0x2d", + "value": "0xe337fe1d2d2a6", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xe3bbe13001aa15f6223d1b562aab56b9343279396285a4bd358c1a8d92b09135", + "s": "0x79575a6f819c568d1c72532d91978821fd0686d895431aab07410b608afa6f11" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x0da475ffc29623e805bbcf7216ea8a438209882c", + "gas": "0x7b0c", + "gasPrice": "0x23d0d9fc", + "maxPriorityFeePerGas": "0x19a28", + "maxFeePerGas": "0x32ef3ede", + "hash": "0x4d99f405c49268e1d4a3845a46e54178c6b1becd3e2dacc512d18007f1be3076", + "input": "0x", + "nonce": "0x5", + "to": "0x4762631fdff1a1fed3eedf95a685d57007cf9b43", + "transactionIndex": "0x2e", + "value": "0x9ee5c3eb92dba", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xc6aa87874762cd830219c5dee3a2b40908e647cfcfce00c7ffff7ef2d10cb7be", + "s": "0x20a2562942cfadedc56e9caaf5de99d3486fe9fb0421e154c3bced4abde03c20" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x6f0a91ef8adeb54db0e63be507747ab9a31d3926", + "gas": "0x25fc3", + "gasPrice": "0xa3c4056e0", + "maxPriorityFeePerGas": "0xa3c4056e0", + "maxFeePerGas": "0xa3c4056e0", + "hash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", + "input": "0x122067ed0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0554a476a092703abdb3ef35c80e0d76d32939f000000000000000000000000000000000000000000000000672ed4843c7fdc000000000000000000000000000000000000000000000000000000000739cf796700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5ce6300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000014c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000", + "nonce": "0xcb4e", + "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", + "transactionIndex": "0x2f", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xfbcf5ebf202ea38778ea135d8b30a7f1ab7d94e93914d34c62135da9d27b9064", + "s": "0x65e245ab4abac1126c0157973bd49c52bfee4de99e517cad4877111987f12cab" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xdada79040afa6ac7d7660e7e18f8a9b82c31f49a", + "gas": "0x5f3cb", + "gasPrice": "0xe53094a6", + "maxPriorityFeePerGas": "0xe53094a6", + "maxFeePerGas": "0xe53094a6", + "hash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "input": "0x6440a7b40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d51a44d3fae010294c616388b506acda1bfaae460000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013464f00da49360000000000000000000000000000000000000000000000000000000001598ad015000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000068a5ce63", + "nonce": "0x10e63", + "to": "0xec6fc9be2d5e505b40a2df8b0622cd25333823db", + "transactionIndex": "0x30", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x3857dd7e7abb2727d39efde59b70914a66843584afe2b957fd03c2e53d0daacb", + "s": "0x4e4936c5e78688096ce0b452f5c896b83587602b81f71c51c305a48c4e27d734" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xebedc8e9ff409b23dd251f87ccbffa8075f87255", + "gas": "0x3a4ff", + "gasPrice": "0x153bf91bc", + "maxPriorityFeePerGas": "0x153bf91bc", + "maxFeePerGas": "0x153bf91bc", + "hash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", + "input": "0xfb034fb200000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016c1d8e56b0900000000000000000000000000000000000000000000000000000000000197f33a5e", + "nonce": "0xccb6", + "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", + "transactionIndex": "0x31", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xb816f82aef3895d4fd4645f077aaf5516a8e85b7a07b6747627b9d96067b97b", + "s": "0xd6e1b7c3b82321ec4cb1434197195f05296c32d6d0d83e921cad948c4e87ad3" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xac8b6e55c809e4dd83dc9943cf460c1caca84125", + "gas": "0x31759", + "gasPrice": "0x3a5d5e6a8d", + "maxPriorityFeePerGas": "0x3a5d5e6a8d", + "maxFeePerGas": "0x3a5d5e6a8d", + "hash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", + "input": "0x020bf14f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021c67e77068de97969ba93d4aab21826d33ca12b000000000000000000000000000000000000000000000002f58e79a84de88000000000000000000000000000000000000000000000000000000000350c4f7e6b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000068a5ce63", + "nonce": "0x176", + "to": "0xba47cbfdd61029833841fcaa2ec2591ddfa87e51", + "transactionIndex": "0x32", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x393387ba9ae21992ccf8f5e4a1a042309dabfed3b76816d801f33441850c8894", + "s": "0x907bb95211c9212ee648dcb3664d7112de73ca2d59c2eac0ae43e5a36b8e4d4" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xeaa9ebddd373c4bd8bb92dfcc9c7e7fcdb268e51", + "gas": "0x26506", + "gasPrice": "0x182f2c39bc", + "maxPriorityFeePerGas": "0x182f2c39bc", + "maxFeePerGas": "0x182f2c39bc", + "hash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", + "input": "0x122067ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011b815efb8f581194ae79006d24e0d814b7697f6000000000000000000000000000000000000000000000000defc43c79ba7e0000000000000000000000000000000000000000000000000000000000f9cdd60a200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000068a5ce6300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000014c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000", + "nonce": "0xcbde", + "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", + "transactionIndex": "0x33", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x8181bd9af20a0bb0dc4b72f4daf530e13834b91fa4e53859e2c2dc626944e04c", + "s": "0x67d290c1f08200040d2cb664791c6fe566f8e80369033eb170319a987b0bcfa4" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x45923a43492d0deb458cb97c4ca8b7ccb0a20c71", + "gas": "0x32150", + "gasPrice": "0xee6546334", + "maxPriorityFeePerGas": "0xee6546334", + "maxFeePerGas": "0xee6546334", + "hash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", + "input": "0x020bf14f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000072331fcb696b0151904c03584b66dc8365bc63f8000000000000000000000000000000000000000000000000b47a1942be73e8000000000000000000000000000000000000000000000000000000000ca2e6c8ca00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000068a5ce63", + "nonce": "0x175", + "to": "0xba47cbfdd61029833841fcaa2ec2591ddfa87e51", + "transactionIndex": "0x34", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x5ed24d08d0c52fef6c1561414763233453db75bf38c6756c1951eadf28cf29c6", + "s": "0x1fe1052938e1cc0e215aaccf274c3102e981eac2d9124e2d8fcf5f9c3e534ef8" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x639b2d751e6436667b97fe350c0fed111fc33fb4", + "gas": "0x61a80", + "gasPrice": "0x23cf3fd5", + "maxPriorityFeePerGas": "0x1", + "maxFeePerGas": "0x4a817c800", + "hash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", + "input": "0xa41e223e0000000000000000000000000000000000000000000000000000000068a5ce5b000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005cba739d65838c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043b8825a96b1a40000000000000000000000000000000000000000011e9a3cf9af7e9000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000001999000000000000000000000000000000000011e9691e21c02d00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2b2", + "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", + "transactionIndex": "0x35", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xe5763e58ce01fe198e8df0167b1bf1394c174d79408e08a48f4038d608f445e9", + "s": "0x3eb7ffc7b76bee7f3e868de32bdee668c9817e88c6f29eb8afe2d475e61e2b0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x5c132e26694e1f3bad52a4f55c9cfd0f181d7463", + "gas": "0x61a80", + "gasPrice": "0x23cf3fd5", + "maxPriorityFeePerGas": "0x1", + "maxFeePerGas": "0x4a817c800", + "hash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", + "input": "0x92928cad0000000000000000000000000000000000000000000000000000000068a5ce5b0000000000000000000000007df7c84f2f9dcef3c0813e539878b76b89a916f80000000000000000000000002dff88a56767223a5529ea5960da7a3f5f766406000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000007a9126f567e1700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000069c1adf3fbff1400000000000000000000000000000000000000000002b947d2d96c9ce0000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000011e92ef2bc10760000000000000000", + "nonce": "0x117", + "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", + "transactionIndex": "0x36", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xd349d67cfc4e26f5bc84ef21edb19db953b8a83181d675d82dab505635fac148", + "s": "0x1ced1890562e403f87a2088313fd03db667a70bdf5dbd79a7e3f12725184a48b" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x69021e92840bd777cf2c495f3be516700e430a5b", + "gas": "0x61a80", + "gasPrice": "0x23cf3fd5", + "maxPriorityFeePerGas": "0x1", + "maxFeePerGas": "0x4a817c800", + "hash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", + "input": "0xa41e223e0000000000000000000000000000000000000000000000000000000068a5ce5b0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000004e20000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077ab64900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021ac6aeaccbcfc000000000000000000000000000000000000046c7cd6e0d4198000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000001999000000000000000000000000000000000011e9969a97d7b100000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x180", + "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", + "transactionIndex": "0x37", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x63e8f5ff5376e49a8606fb7f67d3d69fa71977edecd3355904b688f56cc8800c", + "s": "0x3ca634692b8971f2fdc0daf2e5b3685430045999b3a05f43802aa36f2ff889c8" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x545da54509ef233642343b8beac5ef4443e79d73", + "gas": "0x328da", + "gasPrice": "0x36eb8fdca", + "maxPriorityFeePerGas": "0x36eb8fdca", + "maxFeePerGas": "0x36eb8fdca", + "hash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", + "input": "0xd44db9b600000000000000000000000000000000000000000000000000000000000000000000000000000000000000006ca298d2983ab03aa1da7679389d955a4efee15c0000000000000000000000000000000000000000000000002680cb38d1649c0000000000000000000000000000000000000000000000000000000002b22a042c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000068a5ce6300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000014c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000", + "nonce": "0x4475", + "to": "0x3b55732f6d3997a7d44a041b8496e1a60712a35f", + "transactionIndex": "0x38", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xf65b1a5097eb0d9af81ea0630d3df35c166ba0d6c7f8bda028cdefb07156793b", + "s": "0x5e2d06cbce62a0c8cbf6186014e4d99364d3c080f368fc38713ba5d969a031c1" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x448166a91e7bc50d0ac720c2fbed29e0963f5af8", + "gas": "0x668a0", + "gasPrice": "0x214369152", + "maxPriorityFeePerGas": "0x1f067517e", + "maxFeePerGas": "0x214369152", + "hash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "input": "0x000000cc000000000000000000000000836951eb21f3df98273517b7249dceff270d34bf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000007bde86a2e53bb9a600000000000000000000000000000000000000000000000000000008ac01b3f7", + "nonce": "0x6e984", + "to": "0xfbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "transactionIndex": "0x39", + "value": "0x161bd0f", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x3c226a72302c824f086ba712b16b8171d20e02c3c66a46bfe1ef2221cadd7a19", + "s": "0x2521c3058f7ccfe4ea90fbdbd3e50e81074b0f942414946acea4c38e4eb984a3" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x7f982f64ee9dfd024acb8c2abb5884fef0b9d440", + "gas": "0x8a81d", + "gasPrice": "0x1ebd76860", + "maxPriorityFeePerGas": "0x1ebd76860", + "maxFeePerGas": "0x1ebd76860", + "hash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "input": "0x4a7cf36200000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000ab81f100000000000000000000000000000000000000000000000000000000000000040000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae900000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000c097ce7bc90715b34b9f1000000000000000000000000000000000009cd692d05830b8000000000000000000000000000000000000000000000000000000000000000000000002b5e3af16b188000000000000000000000000000000000000000000000000000000000003548cbd9800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000005236333ef2baa45b450689b69e4e4b277d84f9540000000000000000000000000000000000000000000000000000000354afaf87000000000000000000000000000000000000000000000002b5e3af16b18800000000000000000000000000000000000000000000000000000000000068a5d534c38ba9abdb3bfd3bd5af820b0f5294c179238e8bf49f66530d7ab4d942b1443200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000002b5e3af16b188000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041c06548f979488f40a5e67df89044c31cc8c09cdcddead87b922fdc90415dfdfd5333c8b7fcdd848988feada2c472c936aba57bbefb8d2240eadfaa62b84aa63c1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002644dcebcba0000000000000000000000000000000000000000000000000000000068a5ce720000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f000000000000000000000000000000000000000000000000000004c99ea11513000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9000000000000000000000000000000000000000000000000000000035413c376000000000000000000000000000000000000000000000002b5e3af16b18800000000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000041d9d399148666c7ec4ac0b54a5b579279768fb1b04c28207ac772116827972c98367096e6131fcc8dcd85a0b3c05fce18365c506f84823db8dfd8c6b0a42b94ad1c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xaa4", + "to": "0x4dd1be0cd607e5382dd2844fa61d3a17e3e83d56", + "transactionIndex": "0x3a", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xe005032dc6a82456cf452e127796330c03d2409f751fa0d215fc97c7c025c65d", + "s": "0x2559d38504e632d1223adbee990aac226371a2f0161465a636135f5e3bf56d12" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x55823001c8cd87a6e86716ca768bce51f2d89c9c", + "gas": "0x33450", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0x74e1881c00", + "hash": "0xbc730be36c276ca5a0a02eeaa192ed302cf87c7453ad567e22fc951a0bf8d7e8", + "input": "0xb61d27f6000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000ce5586f0fbe00a3efbfc8d2caa714fdbe6a052eb0000000000000000000000000000000000000000000000000000000129fc57bd00000000000000000000000000000000000000000000000000000000", + "nonce": "0xe79", + "to": "0xf7b52be96b229dc63e6301bea175a1b5f756c274", + "transactionIndex": "0x3b", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x61d71d5dae66567f1be32e4419e475498180c144f0f23186160aa19262689b35", + "s": "0x6b1165bed38ac44740c0197ba42d72935f886c0da4ddd1483c90c48638b9c081" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x8611abf54b7ad26ccbfe99a213c201ee60dba0e5", + "gas": "0x1200c5", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0x6625e6dc", + "hash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "input": "0x6e553f6500000000000000000000000000000000000000000000000000000000000f42400000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5", + "nonce": "0x1", + "to": "0x13a5a916356242879b9509fd12bf8e4760a3f438", + "transactionIndex": "0x3c", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xc15c3beb2643397b167f73e4208a1e18161f957666ff3af4f9d774f5ac4dd632", + "s": "0x326866003f73e568f94506656a79970bb45a753f003f0dda6c4edffc3fd4999a" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gas": "0xc350", + "gasPrice": "0xdc3a2c62", + "hash": "0x6ae2f1fd6116d2b93223ae3548caf9d85e43d8fefec88814d36f38b916bab652", + "input": "0x", + "nonce": "0x1b5891", + "to": "0x1b216d8b75a050041e59860ff7fda6e3411424f4", + "transactionIndex": "0x3d", + "value": "0x6b7dabf453000", + "type": "0x0", + "chainId": "0x1", + "v": "0x25", + "r": "0x2f2d6b2ee27fd239872543e343d55042c629adeefce711b422b1c052f637f634", + "s": "0x7ac630b345cde63c4a3a2bf0e82ec1792dfeabf9ad958abead10f53363ab7e36" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gas": "0xc350", + "gasPrice": "0xdc3a2c62", + "hash": "0x3991e33f52ae3cf5167bf1f07cc8d358caf226022c5128ad991fe279b702a27d", + "input": "0x", + "nonce": "0x1b5892", + "to": "0x2e17aa7437b4ac446e5750202ab1d48c7884f5d9", + "transactionIndex": "0x3e", + "value": "0x7fbdd3efbad000", + "type": "0x0", + "chainId": "0x1", + "v": "0x25", + "r": "0x9334bfd70e73391955cafbab1a4a3fe0d6f45cbf125612a582de6928ada229df", + "s": "0x47de964d62eb82bab8f037f3ec8bc0c62f8b4101e53e26ff7de95948bb351389" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gas": "0x13015", + "gasPrice": "0xdc3a2c62", + "hash": "0xed80b011a517f5aab29dc7b79061fd54b68cc36c2023bfaff2812be53328e7fd", + "input": "0xa9059cbb000000000000000000000000a882df02283fa89d5659a870414e2c1803fd54ca00000000000000000000000000000000000000000000000ab407c9eb05200000", + "nonce": "0x1b5893", + "to": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", + "transactionIndex": "0x3f", + "value": "0x0", + "type": "0x0", + "chainId": "0x1", + "v": "0x26", + "r": "0xd532b623026c3bb4d210427ab27abe9e2b6d6e9cfb0cabc64b8da3fcf3290d06", + "s": "0x7b26ad69f11e8a11058bcea370fbc2f80c5791293302501701dec3f3b3077784" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gas": "0xc350", + "gasPrice": "0xdc3a2c62", + "hash": "0x06d504980fbacf359463537147c81348f5978476433367b067b185ad95be82e0", + "input": "0x", + "nonce": "0x1b5894", + "to": "0x0b9b42d7edb6b669a24f50157f80e5d909cb6eb8", + "transactionIndex": "0x40", + "value": "0x6ed83c14fe000", + "type": "0x0", + "chainId": "0x1", + "v": "0x25", + "r": "0x2aee26e10d81bfccbb812d506a36f097ef5582d7b4101dd6139b745d92770772", + "s": "0x3a0dc1a108b95ac12d9ff8676a2ac200869477ee838219ec87daa4e8ad6996b6" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gas": "0xc350", + "gasPrice": "0xdc3a2c62", + "hash": "0xd33b517a15607a18d3c33ddc1f237aa61e9a3947b21287768ce3ba86d2495a03", + "input": "0x", + "nonce": "0x1b5895", + "to": "0x0f000db45a0f4320ac77c5ba21312ae52174326a", + "transactionIndex": "0x41", + "value": "0x24736a67654000", + "type": "0x0", + "chainId": "0x1", + "v": "0x25", + "r": "0xa1c92ec425dbb612821bbe6b1eb67efc61f1535216c020390d93fe208b75d06d", + "s": "0x60d70a99a9a6ed375cf0a27fb9b281efe0be46d57d66e87299bdaddaccaca679" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x7586854ec236f3ef8e7e5c7cc55dd3b449feed98", + "gas": "0x11326", + "gasPrice": "0xd6455cd2", + "hash": "0x1827070bb19ea45e3bf9eec57ccc94690038337ada1bc618ab79eb21a8078dac", + "input": "0x095ea7b300000000000000000000000077edae6a5f332605720688c7fda7476476e8f83fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "nonce": "0x3ac", + "to": "0xfa417cd491632620a582851b07abf7e3447bba71", + "transactionIndex": "0x42", + "value": "0x0", + "type": "0x0", + "chainId": "0x1", + "v": "0x26", + "r": "0x56cc252d5c95397705254d0fddb0e8943f25c7871fe05ebfa46e364353f6f619", + "s": "0x22f9be91fbc204ec34d0a878e66bd5ea743cdcb1e5e591b91f2405f2a23c6b43" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x3fdd41c3622aa33227d42d87c6838aaa9dca0dcf", + "gas": "0x19e10", + "gasPrice": "0xd69f9dd4", + "maxPriorityFeePerGas": "0xb2d05e00", + "maxFeePerGas": "0x12a05f200", + "hash": "0xc8d9083af83a6c8fa73051663d8a2c9d79195be21063c09066d39d562d1be993", + "input": "0xa9059cbb0000000000000000000000008476de5d91038c1015c73e6fec0a97d45d91ec180000000000000000000000000000000000000000000000000000000008ebb1c8", + "nonce": "0xf41", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x43", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x578055145aa121f1bd1b3c4b89ed6f1824fb80a474de8e59e1a6d8a5f2238fbb", + "s": "0x4ecba6e8255a8fb4cc0abad783836984608971cca76e37f7d77fcbedbe134bfd" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x93228d328c9c74c2bfe9f97638bbb5ef322f2bd5", + "gas": "0x15f90", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0x2e90edd000", + "hash": "0x7e1bbe3049928a58a967ff5188615b894fc8093d92778abcdedbdbdf9957c052", + "input": "0xa9059cbb00000000000000000000000041ea4e72b88a8e84b83b739f4092339d721574cf000000000000000000000000000000000000000000000000000000000ac9d740", + "nonce": "0x1312", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x44", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xe139af5d1da3060d9d2ab5c1d5dd5872bc18547ee11ee520ba9e76b97ac04cb0", + "s": "0x76094d40297c5046e7a0fd0174aaae8861f9fc55aadbb3832126749717b05ea7" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x8347cd390c696372aa5ac17865117d5521c5476a", + "gas": "0x19c6d", + "gasPrice": "0x7a4ab68f", + "maxPriorityFeePerGas": "0x56d6c92d", + "maxFeePerGas": "0x7a4ab68f", + "hash": "0x75205100cde683dcb84a3b361f7320c0a0adad9f4c151a7088938db3a90c682b", + "input": "0x99e1d016000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000005c7bcd6e7de5423a257d81b442095a1a6ced35c50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001ad7b9392320000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a0000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000005120bce000000000000000000000000000000000000000000000000000000000511e68ef0000000000000000000000000000000000000000000000000000000000002105000000000000000000000000394311a6aaa0d8e3411d8b62de4578d41322d1bd0000000000000000000000000000000000000000000000000000000068a5cd170000000000000000000000000000000000000000000000000000000068a5fc010000000000000000000000000000000000000000000000000000000068a5ce73000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000001dc0de00410000000b00000000000000000000000000000000000000", + "nonce": "0x1627", + "to": "0x8347cd390c696372aa5ac17865117d5521c5476a", + "transactionIndex": "0x45", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xf3b8b1720b9dfa3b1c0933702a14a51319d0f18801bf7e709ccabcb992ac2e3f", + "s": "0x492ca14316335f0c2ae6d0abcd537aba6eabce9697798c83ff524f3125b10c03" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x91d40e4818f4d4c57b4578d9eca6afc92ac8debe", + "gas": "0x33450", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0x74e1881c00", + "hash": "0x6a3001d1458aaae959847d930c1f1b4e813899c8702e5a3f7ea14123b633ee52", + "input": "0xa9059cbb000000000000000000000000124f9ec75369ea83cdfdb1d87c5874ca7f081107000000000000000000000000000000000000000000026d04ab7d750dfb350000", + "nonce": "0x47863", + "to": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "transactionIndex": "0x46", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xa3cb3bb14756750d0afb69334bf38fcf9353693ab1e48e4bb349f71b8f7a965a", + "s": "0x4fd9ad5a80f6d2856721e68d490136a0ff7fb406f0187dcb19e4d0426270a0be" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x0fc7cb62247151faf5e7a948471308145f020d2e", + "gas": "0x34bc0", + "gasPrice": "0x5f6a09d5", + "maxPriorityFeePerGas": "0x3b9aca01", + "maxFeePerGas": "0x7151a9bf", + "hash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", + "input": "0x78e111f6000000000000000000000000fc557ba572e71e4e2b7d63a5cf9c2f0d6420446d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c42f1c6b500000000000000000000000000000000000000000000000000e6292767661e2a9000000000000000000000000000000000000000000000000000d16039177aa27000000000000000000000000000000000007f2d493f8910d1c97ad14a25e09620000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000068a5ce5bff000000000000000000000000000000000000000000000000000000000104e300000000000000000000000000000000000000000000000000000000", + "nonce": "0x8c7d", + "to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c", + "transactionIndex": "0x47", + "value": "0xad9c18", + "type": "0x2", + "accessList": [ + { + "address": "0xfc557ba572e71e4e2b7d63a5cf9c2f0d6420446d", + "storageKeys": [] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0x9ede93be0d8fc6a5eb9cf1c7345a85b7519d8487a727aef0c2f00ab966aa7716", + "0x75245230289a9f0bf73a6c59aef6651b98b3833a62a3c0bd9ab6b0dec8ed4d8f" + ] + }, + { + "address": "0x4585fe77225b41b697c938b018e2ac67ac5a20c0", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x702cd40275723fbecf854291f1eca58b5a0de7d378ea31ec006833fd99382dea", + "0x0000000000000000000000000000000000000000000000000000000000000049", + "0x000000000000000000000000000000000000000000000000000000000000004a" + ] + }, + { + "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0xdc276a4f120117ad5ae6415d1c724b4f3a0e81f0ee6466e1392ca121b63123f2", + "0x99713ceb4322a7b2d063a2b1e90a212070b8c507ea9c7afebed78f66997ae15e" + ] + } + ], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xcbc30e8040bc68e164f289d4b06de9479faa3a606014d6c6f7ba457ae712f9b3", + "s": "0x6691860adf9831eef8da3264136d40b5bd9e8d99b4c79d514cda13f99da916c9" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x234de29cc82f9ce20cdc71b8b4baf6d51f4a1a64", + "gas": "0x33808", + "gasPrice": "0x5f6a09d5", + "maxPriorityFeePerGas": "0x3b9aca01", + "maxFeePerGas": "0x7151a9bf", + "hash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", + "input": "0x78e111f6000000000000000000000000846484c4cd32bdc8cd8e64a63b51219bdab4e1cc000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c42f1c6b50000000000000000000000000000000000000000000000000049bff3124b7bb060000000000000000000000000000000000000034a36bf0c2444e000000000000000000000000000000000000000000000000000003f690eab89b022908ec8ec30000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000068a5ce5bff0000000000000000000000000000000000000000000000000000000000fd5300000000000000000000000000000000000000000000000000000000", + "nonce": "0x837", + "to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c", + "transactionIndex": "0x48", + "value": "0xc71c18", + "type": "0x2", + "accessList": [ + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "storageKeys": [ + "0x995f3b129dd3291868ddb9cf202c75cd985227d50e309847fbab0f8da403b19c", + "0x35d7fb7665514f774d2c2df607e197eb8674b6e63d2638472758647a2e67406a" + ] + }, + { + "address": "0x60594a405d53811d3bc4766596efd80fd545a270", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x9ecf0b7b4087cf876a9696caf0f337e48f3ddf6a97759bd98730b0fb16d02a1e", + "0x0000000000000000000000000000000000000000000000000000000000000016", + "0x0000000000000000000000000000000000000000000000000000000000000017", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0xf762dfe765e313d39f5dd6e34e29a9ef0af51578e67f7f482bb4f8efd984976b", + "0x75245230289a9f0bf73a6c59aef6651b98b3833a62a3c0bd9ab6b0dec8ed4d8f" + ] + }, + { + "address": "0x846484c4cd32bdc8cd8e64a63b51219bdab4e1cc", + "storageKeys": [] + } + ], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x1734b5653d3f44712d66a208cba28c0424d8d35f9861a3d05f0fd2d13bb0de", + "s": "0x54d30c2c0f05495108e63fbe6a5a01d4d55dcdcf399b3f1bbc94ca5c1e7c1e6e" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x22b0351d445840db59b97df3808dd642dcb17e96", + "gas": "0x4be58", + "gasPrice": "0x3bb9cbd0", + "maxPriorityFeePerGas": "0x17ea8bfc", + "maxFeePerGas": "0x3bb9cbd0", + "hash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", + "input": "0xa00000000000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d3600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000278f7f1db3b9b5e000000000000000000000000000000000000000000000000000000002c5a0de9000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "nonce": "0x119da", + "to": "0xfbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "transactionIndex": "0x49", + "value": "0x161bd0f", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x69d3709a625e6f6e87b756ce39d54d1f17d33f1e05f3def4c878547b48bb608e", + "s": "0x45123039f3cbd282d6364ffe704db550477d7c5085a6fe0038c614cbde5fec1a" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x46340b20830761efd32832a74d7169b29feb9758", + "gas": "0x55730", + "gasPrice": "0x77359400", + "hash": "0xa2a8edbe294afde748bf14aae5427b8af22a65d9e1ea8de5c410057d577a480e", + "input": "0xa9059cbb00000000000000000000000025637c1059b044c262cb1108c899cad44c8cd908000000000000000000000000000000000000000000000000000000001d34ce80", + "nonce": "0xec635b", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x4a", + "value": "0x0", + "type": "0x0", + "chainId": "0x1", + "v": "0x25", + "r": "0x7f073b08dd1af9bfe6027f7cd4a6fc0e14a2af4ace9e492077701e1ede1e152a", + "s": "0x3faba817da0be1f93282cf3095c384f265d6d2d6ce3cbb8db72927933301ab9c" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x1864d150aa60111fb312a1b8f4cf8e6dabd3094c", + "gas": "0x5208", + "gasPrice": "0xd69f9dd4", + "maxPriorityFeePerGas": "0xb2d05e00", + "maxFeePerGas": "0xe158605f", + "hash": "0x1de9ccef004f5f226c9468fb6abdc40755e1e5c7ddfcf1dd4ea2cbb708cc2165", + "input": "0x", + "nonce": "0x15", + "to": "0x0abbc482fbd91dbf413e3d6cc5622e03552ac13a", + "transactionIndex": "0x4b", + "value": "0x2cba482deeeb28", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xdf2e9e34d4ccb274fedde20ba4227fc5b05acabc5dce11af046d327c0e57d3c0", + "s": "0x74067cf58df3cb918444561a387aaee5112279d9ad2d2e49bc485906c6f2b79e" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x5962604feb383ca4164107583d147b2aa1d86d54", + "gas": "0x5ca67", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0x6458e75e", + "hash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "input": "0x721c651300000000000000000000000000000000000000000000000000502072edbac1fa", + "nonce": "0x6", + "to": "0x2401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", + "transactionIndex": "0x4c", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x669340e86385fcde0e093f926561a6deb41f9643c256562771700d17eed3ab86", + "s": "0x40c8fba726529149dddf62d9d71bf82016969557e857c4c6805a942da1fef178" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x663b7c32c90f6c3fee8e8eecced18c007d69193a", + "gas": "0x55730", + "gasPrice": "0x419ca4d4", + "maxPriorityFeePerGas": "0x1dcd6500", + "maxFeePerGas": "0x64b53fc4", + "hash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "input": "0x791ac94700000000000000000000000000000000000000000000eeba4b9f0d5bdd105a3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000663b7c32c90f6c3fee8e8eecced18c007d69193a0000000000000000000000000000000000000000000000000000000068a5ce5b000000000000000000000000000000000000000000000000000000000000000200000000000000000000000010ee9f68ee4e4d311e854ae14c53f5b25a917f85000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "nonce": "0xae", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionIndex": "0x4d", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x7cc510f75dfe6f1ab9ff2d963e9a6091d28cb91c35755f6dac7e3f9d178fe5af", + "s": "0x2c9df5bd35d81991db51ced0de82755177ab4559f540bebbab7fc4baf7f81021" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xb6839dc14ace0934a2c422369aa34b39b8c534b1", + "gas": "0x5208", + "gasPrice": "0xb2d05e00", + "hash": "0x9ffbef1785c43203687d9ecebc2e1dc67bd4b69337d9576d9992039d328ba5c3", + "input": "0x", + "nonce": "0xc0c", + "to": "0x2fd2ea3b0545bf12dd03ef6274aede12274da9a6", + "transactionIndex": "0x4e", + "value": "0x117723a0ec73170", + "type": "0x0", + "chainId": "0x1", + "v": "0x25", + "r": "0xfb30b51d7e1efc3354c0f34c4f60c150ab3a2d02935fc2ae8940f8c5e1e02ccf", + "s": "0x66978516f6e11d371c3887861859eeb0bd2f43719ad2af2759550d9b480e6fbc" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x91604f590d66ace8975eed6bd16cf55647d1c499", + "gas": "0x5208", + "gasPrice": "0xae1aec40", + "hash": "0x2cbad0ad9584888bb5ad6d856ea602fa2a3afe764252499f2de6afe2a69ffdae", + "input": "0x", + "nonce": "0x25c92", + "to": "0xfbc09172b41c69aa617629847e5d80e35981932d", + "transactionIndex": "0x4f", + "value": "0x15830edf2a17f", + "type": "0x0", + "chainId": "0x1", + "v": "0x26", + "r": "0xb4fde1e62fb081477772b495f213f666d7c6357d790537aeba4312e5003f6806", + "s": "0x596dcc6cb828ad72d6883d5dc7625707c7117a947eaebc011e74d23f18bf15c1" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gas": "0x15f90", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0x2e90edd000", + "hash": "0x88871027255d345a9f5887127c9acb33704c9a1db48142f8185eabceeab719e1", + "input": "0x", + "nonce": "0x23dba0", + "to": "0xe47d43dcd14e9fcaf96c232dae3f84d81c1ac725", + "transactionIndex": "0x50", + "value": "0x3ff2e795f50000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x407e491945a87a4ac61e7d868fcf6caf4e6ac689420938f655373fe139370ab2", + "s": "0xb0062b1dde70fc52b751679622f903866e940b7f0ca4cf38b7e66c33c40083e" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xa9ac43f5b5e38155a288d1a01d2cbc4478e14573", + "gas": "0x33450", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0x74e1881c00", + "hash": "0x5803753b8b9f1a604f6590849d3a9cd2a7c0f6fb6334d02a01ba5d66206c450a", + "input": "0x", + "nonce": "0x484c8", + "to": "0xe337299f1d8f5a249147bf2e795d612b891ab90e", + "transactionIndex": "0x51", + "value": "0x247624e5547000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x999edff33e2b883e82f520799806f32706a6c08e6bb69f540a92cb80f350a371", + "s": "0x341156f7150f3e6e095e9e2ae09d54cc2675428362d666502dccbc16aeecfa3b" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xbe19155113cbfa0b0555d6c316b18133b10b312d", + "gas": "0x9e73a", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0xa7c2cc55", + "hash": "0x09ebf2e04dbaab1d0ad74c275b776c6398084d5558290d804063d0a6f477c61e", + "input": "0xe63d38ed000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000005600000000000000000000000000000000000000000000000000000000000000028000000000000000000000000f05cd1707fe94f3228296aa26247bae9be7fead6000000000000000000000000bfd5d536458507c5f911493dba9e88badc96321b000000000000000000000000d30dbe4c7860a731275ad989da2c172ddfaa1607000000000000000000000000bc79eaaa52ce243036c8d0a0356f19d5bdf8c169000000000000000000000000efadeab0116e40d6d73817cd4f6a127c4bae31c8000000000000000000000000c462622ee05fe15e0b7ea4023b98af160962d9fa000000000000000000000000364e11071689ca8b51ec67b8095047609272fb4700000000000000000000000022fc139c1801a3fb34c10ff9bf847c99669a51d7000000000000000000000000cd9a2ee841649898664debac0371b76977c8d4460000000000000000000000000ed66c88c463c26099e97c4a07754f7d2b5bcd8200000000000000000000000058d80fa6ff132b316aedf9d6e3cd5697ee068ed6000000000000000000000000526ca4eb907f9dbceb79d34aa2bb7ea7760d58e300000000000000000000000011fcc097ba2414b9f7246eaa582c259326738c78000000000000000000000000fec18ccf7b4f3ae8461e16d1b406575a351037700000000000000000000000000e17d638bcc412ff787b7889a410ac9096d18490000000000000000000000000aac4df958bab3b1ec483120620ad93106c0bed6a000000000000000000000000f4a2a04bad3209c98eed8ab3be7a5cccc1f32148000000000000000000000000760e40919aa8e26a98e9c68086ef84080d3bec4f000000000000000000000000d46117ca6716960e52df84bc4e45a0ca1bcdc63900000000000000000000000061ec939e331e2de8529d25911f21060685ba3e43000000000000000000000000ef4dc27fe6a0701fab7de0762b4c81db90a2b783000000000000000000000000252a9e7f3b79d611620504c8cacf7a882b80d5830000000000000000000000006a4846613810406b426cedc3afdb00dd8e838cbb000000000000000000000000d2c2275d30f35a821b51a7a2399100a65c6449a70000000000000000000000000447f6e60aa071cca64081b76cede63e7f0ad6d40000000000000000000000001291eba10a206c59cf188aa8967905ac2bc9caee000000000000000000000000fefce0d7581dc91dab6cbfbdd9eb673af2e796b8000000000000000000000000d9208a1803dff14cc05f64c42c8c4d4fb1cbecaf00000000000000000000000010dca1e9f47dca5fe0152025e0d2757ae5ee50ac0000000000000000000000002f29bc446409e8ee5b29b9542b2e56a6fd07d04b000000000000000000000000ba68312ba97084a9ab6fe926bcc5ffdec37646fa0000000000000000000000008e296c68e4fda7ea1a54f50fd9a23513c80c5b75000000000000000000000000d8f5e763d0bac8c138d174c2d3db7d8b32f87ea2000000000000000000000000d8305c41b5e1bb19c1ea24e67bfebb4b9e207d4100000000000000000000000070b13b1045202734269f8a3ce34279d8e06ea7660000000000000000000000001c8969bb448abb87a722c57b6bbc76cf0de71b1d000000000000000000000000cda768814f3285c224dfce613d82b6e0bb1a7c42000000000000000000000000792132869978e58d372d5f5c30e2ebd1cac192b6000000000000000000000000af87358a5a9600afcfccc745b4e81a75f6cb7d610000000000000000000000008bbf3b5d640f89c6e07d1b081ecb8662f022c45f000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc10000000000000000000000000000000000000000000000000000002386f26fc100000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb920000000000000000000000000000000000000000000000000000027f7d0bdb92000000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000002c68af0bb140000000000000000000000000000000000000000000000000000030d98d59a960000000000000000000000000000000000000000000000000000030d98d59a960000000000000000000000000000000000000000000000000000030d98d59a9600000000000000000000000000000000000000000000000000000354a6ba7a1800000000000000000000000000000000000000000000000000000354a6ba7a180000000000000000000000000000000000000000000000000000039bb49f599a0000000000000000000000000000000000000000000000000000039bb49f599a000000000000000000000000000000000000000000000000000003e2c284391c00000000000000000000000000000000000000000000000000000429d069189e00000000000000000000000000000000000000000000000000000429d069189e00000000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000004fefa17b7240000000000000000000000000000000000000000000000000000054607fc96a60000000000000000000000000000000000000000000000000000058d15e176280000000000000000000000000000000000000000000000000000061b31ab352c000000000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000000000000000000000000000853a0d2313c000000000000000000000000000000000000000000000000000009b6e64a8ec6000000000000000000000000000000000000000000000000000009b6e64a8ec600000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000000de0b6b3a7640000", + "nonce": "0x663", + "to": "0xd152f549545093347a162dce210e7293f1452150", + "transactionIndex": "0x52", + "value": "0xafb15aeca8720000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xe58fbd871ef95c343a9ffb66333c54cd37adbd44948669c48060a41c432ec119", + "s": "0x1596b5c1246cf247ff386cd0b60002929768e4ef326c95a2e49287cdde2d3d51" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gas": "0x5208", + "gasPrice": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "maxFeePerGas": "0x23cf3fd4", + "hash": "0xd20af84c937b6bfb1cbd0dbcde686c9bbdd6a3904257523bba99bd50e879f8a1", + "input": "0x", + "nonce": "0x2c5cdd", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionIndex": "0x53", + "value": "0x2d852ce936f60", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xf1a1330a93e743c1af959f8ab5f6d8ad96271533389cf78a024757f925d09524", + "s": "0x7e735935043383326086dd91d60b08c7790338d940b229ef2ad139b75b1353b7" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x7d7e377ee0168ddb578ef10661827cf1f71a6712", + "gas": "0xb491", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0x9502f900", + "hash": "0xef162cf825f7bd785fd8229e52972e62855b7d44dcdd3038990fd95625a9dc56", + "input": "0xa9059cbb000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43000000000000000000000000000000000000000000000000000000002fb9b660", + "nonce": "0x0", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x54", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xd49644b179f2d9aac7beed64ce8ceb08603db6e0ac461ad29a8c1c5cf4d3d824", + "s": "0x3d11453483e0a2995a34010a69ec280547607b598b91fc82491ff9cbad3d949c" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xf8ae00151ae5c2b5d430ab4e9dab01a770c1fca9", + "gas": "0xb485", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0x9502f900", + "hash": "0x6f4c0ef6cf1c52b0261982d2c8bdfc3f9073dd8af06ffdd253d5b3e49d3152cf", + "input": "0xa9059cbb000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43000000000000000000000000000000000000000000000000000000001dcd6500", + "nonce": "0xb", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x55", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xa12d01cb9fa007e26d0bd14e0a0023adbce3266b9c41345a2cab935bd5f1125d", + "s": "0x4abc115b7602f5a366827b7d646f582b418cf55d79c82447bbb269c141d8ec93" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x01884eb29311cf4fbbf59465aff0fbd123f84713", + "gas": "0xb485", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0x9502f900", + "hash": "0x31109524218b0f4e2f747b5163bd532e63521b998bff69fb07fa44cb68a09298", + "input": "0xa9059cbb000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43000000000000000000000000000000000000000000000000000000000c1f0700", + "nonce": "0x0", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x56", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x58ea7af68f5bba2fa3a2541668f7d03e8f465cd584359ca163535b63d18fe176", + "s": "0x329bc5cf61a603dc4a36b51ff69d2bd9de531fc9f666dac13e1f25ea64e1c80d" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xeb5fb7ce4528ee42bf2c7765ae70ca1deb2ef09c", + "gas": "0xfde8", + "gasPrice": "0x4fb1722d", + "hash": "0x74f20b477ad72c790aa0a5742daf4aeadb1fbbd0edcfd74490f4ea9ec32d9a29", + "input": "0xa9059cbb000000000000000000000000203ff9f3e2af2ceb4dd62914af2bdf8ebfc5326400000000000000000000000000000000000000000000000000000000b2eb3a55", + "nonce": "0x0", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x57", + "value": "0x0", + "type": "0x0", + "chainId": "0x1", + "v": "0x25", + "r": "0x4e3a9dd3a0ecdf4aee14e25901da20fee27cc09df1308fa404483fcf51f8534b", + "s": "0x2ece62b2787333df6fbcc117335d7f35487fff5fe8a5b883156e349f980286a3" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x0e71589abe9d1215535dc94c85482fe5954fdac9", + "gas": "0x5208", + "gasPrice": "0x77359400", + "hash": "0x9cc25ee19cb4404d4bbeb96d4f9e9ceefe81ba8245f0f7c01a266900f9b4e745", + "input": "0x", + "nonce": "0x0", + "to": "0x0b7342a7af6bf6cc0ff8909ba1d70770863c74b5", + "transactionIndex": "0x58", + "value": "0x5d55309626b000", + "type": "0x0", + "chainId": "0x1", + "v": "0x25", + "r": "0xbd8ec8a907255d6a3f36f0c12649e7921067b90bcfb07ddb889bdde4d73ed0dd", + "s": "0x68404b6c46df8c56d373c68f35c09e2543113a83afc1bc5abfed607ca5028820" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x21f2f76af55060df2a0fba013d4dd9d9f8ab2dea", + "gas": "0x4460a", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0x6458e75e", + "hash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "input": "0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000068a5d551000000000000000000000000000000000000000000000000000000000000000309050c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000006f4cc3821aa200000000000000000000000000000000000000000000000560a5b0a95e8d74b5ce300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bc2ecbe2195114b82f03680ed4270fa7008f3be0000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000fee13a103a10d593b9ae06b3e05f2e7e1c000000000000000000000000000000000000000000000000000470de4df82000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000021f2f76af55060df2a0fba013d4dd9d9f8ab2dea00000000000000000000000000000000000000000000000006f05b59d3b200000c", + "nonce": "0x11", + "to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", + "transactionIndex": "0x59", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xacd0dd0c3dccb80ba925acf6772dff577c648476339758a60ccff48e2e272eed", + "s": "0x11a0782ff70ef6e3eb0e27c9c006a6610d42b5fbb514bc0def5d349d7dcd1540" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x930a46935042d35cc4393ff5f9b9bf9f2e3afd09", + "gas": "0x5dc47", + "gasPrice": "0x2824a9d9", + "maxPriorityFeePerGas": "0x4556a05", + "maxFeePerGas": "0x2a9e4d18", + "hash": "0xb903093efd1a45a2869f91f0169c3113ccc44fc9a70268af055392b6f4a6dece", + "input": "0x501d976c000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000013000000000000000000000000967bdfb1dd57308eb3e6910fe4357178eb6c6c6000000000000000000000000035ea699b892e9ce7ebfbcd2bbfaaedb2f17a5ad1000000000000000000000000ae650050e4264e3462df71c1f9d3be9afe311009000000000000000000000000a34e4aee609c09cef1e414a8a7123d1027451c8b0000000000000000000000004fb5e5ef3a1b036a49557fedcdefee373d831f9600000000000000000000000050d83e000fbb2bcd539125a7efc85fbca69c3550000000000000000000000000c30b83c943e25639102e6a5c982f1d572aa7c437000000000000000000000000fedfd8dc267cab022b9eec1c7d523454c9cd3ca3000000000000000000000000647d7d88cc316900642f45c080dc046edd5b113f000000000000000000000000816f3011bf8f3bf8412f5618b3627151bd126893000000000000000000000000683684277e66c5425af1d94ed3d90f8098267934000000000000000000000000d8ca026ad2d3cc48b06176c8c12f7d208794dbbc000000000000000000000000efa955acfef6a649f0a97bba849b0524f4dab49f0000000000000000000000001b01bc11993c567b7c0326620a6d36a55c8cc2280000000000000000000000007f1dcbe37bdb8c870c239f6cbc3f1c46de1b23e70000000000000000000000003ed076bbe73ca46670ad067e435d25c7709d6cbe00000000000000000000000093a495092b48db8b4e67d5b1020cc84fe67a7813000000000000000000000000da62185fe293c5a1dfd5ac315808b2de69cc88590000000000000000000000005183993ca2258547043ca96e41d3be2e4d1aeb38000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000001f54c17737c0fa60000000000000000000000000000000000000000000000000065e28cbf2c4eeb0000000000000000000000000000000000000000000000000008ee87c9450eeb0000000000000000000000000000000000000000000000000011121f3e25500000000000000000000000000000000000000000000000000000ae01f88295b7b400000000000000000000000000000000000000000000000000a1b48f9398c0000000000000000000000000000000000000000000000000000de0aa289343389400000000000000000000000000000000000000000000000000f412811f4a949700000000000000000000000000000000000000000000000002297e4b42c9397a0000000000000000000000000000000000000000000000000100cd90b2a953d20000000000000000000000000000000000000000000000000032fb70a4763390000000000000000000000000000000000000000000000000069ec1e4be1d781f000000000000000000000000000000000000000000000000015414782ca3d3e8000000000000000000000000000000000000000000000000034f026815219ee10000000000000000000000000000000000000000000000001449c67e0c5ed81f00000000000000000000000000000000000000000000000000769645a87bfaca000000000000000000000000000000000000000000000000000f4cce904020d00000000000000000000000000000000000000000000000000083734dd0b0800000000000000000000000000000000000000000000000000000a7553350ebc000", + "nonce": "0xad1b", + "to": "0x5b14db1af7101ec1dafa828eaa774e13161efb53", + "transactionIndex": "0x5a", + "value": "0x373334a20351e1d8", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x2ff3eb498dca54f79bc122c1a38befb0ae7d726298b24b53134f5d90e0ad15c9", + "s": "0xda0884bfea67619d8760ff5967980e3760d7d8ac49eb9a5a0694c66cd3b5738" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x25b944a4dc81077e483bf59f618974e177627593", + "gas": "0x5e56", + "gasPrice": "0x71ebcf1c", + "maxPriorityFeePerGas": "0x4e1c8f48", + "maxFeePerGas": "0x774fd708", + "hash": "0x18663217afb22c7ab2918545d837875df6d98706ac7227a8a08b4b0cc850c9d8", + "input": "0x", + "nonce": "0x4c", + "to": "0x910ac37b45718838b35ba569dd926904274b682e", + "transactionIndex": "0x5b", + "value": "0x168478c61f0fcc8", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x33e08a09416167ed9542187ce13dde704e119ae4a3cf36b6c45c2cf70989a329", + "s": "0x7944ce143460d2a5805ce7db21bb4aa9e2563d10197928e1c1a6758dde65a674" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x896cdba2559cfdeec8a2356bb36c92fab614a4cd", + "gas": "0x11056", + "gasPrice": "0x47094b30", + "maxPriorityFeePerGas": "0x233a0b5c", + "maxFeePerGas": "0x510fec66", + "hash": "0x889b19404fe581f2b094bc9d159d0d1599870ad9cf39cb330e68a2777fb91d5e", + "input": "0xa9059cbb0000000000000000000000009ba8071de40b13c3b4807c57c2b554fb3b9e0b2b0000000000000000000000000000000000000000000000000000000004c4b400", + "nonce": "0x23", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x5c", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xb4284dd3d709cf625a29e1a18fc95f8cca80c9ab5cfd8a2b1fcf4b9f03f1b38a", + "s": "0x534e996d0a8b3067d516944f466b38b566fe81c62c9a9fc2975aa1306cf01766" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x9b03a65530b8f9584beabe8c6d64d3d4bcadd3af", + "gas": "0x11056", + "gasPrice": "0x47094b30", + "maxPriorityFeePerGas": "0x233a0b5c", + "maxFeePerGas": "0x510fec66", + "hash": "0x0f6c5aec4835ffbfab3db13c5a4fdd44e96b7185df23626e8ea1cba5739c6649", + "input": "0xa9059cbb00000000000000000000000054519c53bc21bc7739464850268f1b7d2b3317a00000000000000000000000000000000000000000000000000000000000048c10", + "nonce": "0x0", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x5d", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x1d33b9aea3bbb9d42fc88c647b6c3dc299a1ad39f255c0a16ed491607f6a5f59", + "s": "0x383d0213b811e26df102533477c7381311b800d72cae99852ba10bae83801258" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x7a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e", + "gas": "0x72808", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0xa4203ac4", + "hash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "input": "0x846a1bc6000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000e35fa931a0000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000068000000000000000000000000000000000000000000000000000000000000006c0000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000007600000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000e35fa931a00000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000004d0e30db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b300000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d6660000000000000000000000000000000000000000000000000000e35fa931a00000000000000000000000000000000000000000000000000000000000000fcc980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000455534443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009696d6d757461626c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a307863653136463639333735353230616230313337376365374238386635424138433438463844363636000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c5000000000000000000000000000000000000000000000000000000000000000400000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000005a0000000000000000000000000000000000000000000000000000000000000072000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000ac000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000104414bf389000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d20000000000000000000000000000000000000000000000000000000000000064000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f400000000000000000000000000000000000000000000000000000198c7cbc2de00000000000000000000000000000000000000000000000000000000000fe77800000000000000000000000000000000000000000000000000000000000fc60c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000104414bf3890000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d20000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d0000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f400000000000000000000000000000000000000000000000000000198c7cbc2e000000000000000000000000000000000000000000000000000000000000fe7d80000000000000000000000000000000000000000000000001a80ae654dafe92d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000010000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000242e1a7d4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000000c509b86228a6c23bbba872ac4345d5a000000000000000000000000000000000c509b86228a6c23bbba872ac4345d5a0", + "nonce": "0x5", + "to": "0xce16f69375520ab01377ce7b88f5ba8c48f8d666", + "transactionIndex": "0x5e", + "value": "0xf886307c8cb7", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x88364d0c78f354f57143abba2c2356e291537d4dbdafc8399e8fc1d8885f9ab", + "s": "0x521d5fc4b4fdd533014b933805667adba546dd8cf1136d9d84e195298964e308" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gas": "0x5208", + "gasPrice": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "maxFeePerGas": "0x23cf3fd4", + "hash": "0x09bee4a68da1a0248abcb8b48ef7bd15bdf4c81e2183503d5d4de68b5f558a08", + "input": "0x", + "nonce": "0x2c5cde", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionIndex": "0x5f", + "value": "0x1d54a4fb28b60", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xe3742c154d013763c273cb775b968d1d4ba5e1a9ff1f72be6e44ad9c9f73794", + "s": "0x1867c5d750f11b533790699e71af9245d522bc241605f8bb33cb213cdbda058c" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xc7899ff6a3ac2ff59261bd960a8c880df06e1041", + "gas": "0xb59e4", + "gasPrice": "0x2816807a", + "maxPriorityFeePerGas": "0x44740a6", + "maxFeePerGas": "0x992e25a8", + "hash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "input": "0x13d79a0b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000006e000000000000000000000000000000000000000000000000000000000000000080000000000000000000000006982508145454ce325ddbe47a25d4ec3d23119330000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca30000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca3000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000092ee6eb40000000000000000000000000000000000000000000000000000d71eadcb709d000000000000000000000000000000000000000000c481865574c0da3bcecb0f000000000000000000000000000000000000000000000000000b723f9c9a2a34000000000000000000000000000000000000000000000037483622c9d325650b000000000000000000000000000000000000000000000000000000003ca941af000000000000000000000000000000000000000000000008b50bca4aa290943d000000000000000000000000000000000000000000adb53acfa41aee1200000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000005000000000000000000000000511cc062c4257664427654b232dc636a424e4382000000000000000000000000000000000000000000000000000000003ca941af0000000000000000000000000000000000000000000000372bc6cdded5e5ef9c0000000000000000000000000000000000000000000000000000000068a5e7abf3ef4e1477de213e3c0a9dcc25112f3c62d65283db00bab8de61147b78f9a07b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000003ca941af00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000041ef90ab93bc9a3ed02a462614a87353a5b4a8329b96bc1cf81b082f2f355ccad61945dcdad942a02c1feede9d3b9d720762200aea92f2d11e6815fcdbe3f5e9301c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758000000000000000000000000000000000000000000adb53acfa41aee12000000000000000000000000000000000000000000000000000008ab9a59eb804c280b0000000000000000000000000000000000000000000000000000000068a5d54238ea81af132723b40e895ea753af184bec74662c1e007e1a1225186b4f0d280100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000adb53acfa41aee120000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000004104517b883e0c24b47bd264a734f0b6986db0dd8f6790f5fa4d146b9d226018ab28d316b0da91f7e21d241ffbdd5fa79a018410548b909a46974b3e1c834b6de51c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001200000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000a43fe16908251ee70ef74718545e4fe6c5ccec9f000000000000000000000000000000000000000000ada5ce2d2204f16ed6fa3000000000000000000000000000000000000000000000000000000000000000000000000000000000f3fe03cd60d1f138ebc106ce9575475100ebfc9a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000284d41aacaf00000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001e4128acb080000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000724b20e5c768e2f00000000000000000000000000000000000000000000000000000001000276a400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001040000000000000000000000000000000000000000000000089f58be7673e97ea0000000000000000000000000a43fe16908251ee70ef74718545e4fe6c5ccec9f00000000000000000000a404c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2022c0d9f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000724b20e5c768e2f0000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa80000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", + "nonce": "0x386a0", + "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "transactionIndex": "0x60", + "value": "0x0", + "type": "0x2", + "accessList": [ + { + "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", + "storageKeys": [ + "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", + "0xcb9bc6901b8328baa93d5336681aa8492517a2cac8a3fd7c32ab3c0d6bafd571" + ] + }, + { + "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x037199b0744c1ed84f0f7ae52d5760694aa3b29cff7b52bc1088ada5714d2980", + "0x057b09ddd84d79cc63e69fb06535985afb771ee7afe4ea34abc9ef7c96980d3a", + "0x0e1b053921947bb61bee9f4bdc68bd6cab8cd39676a3cd25cbd3106515a600eb", + "0x455834699c5564190d48058e2d2e544a0b4e2838253a203e6be1389c54aae4f5", + "0x47e689df7d1790c4c0e3b3e7a7038d6249f247630a93895e36180f067cbef1c4", + "0x64ac251e964da0f5b6d07d47428fa7c41487ff293e1deb77eb407c15028dab0c", + "0xee4d6b3f5bff5ce92442e4d4a360ae064af5d0d67d9b4da1508bc4e462eae046" + ] + }, + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "storageKeys": [ + "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", + "0x825c54d62ddb4b2cdc677f01a756014816eb6f8131b86522cfc1169bfa29047b" + ] + }, + { + "address": "0x6c063a6e8cd45869b5eb75291e65a3de298f3aa8", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000030", + "0x75f96ab15d697e93042dc45b5c896c4b27e89bb6eaf39475c5c371cb2513f7d2" + ] + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x5e0e0bf7c6a341550890f20eb2bee1f1fdc1279dc3d08bf94ec14b58b56d0145", + "0xa650ff812770bfb6adf143a5d896d2d2729208a6475246e58dfc98228ced296d" + ] + }, + { + "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", + "storageKeys": [] + }, + { + "address": "0xa43fe16908251ee70ef74718545e4fe6c5ccec9f", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000007", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x0000000000000000000000000000000000000000000000000000000000000009", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x000000000000000000000000000000000000000000000000000000000000000c" + ] + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "storageKeys": [ + "0x68e65bda2915772569224994d285f0b459d64f53fd952966225bf9b4df32f338", + "0x6fb7173931c795313ec7b4fe9a203cf03726c329ceab0d00c114fca68d3c6ff9", + "0x7eb73af6c6f0a8c693c0b4dad74e68b9f2946a2cdbe741b0448caf20325be06f" + ] + }, + { + "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", + "storageKeys": [] + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x000000000000000000000000000000000000000000000000000000000000000a", + "0x1f7a81d2f1f4a077ecb92cebd9b046a5c533ba2337c06dbba67afa748fca415a", + "0x31adef62206227419133dd9a6b4041532c22595206a596cf74f19493bfc8f368", + "0x825c54d62ddb4b2cdc677f01a756014816eb6f8131b86522cfc1169bfa29047b", + "0xcc5b58d8f9820bb78bf36fd49ecd41d77319a6d68107afe17a8af7d504d30666" + ] + }, + { + "address": "0xe28b3b32b6c345a34ff64674606124dd5aceca30", + "storageKeys": [ + "0x618059526d7d1bb5608c8e3a0740d1f656fa8a764ecca600a8e0e3e0c313ce66", + "0xa44b731602b5f99009ea5bf8fe3e732f61d79da751ded1d6123bb19e45289151", + "0xa5a0ef7d3eef8b32f68dbfdaa69010f4ab6b591bbccd25e4966c64af9ad30500" + ] + }, + { + "address": "0xf3fe03cd60d1f138ebc106ce9575475100ebfc9a", + "storageKeys": [] + } + ], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x9aed6526234382282b198649baed64ad50fdc5b96f003b0d64648e133dff7b8c", + "s": "0x573c5764c88d615469182b32d6438d130b5cbcdd6f4f50c777bbd309a829ca26" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x2f091462316f650ca24dea5b8e90f9657af6915d", + "gas": "0xfb2e", + "gasPrice": "0x479285d4", + "maxPriorityFeePerGas": "0x23c34600", + "maxFeePerGas": "0x16b969d00", + "hash": "0xbfbbdc3e43e8e7a9629b2d3e2a7c5c998451d31542b92bab59a2de5aeefefea9", + "input": "0xa9059cbb000000000000000000000000559432e18b281731c054cd703d4b49872be4ed530000000000000000000000000000000000000000000000000000000021ca5c30", + "nonce": "0x180", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x61", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x959faf52c8891f468fbe2608b9dd9657d1a3acd95cc4e626318d2590b2b52e38", + "s": "0x49a8f64312ffc980c822ecd050914e048f8cd8fbe34c3cbcf3081299d4376c81" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x317d2da746d1360f4c113e7962a33394db2a1a4e", + "gas": "0x5cbfe", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0xa7c2cc55", + "hash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "input": "0xc7c7f5b300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000116c5c2e85990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e0000000000000000000000000000000000000000000000000000000000007596000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e0000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000004563918244f4000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000030d400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x26", + "to": "0x1958853a8be062dc4f401750eb233f5850f0d0d2", + "transactionIndex": "0x62", + "value": "0x116c5c2e8599", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x62320ac2b00cedf98d4968904cdc425a6277e01b007c6bb4d499ecc443d75c36", + "s": "0x6a642d33dce74b308bced5d8a4aad693257f70bdb067c44821956aa7c345b82f" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gas": "0x5208", + "gasPrice": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "maxFeePerGas": "0x23cf3fd4", + "hash": "0x854a247acfde5a5346f137d645aafce7266476f1ca57bbc56ff4d451686990d1", + "input": "0x", + "nonce": "0x2c5cdf", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionIndex": "0x63", + "value": "0x19a881fe60260", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x9b3abd0ede8ec80593ae00236ddfc40f156754c88c35c6adb60d561400b67b35", + "s": "0x60f6718fce2ffd2f654a098555b5f6bb1e94c4089803827fe6b9a72bd320617d" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x3908f89b206af269cd10520a39683d3e9b709a0c", + "gas": "0xf77e", + "gasPrice": "0x47094b30", + "maxPriorityFeePerGas": "0x233a0b5c", + "maxFeePerGas": "0x510fec66", + "hash": "0x34c4b2585880bbbfd2bd41d407ab91c487ab3ea1d740bb10051a2d94eae979b7", + "input": "0xa9059cbb0000000000000000000000008fa4103428737fc17ba6566285492b19f4a42c3300000000000000000000000000000000000000000000069420a776ba5cab0000", + "nonce": "0x635", + "to": "0x699ccf919c1dfdfa4c374292f42cadc9899bf753", + "transactionIndex": "0x64", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x6e89dceefc3e5721f20af7ecf0c3bc94b13c87f1f554c28d9f77d58d261fbabd", + "s": "0x699fc9f6e49f9c7c3015c6edcea72fb07bca3ced8f9a2a13dc01b42ff5c82051" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "gas": "0x19a28", + "gasPrice": "0x5f6b1b44", + "maxPriorityFeePerGas": "0x3b9bdb70", + "maxFeePerGas": "0x943dace5", + "hash": "0x881dde515af25e26e76a9f4fd56f92172e576868db77f8d0edb19546d055a6ff", + "input": "0x", + "nonce": "0x80d17a", + "to": "0x5c872bc1cdb41bc1467960e2c3b59a09cc93da05", + "transactionIndex": "0x65", + "value": "0x15104a419790400", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x1d8001a2513b593efe3683fddc8b2039db609193993ac6449c2c1d8f122d7138", + "s": "0x109c7a8fff5c9eead57bd75a61494ffa68d0ea132ab8890aa23c395630e4f8dc" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xfb19ffd1ff9316b7f5bba076ef4b78e4bbedf4e1", + "gas": "0xb5ea", + "gasPrice": "0x3b9aca00", + "hash": "0x7603ff263930ac4706dfc190bfa96bba194ec04561f686515626428442cfc3bc", + "input": "0xa9059cbb000000000000000000000000e76392fd5215a3e6bd794d7a31a3c8294c1eb18c0000000000000000000000000000000000000000000000000000000006359235", + "nonce": "0x4c8d8", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x66", + "value": "0x0", + "type": "0x0", + "chainId": "0x1", + "v": "0x25", + "r": "0xde668d1e6aa59075da47060db6d56f942bf17d48578cf8e0bce27c8037acf285", + "s": "0x40518e51eb91cfb7647820407194b60be480da4a6c0679c9f90a0dee872edb51" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x3814e8720156e8259aeef2803eb3fbb3cdddc549", + "gas": "0xfa1f", + "gasPrice": "0x9aa98162", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0x9aa98162", + "hash": "0x7e99dbbc2acdc35b5ba4d4d460849fb57bb4fe43e62d47b34c18a922e5b9afac", + "input": "0xa9059cbb0000000000000000000000008ab12dde8535538cc1759f011ebb45856f0a8acb000000000000000000000000000000000000000000000000000000000aba9500", + "nonce": "0x0", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x67", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x6e1cbedf81a45effcd2bde0686bab46aba7d1d7d3eaf400550c83fbede6f6016", + "s": "0x3e0560385c9b7fc8fe6dcee8b8eb04b38de32b75e3bcd1cb18c50c40a09fc172" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x2a008273cf9c4276e3f85311ebab58b7b74fa1bb", + "gas": "0x493e0", + "gasPrice": "0x2c523e86", + "hash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "input": "0x7ff36ab5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000002a008273cf9c4276e3f85311ebab58b7b74fa1bb0000000000000000000000000000000000000000000000000000000068a5dc660000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e0265346277ad201609308b506e901b520150a08", + "nonce": "0x3", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionIndex": "0x68", + "value": "0x740c1005bbd2a5", + "type": "0x0", + "chainId": "0x1", + "v": "0x26", + "r": "0x5788b4da5ca6c26f8db8c29e054f1305484ba1c45b06dd4c7e948d170a3f7c4b", + "s": "0x22b7a34fb63d89a1ddb1cf033c9f6a3bc90ce9aa23908b65dd0aeb7db8699689" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xd04691fada4d78e62f74d51b77c3fab05dd5e656", + "gas": "0x5208", + "gasPrice": "0x4c762185", + "maxPriorityFeePerGas": "0x28a6e1b1", + "maxFeePerGas": "0x4dffd1f2", + "hash": "0x9cc229f51b3398a71370ab7ee4d775f9fc617c40c9379b786e03070e52fcd357", + "input": "0x", + "nonce": "0x0", + "to": "0xc00313c93a1dc6befa0d4b50697ec1ef11b5967e", + "transactionIndex": "0x69", + "value": "0x5309d8d77f14000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xa6d2bb45252b7e9884132de3ea83e622d2be3cdd8fa88782f2764ab66e4f45d7", + "s": "0x5c68ff0d8a4ed88bf7da396862da303b68a7dbcd7eef2f74aab5616613fd7ab2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x051ad444b2c9a1678c7f4632885851c0c08285fd", + "gas": "0x47694", + "gasPrice": "0x2884b194", + "maxPriorityFeePerGas": "0x4b571c0", + "maxFeePerGas": "0x4d7c6d00", + "hash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "input": "0x0d5f0e3b000000000000000000019afd051ad444b2c9a1678c7f4632885851c0c08285fd00000000000000000000000000000000000000000000000000000000004ba428000000000000000000000000000000000000000000000000000429b0d307836000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec73ca20afc2aaa00000081b3202cffed5d56eb6a17662756ca0fdf350e732c9818", + "nonce": "0x7", + "to": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", + "transactionIndex": "0x6a", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x812fb4b40c56bcb2f83428115e393b8a07c88778b59649f3fd3535c83c159c", + "s": "0x1b3befc4c53338b4447f0f2ef9a18a8f50542e9630859f860d34a2bbd8fe6eae" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x1e8b52ea011a678a888cf7b4e7aa667170f192ca", + "gas": "0x77281", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0x64e6e088", + "hash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "input": "0x2213bc0b000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000129e5915326ed86f831b0e035acda34b209633d500000000000000000000000000000000000000000000000000002d79883d2000000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000006a41fff991f0000000000000000000000001e8b52ea011a678a888cf7b4e7aa667170f192ca000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000019d6036900000000000000000000000000000000000000000000000000000000000000a065e8b85d871ee28632d7b5be0f15b10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000000e4c1fb425e0000000000000000000000009c76dd6b5b200690fc9fb061a99b0a48e9a94325000000000000000000000000129e5915326ed86f831b0e035acda34b209633d500000000000000000000000000000000000000000000000000002d79883d200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5cf5b00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4103b48be000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000129e5915326ed86f831b0e035acda34b209633d500000000000000000000000000000000000000000000000000000000000000000000000000000000000000009c76dd6b5b200690fc9fb061a99b0a48e9a943250000000000000000000000000000000000000000000000000000000000001e0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e48d68a156000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cc02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000064dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064c876d21d000000000000000000000000f5c4f3dc02c3fb9279495a8fef7b0741da956157000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000001b1a9a8400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012438c9c147000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000046000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000ad01c20d5886137e056775af56915de824c8fce50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xdb", + "to": "0x0000000000001ff3684f28c67538d4d072c22734", + "transactionIndex": "0x6b", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x6e904ba20f4d9d72e5f4c071be68d877617d759619a28b8cdfd79dc01ddecffc", + "s": "0x3f02dd94c35eb1ee184ec53b4381fa3c767251ca584bb3031c03e5cdf98f5492" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x97fe8b7ba616945b5031e146229b9e727830f131", + "gas": "0x35a94", + "gasPrice": "0x9b04d3d4", + "maxPriorityFeePerGas": "0x77359400", + "maxFeePerGas": "0xa7c2cc55", + "hash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", + "input": "0xa64dfa75000000000000000000000000be5f6232d8ed5a4057f33a28915bc1a8ab01335b000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000000054000000000000000000000000000000000000000000000000000000000000005600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097fe8b7ba616945b5031e146229b9e727830f131000000000000000000000000000000000000000000000000000000000000058000000000000000000000000000000000000000000000000000000000000005c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000003a697066733a2f2f516d586733513741314e386b4535394b54324d76756f6d4a41547466774e3848456d3257543647697831544578462f7b69647d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x3e7", + "to": "0x864baa13e01d8f9e26549dc91b458cd15e34eb7c", + "transactionIndex": "0x6c", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x63642b4de7c95e847d1f75ad695f93c417f3528715a4d1e2548ba1647dcddfc7", + "s": "0x3103e58f7ad2723b1cfaa1a22066ebd2bc732306f10f914a2200a00189d66509" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gas": "0x5208", + "gasPrice": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "maxFeePerGas": "0x23cf3fd4", + "hash": "0xd36572df8b853ee2b6cab95a988ca7065b03d00fc8b2c1411301cadf49343092", + "input": "0x", + "nonce": "0x2c5ce0", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionIndex": "0x6d", + "value": "0xedbdd761ba60", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x3c240ef59ec96ca4e3eac84f6bd5dd6bf07e1926f93391df1d54334989c26528", + "s": "0x59cb9097d1dd02d9e3939c5b14fb4b490c190e06937dfd51b9fafed5c302196e" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xe93685f3bba03016f02bd1828badd6195988d950", + "gas": "0x8b660", + "gasPrice": "0x2dde0f0d", + "maxPriorityFeePerGas": "0xa0ecf39", + "maxFeePerGas": "0x35078237", + "hash": "0x5cbc170410348d6fdc873705eff0fe6e22f82115fa66a032cacaf14b00d3fd73", + "input": "0x0894edf1000000000000000000000000000000000000000000000000000000000000004036e7b0f7494af14e92055752ad7efac6d5d62065da6b772b7bb98d7127e4495d000000000000000000000000000000000000000000000000000000000000005101000000000000111000007683000000000000000000000000cab283e4bb527aa9b157bae7180fef19e2aaa71a00007595000000000000000000000000f2b2bbdc9975cf680324de62a30a31bc3ab8a4d5000000000000000000000000000000", + "nonce": "0x250aa2", + "to": "0xc02ab410f0734efa3f14628780e6e695156024c2", + "transactionIndex": "0x6e", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xe4879c5f426e5b8b7d3b41b17f5a614cdcc78ba669d6ab6182f862e18444066c", + "s": "0x2ef31d6b3adedbaef6a1738d4d6c6d124bc48d085044104b81d8e0298f208b2d" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xe6767c337d50e51241257059d58508fd8fba91a1", + "gas": "0x1772f", + "gasPrice": "0x6b55cbd4", + "maxPriorityFeePerGas": "0x47868c00", + "maxFeePerGas": "0x792d1e40", + "hash": "0x885b570f51838e21d3ee6f7635b9019859c9dc284b61a10e597428521779a514", + "input": "0xa9059cbb0000000000000000000000003732c23fe8422fa1dc7759e2f34515de41bf268b000000000000000000000000000000000000000000000000000000001c9c3800", + "nonce": "0x62", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x6f", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xf1f4a5531fcd333695b2e7417fdae4e3ddcb708e3654f9c1867506eb6572399", + "s": "0x4cc7b9087b477cdc8ba54ddba333d85082f78fa79ee941911673ee58ff9e2c4d" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x4cf7d1f09d73d05538b701c2ccd071298569b18b", + "gas": "0x5208", + "gasPrice": "0x47094b30", + "maxPriorityFeePerGas": "0x233a0b5c", + "maxFeePerGas": "0x510fec66", + "hash": "0x6dc512f88c8907da511443523a0ce1f9d83b9590fb25470b40a5c7dabecb9cb0", + "input": "0x", + "nonce": "0x1", + "to": "0x4cf7d1f09d73d05538b701c2ccd071298569b18b", + "transactionIndex": "0x70", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x797d9e07782c1a7570722138d950c8633aef9809eeaeb8fbdb036971011f793c", + "s": "0x1708f6394868c6821120e4ce8ffbbefc2aafdd564fc7e5c11f9b2267229ef5ee" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x1a6bf7734a87c9fb327162eed8cff7b1982e7e5e", + "gas": "0x5208", + "gasPrice": "0x47094b30", + "maxPriorityFeePerGas": "0x233a0b5c", + "maxFeePerGas": "0x510fec66", + "hash": "0x293dfc29e6d24ec039d5da89eca31f7874ab0f73485242b24472991bbc4a81ac", + "input": "0x", + "nonce": "0x5", + "to": "0xdc3a5dcd4d2299bdd8a9345169029088f4b0e0c2", + "transactionIndex": "0x71", + "value": "0xcb8a708304c0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x2028d41e9a0141761d433e4cfc7884adef975420a963487fad220cf7d2b8a1de", + "s": "0x50eb5b6b9ffa49a76c96c444aee674f28f0dd3f8f04d3a2b39308617780f5fd1" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xa2d9d10acece8512a99a3048c88fa274ba59e2cf", + "gas": "0x5208", + "gasPrice": "0x47094b30", + "maxPriorityFeePerGas": "0x233a0b5c", + "maxFeePerGas": "0x4da16a23", + "hash": "0x3199c465ca839a4561420e9ae7a22247c0faf5f3b8b22675e9d280871b018d5e", + "input": "0x", + "nonce": "0x184", + "to": "0xf051193691fc11600e1228ca27ede7663c4de189", + "transactionIndex": "0x72", + "value": "0x886c98b76000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x9c93f4bd79ccb99d1be47372b5aaccfc208982f979bafc1da3b32590f373663", + "s": "0x612088c93597b86f051f32154119e30b10d7d6d503d22becefdd1ebda48ce67e" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xb0bfdffa1c53912c9d6a1f7250d2bac0f6fb0373", + "gas": "0x5208", + "gasPrice": "0x47094b30", + "maxPriorityFeePerGas": "0x233a0b5c", + "maxFeePerGas": "0x510fec66", + "hash": "0x6cb4300ccb17a849f57e47bf2e950fc2ff88e1536d19e413b23ff3c321c11e8c", + "input": "0x", + "nonce": "0x0", + "to": "0x02ca45d242a1e2cd80f860a265e42a048c67b712", + "transactionIndex": "0x73", + "value": "0xb1a2bc2ec50000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x720690819dbcd99ec4fcd2a5c6050b5688a8f9dafc0dbf6f29aef638f4bc6f52", + "s": "0x5ae4c4f5c0722b19eb4eb959e6f071b169c6838e9e0dce0e52f8980215b872c1" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x9502954fba7ca26abdefc7ef4c9dd59b8b54f03f", + "gas": "0x5208", + "gasPrice": "0x47094b30", + "maxPriorityFeePerGas": "0x233a0b5c", + "maxFeePerGas": "0x4da16a23", + "hash": "0x5dd9f8f7e9b3c71c4e4c00191f358b82e5438d0ee6bbbe841d945089e2df8cba", + "input": "0x", + "nonce": "0x0", + "to": "0x9502954fba7ca26abdefc7ef4c9dd59b8b54f03f", + "transactionIndex": "0x74", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0xfe29aaa1afa27064570a2be9bb914bbf81fa756fa237a6cc1d5aff31e7664602", + "s": "0x63c6b6167df7e2ee0306a02786b2964541d018146c9b27d71c586842ff8707b5" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x173449e23b2768042a7acbbf00a2b32d262b3a4b", + "gas": "0x6dd33", + "gasPrice": "0x26ca3054", + "maxPriorityFeePerGas": "0x2faf080", + "maxFeePerGas": "0x3075589a", + "hash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "input": "0x765e827f0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000173449e23b2768042a7acbbf00a2b32d262b3a4b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000124f800000000000000000000000000014df90000000000000000000000000000000000000000000000000000000000017fbc000000000000000000000000039387000000000000000000000000003751c5e500000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000004a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024426da7d880000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000007d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac0000000000000000000000000000000000000000000000000000000000180d1400000000000000000000000000000000000000000000000000000000000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000000e8495d95270c688473e88f02bb3101a3f7cec73000000000000000000000000000000000000000000000000000000000f60c480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b57d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac000000000000000000000000000061a800000000000000000000000000005daa000068a5cf6d000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000e98ea4bb7fa8f191b0588c1709ab2c1b038a113d42b76391e187187df085a48a654303c10f44cd3e9c226fed8d202651f301fca3d84052cdd089a84ed15afc22cc55b1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000004170cd8c9a9c00e848c3a93a47f52e71aedc923e3ccc6421729ab51d0d9278adb53ea1c0a4f2234e1312ac4c744a3b950dd879a387b10593570903e6e9a40081951c00000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x4b5", + "to": "0x0000000071727de22e5e9d8baf0edac6f37da032", + "transactionIndex": "0x75", + "value": "0x0", + "type": "0x4", + "accessList": [], + "chainId": "0x1", + "authorizationList": [ + { + "chainId": "0x1", + "address": "0xd2e28229f6f2c235e57de2ebc727025a1d0530fb", + "nonce": "0x0", + "yParity": "0x1", + "r": "0x62ffcce54b35a2c7c0cf41ae86c22d90d0ea9fe274a3e06e51f34078552e3356", + "s": "0x1ae7c6e429c48dcb05e3b22cf8588439c94109951186c1a6c55e32b6649bcafe" + } + ], + "v": "0x1", + "yParity": "0x1", + "r": "0xb8d4b1baed6404be7fcb4358fe8497a15f78bd761f0b7e62d19a077c302cc004", + "s": "0x2791874c668c0458b2fa7e0e2248d6251a40a09aad38869d7de62e93a1ee4b9f" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0xfcc46ea12aec1f62c3d58803fe94aa8f768f2636", + "gas": "0x171ab", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0x6625e6dc", + "hash": "0x971833c61c63e80e90a69edadce6cf052ed708c0b89a52714e3de65174e501d2", + "input": "0xa9059cbb000000000000000000000000552549d39c22c1e55e4f91318d41f5422d204c4e00000000000000000000000000000000000000000000000000000000017d7840", + "nonce": "0xf5", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionIndex": "0x76", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xe5d335bf550c364ffcee7c8460c803222a041c0cd746127373fd0b9729de9299", + "s": "0x4056279be100eaab0f391c8a464bd009b5b0883b7fc9fddb9965a5d1766e78c8" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x52f1e1001c28f6807530470b67a83a348040e31b", + "gas": "0x1740a", + "gasPrice": "0x6458e75e", + "maxPriorityFeePerGas": "0x6458e75e", + "maxFeePerGas": "0x6458e75e", + "hash": "0x9ea42c0b70a8feb646683ef29551a4f1e35aa5c52ff4e92d41885fddc062eee3", + "input": "0xa9059cbb00000000000000000000000043e19182b2f68d8a83d56a7304665ce0ea3fb3e3000000000000000000000000000000000000000000000000000000002e4686e2", + "nonce": "0x6", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionIndex": "0x77", + "value": "0x0", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0xbf11a33a31fa408edd4e23b563e2b2baed6c6d5d7dcc425d9b2c717971bdb7e", + "s": "0x4228f38b07269ccc79ec419e5321492a7fad4a6ce9d9853021f638f9a2db166c" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x242ad3fac0e6820f50ce520117fe8774f21b5f9f", + "gas": "0x5208", + "gasPrice": "0x419ca4d4", + "maxPriorityFeePerGas": "0x1dcd6500", + "maxFeePerGas": "0x4234f3e1", + "hash": "0xa7e4c653d8b4852c0fc96106be40980b66a3bb81a9730f4c5bdd8010851faabd", + "input": "0x", + "nonce": "0x0", + "to": "0x094d77550b654f1fceb33f405ae0415c4cbcb0f1", + "transactionIndex": "0x78", + "value": "0x9e92c7881c800", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x6a0ad5377b1db6a5daa1475af73d72f39f15fb610af3d33c5613be5fcee0e617", + "s": "0x4b674ea61ebfb2716ed38393d86562740a9db80f43f3880d5b0c9776e17c4fc6" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x9f256a5703a493cac86a09fa84473517ace6ca81", + "gas": "0x45405", + "gasPrice": "0x5f6a09d4", + "maxPriorityFeePerGas": "0x3b9aca00", + "maxFeePerGas": "0x685dd9c9", + "hash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "input": "0x209178e800000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000570154115e4e30000000000000000000000000000000000000000000000000000000068a5cece0000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000161bd0e0000000000000000000000000000000000000000000000000000000068a5ce4f0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000fa417cd491632620a582851b07abf7e3447bba71", + "nonce": "0x17e5", + "to": "0x055c48651015cf5b21599a4ded8c402fdc718058", + "transactionIndex": "0x79", + "value": "0x6a94d74f430000", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x1", + "yParity": "0x1", + "r": "0x3c5a0e76f5ef8d2ea21a0eac730ce97565091a0b1a959bf95a328d06d1de9fc", + "s": "0x704b1d8f5b320e9f6bd49565962c7ed287063f8c9da91d0dcaa4d06e2c32ae0b" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gas": "0x565f", + "gasPrice": "0x23cf3fd4", + "maxPriorityFeePerGas": "0x0", + "maxFeePerGas": "0x23cf3fd4", + "hash": "0x2c522d01183e9ed70caaf75c940ba9908d573cfc9996b3e7adc90313798279c8", + "input": "0x", + "nonce": "0x2c5ce1", + "to": "0x388c818ca8b9251b393131c08a736a67ccb19297", + "transactionIndex": "0x7a", + "value": "0x12bf92aae0c2e70", + "type": "0x2", + "accessList": [], + "chainId": "0x1", + "v": "0x0", + "yParity": "0x0", + "r": "0x4a5703e4d8daf045f021cb32897a25b17d61b9ab629a59f0731ef4cce63f93d6", + "s": "0x711812237c1fed6aaf08e9f47fc47e547fdaceba9ab7507e62af29a945354fb6" + } + ], + "transactionsRoot": "0xca2e7e6ebe1b08030fe5b9efabee82b95e62f07cff5a4298354002c46b41a216", + "uncles": [], + "withdrawals": [ + { + "index": "0x5dce3db", + "validatorIndex": "0x1dd01a", + "address": "0x5b3e2bb0fc7cad985c1461fec254a9cc162ff168", + "amount": "0x12417c4" + }, + { + "index": "0x5dce3dc", + "validatorIndex": "0x1dd01b", + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x1213ae3" + }, + { + "index": "0x5dce3dd", + "validatorIndex": "0x1dd01c", + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x120e5a4" + }, + { + "index": "0x5dce3de", + "validatorIndex": "0x1dd01d", + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x120df02" + }, + { + "index": "0x5dce3df", + "validatorIndex": "0x1dd01e", + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x1210d63" + }, + { + "index": "0x5dce3e0", + "validatorIndex": "0x1dd01f", + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x120d70e" + }, + { + "index": "0x5dce3e1", + "validatorIndex": "0x1dd020", + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x120491b" + }, + { + "index": "0x5dce3e2", + "validatorIndex": "0x1dd021", + "address": "0xa554965fcd0d9493313e2eafa27eef5b058336f4", + "amount": "0x121f4c4" + }, + { + "index": "0x5dce3e3", + "validatorIndex": "0x1dd022", + "address": "0xa554965fcd0d9493313e2eafa27eef5b058336f4", + "amount": "0x1215726" + }, + { + "index": "0x5dce3e4", + "validatorIndex": "0x1dd023", + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x120ae6a" + }, + { + "index": "0x5dce3e5", + "validatorIndex": "0x1dd024", + "address": "0xd29b9bb69a1890232382e5936aa195031eae1577", + "amount": "0x124a7fd" + }, + { + "index": "0x5dce3e6", + "validatorIndex": "0x1dd025", + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x12123cb" + }, + { + "index": "0x5dce3e7", + "validatorIndex": "0x1dd026", + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x120be70" + }, + { + "index": "0x5dce3e8", + "validatorIndex": "0x1dd027", + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x121f5d1" + }, + { + "index": "0x5dce3e9", + "validatorIndex": "0x1dd028", + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x1215cfe" + }, + { + "index": "0x5dce3ea", + "validatorIndex": "0x1dd029", + "address": "0xe839a3e9efb32c6a56ab7128e51056585275506c", + "amount": "0x12198a4" + } + ], + "withdrawalsRoot": "0x7a3ad42fdb774c0e662597141f52a81210ffec9ce0db9dfcd841f747b0909010" +} diff --git a/substrate/frame/revive/test-assets/eth_receipts.json b/substrate/frame/revive/test-assets/eth_receipts.json new file mode 100644 index 0000000000000..dea646889a014 --- /dev/null +++ b/substrate/frame/revive/test-assets/eth_receipts.json @@ -0,0 +1,7779 @@ +[ + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x3e5a5", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x693ca5c6852a7d212dabc98b28e15257465c11f3", + "gasUsed": "0x3e5a5", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" + ], + "data": "0x000000000000000000000000000000000000000000000000000000035c9618f6", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x0", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" + ], + "data": "0x0000000000000000000000000000000000000000000000000001528fd550bc9a", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" + ], + "data": "0x000000000000000000000000000000000000000000000000000000005c0c965e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0xe500210c7ea6bfd9f69dce044b09ef384ec2b34832f132baec3b418208e3a657", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" + ], + "data": "0x000000000000000000000000000000000000000000000000000000035c9618f6ffffffffffffffffffffffffffffffffffffffffffffffffd0061697905954000000000000000000000000000000000000003c76c3128ad6b3eb40ac1d9f90e600000000000000000000000000000000000000000000000004caaa5ba8029c92000000000000000000000000000000000000000000000000000000000002f1ba0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3", + "removed": false + }, + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0x90078845bceb849b171873cfbc92db8540e9c803ff57d9d21b1215ec158e79b3", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffadce6399e224f9a000000000000000000000000000000000000000000000000000000005c0c965e000000000000000000000000000000000000000000043b148c07fa0e7487fde1000000000000000000000000000000000000000000000000005049606b676761fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e360000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000073d53553ee552c1f2a9722e6407d43e41e19593f", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4" + ], + "data": "0x0000000000000000000000000000000000000000000000002ff9e9686fa6ac00", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4", + "0x00000000000000000000000073d53553ee552c1f2a9722e6407d43e41e19593f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000035c16902a", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90" + ], + "data": "0x000000000000000000000000000000000000000000000000351e55bea6d51900", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7", + "removed": false + }, + { + "address": "0x0000000aa232009084bd71a5797d089aa4edfad4", + "topics": [], + "data": "0xe34cc98d396db0ad165915ad7ee8e27580670d53d2de88e52db6258aea02ab6e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8", + "removed": false + } + ], + "logsBloom": "0x000000000000000004000000000000000000000000000000000000000000000000000000200000000010000000000100020000000c0000000000000002000002000000000000000009000108000000000000000000000020000000000000000000000000000000000000000000000000000000000000020000000010000000000000040840000000000000000000000000000000010000000000000000100000400000000000200000000080100000000000000000000000000000000000000000000802000000000000000000000000000000400000004000000000000001000000200000000000004000000080000000001000000800080000000000000000", + "status": "0x1", + "to": "0x0000000aa232009084bd71a5797d089aa4edfad4", + "transactionHash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", + "transactionIndex": "0x0", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x87f43", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0xc445a471debbc8ef54dbfd90af406b6a682313e3", + "gasUsed": "0x4999e", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259" + ], + "data": "0x0000000000000000000000000000000000000000000000000000004d163ab3f6", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9", + "removed": false + }, + { + "address": "0x4342b77fe3417bcb09d0a4383301b0dc733c755b", + "topics": [ + "0x9b97792d4bc68bb4ac03fb65cd7d887197ae9100c1afea4383f9700cf8637cfb", + "0xd82c2736ad6fe23474357b319e12205803b760f7f9d1e419ad91e64f09f99c74" + ], + "data": "0x00000000000000000000000000000000000000000000460cdc7e35644d59cff70000000000000000000000000000000000000000000000044cca9748c816200e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa", + "removed": false + }, + { + "address": "0xd315a9c38ec871068fec378e4ce78af528c76293", + "topics": [ + "0x2170c741c41531aec20e7c107c24eecfdd15e69c9bb0a8dd37b1840b9e0b207b", + "0x4342b77fe3417bcb09d0a4383301b0dc733c755b000200000000000000000002", + "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000004d0563b78d0000000000000000000000000000000000000000000000044cca9748c816200e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259", + "0x000000000000000000000000d315a9c38ec871068fec378e4ce78af528c76293" + ], + "data": "0x0000000000000000000000000000000000000000000000000000004d0563b78d", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000d315a9c38ec871068fec378e4ce78af528c76293", + "0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640" + ], + "data": "0x0000000000000000000000000000000000000000000000044cca9748c816200e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd", + "removed": false + }, + { + "address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffb2e9c54c0a0000000000000000000000000000000000000000000000044cca9748c816200e0000000000000000000000000000000000003c7922239c6e6f4650809908a91600000000000000000000000000000000000000000000000051b0f41e60a05433000000000000000000000000000000000000000000000000000000000002f1bd", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe", + "removed": false + } + ], + "logsBloom": "0x0000000001000000000000000000400000000000800000000000000004000020000000200000000000000a000000000002080000080020002000000100400000000000000000200808000008000820804000000000000000000000000000000000000000000000004000000000000000000000400000000000000010000800000000800000000000002000400000000200000000210000000000001000000000000000000000200000000000000000000000000000000000002800000008000000000002000000000000200000080000000000000004000100000000000000000000200000000000000010000000000004000000002000040000000000000000", + "status": "0x1", + "to": "0xc90d7c41974397cb8b260238ec9ecb6bbd965259", + "transactionHash": "0xa4d83b0f03540b4659285e886c75e06cb1dffbda15bc9042db68c63ac948593d", + "transactionIndex": "0x1", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xcb6de", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x8361a4786bd2081acbf4a0802aab618d6aa1c674", + "gasUsed": "0x4379b", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000f14ae20b1", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf", + "removed": false + }, + { + "address": "0x315a892a4d02c5c1169d5f0e4f7cb4130cc0d138", + "topics": [ + "0x9b97792d4bc68bb4ac03fb65cd7d887197ae9100c1afea4383f9700cf8637cfb", + "0x9b65abd5af36b457eec7bcae8438283bfdee71c23b6129a9b75b63f758674743" + ], + "data": "0x000000000000000000000000000000000000000000000db439926f2897826ffd000000000000000000000000000000000000000000000000d763281af8acbffc", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10", + "removed": false + }, + { + "address": "0xd315a9c38ec871068fec378e4ce78af528c76293", + "topics": [ + "0x2170c741c41531aec20e7c107c24eecfdd15e69c9bb0a8dd37b1840b9e0b207b", + "0x315a892a4d02c5c1169d5f0e4f7cb4130cc0d138000200000000000000000009", + "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7", + "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000f115584f7000000000000000000000000000000000000000000000000d763281af8acbffc", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259", + "0x000000000000000000000000d315a9c38ec871068fec378e4ce78af528c76293" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000f115584f7", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000d315a9c38ec871068fec378e4ce78af528c76293", + "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b" + ], + "data": "0x000000000000000000000000000000000000000000000000d763281af8acbffc", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13", + "removed": false + }, + { + "address": "0xc7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259", + "0x000000000000000000000000c90d7c41974397cb8b260238ec9ecb6bbd965259" + ], + "data": "0x000000000000000000000000000000000000000000000000d763281af8acbffcfffffffffffffffffffffffffffffffffffffffffffffffffffffff0eb51df4f000000000000000000000000000000000000000000043b6637f8c724bd98d5df0000000000000000000000000000000000000000000000000f7eaa8ee01d5748fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e3c", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14", + "removed": false + } + ], + "logsBloom": "0x10000040000000000000000002004000000000000000000000000000000000200000002000000000000000000000010002000000080020000080000100000000000010000000200800000208000820804000001000000000000000000000000000000000002000000000000000000000000000600000000000000010000800000000000800000000002000400000000000000000200000000000001000100000000000000000000000000080200000000000000000000000000800000000004000002002000008000000000000080800000000020004000000000000000000030000200000000000000000000000000000000000002000000000000000000000", + "status": "0x1", + "to": "0xc90d7c41974397cb8b260238ec9ecb6bbd965259", + "transactionHash": "0xbd48baa01338f5d923f6f2f3e38958854e3c40f1c02a6636100a85072db66168", + "transactionIndex": "0x2", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x12a596", + "effectiveGasPrice": "0x2d2a4df1", + "from": "0x6b063481f8216b5624ec496dd72376bef00faffd", + "gasUsed": "0x5eeb8", + "logs": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" + ], + "data": "0x00000000000000000000000084ca8bc7997272c7cfb4d0cd3d55cd942b3c9419000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000230ec810de9c63d000000000000000000000000000000000000000000000000000000000001ae32af8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000003829475008131557bbcd760e6b5f8e8ff5e2160f6082c1a62fa964054a6ff448ac89b537d4e0de035303dc1bdae18394f7a6c15c3668a5cea00000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x0000000000000000000000000000000000000000000000230ec810de9c63d000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", + "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffecc9a02e668c0ffc70606", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000b60b34d830f26c5a11c47ddb1e0a1f31d90a78b1", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x00000000000000000000000000000000000000000000000000d3c631f934190e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x18", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000b60b34d830f26c5a11c47ddb1e0a1f31d90a78b1" + ], + "data": "0x0000000000000000000000000000000000000000000000134f6e6f97fa338eb8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x19", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" + ], + "data": "0x0000000000000000000000000000000000000000ffffff2b13d40994899ed471", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1a", + "removed": false + }, + { + "address": "0xb60b34d830f26c5a11c47ddb1e0a1f31d90a78b1", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x0000000000000000000000000000000000000000000000134f6e6f97fa338eb8ffffffffffffffffffffffffffffffffffffffffffffffffff2c39ce06cbe6f20000000000000000000000000000000000000000035057e9b5ae5c4a4943b8de0000000000000000000000000000000000000000000000953a360f14392059effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeac5e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1b", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a14afc841a2742cbd52587b705f00f322309580e", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000c09061f", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1c", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000a14afc841a2742cbd52587b705f00f322309580e" + ], + "data": "0x00000000000000000000000000000000000000000000000fa7469b560e451907", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1d", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" + ], + "data": "0x0000000000000000000000000000000000000000ffffff1b6c8d6e3e7b59bb6a", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1e", + "removed": false + }, + { + "address": "0xa14afc841a2742cbd52587b705f00f322309580e", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x00000000000000000000000000000000000000000000000fa7469b560e451907fffffffffffffffffffffffffffffffffffffffffffffffffffffffff3f6f9e1000000000000000000000000000000000000000000000e0a911b42c1dd6fb73a000000000000000000000000000000000000000000000000028436a16f2261c2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbbab3", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x1f", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007858e59e0c01ea06df3af3d20ac7b0003275d4bf", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000eda6b92", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x20", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000007858e59e0c01ea06df3af3d20ac7b0003275d4bf" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000edb15d4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x21", + "removed": false + }, + { + "address": "0x7858e59e0c01ea06df3af3d20ac7b0003275d4bf", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffff125946e000000000000000000000000000000000000000000000000000000000edb15d40000000000000000000000000000000000000000fff55b68b5f9b667ec39892600000000000000000000000000000000000000000000000000022514b6f71388fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x22", + "removed": false + }, + { + "address": "0x2db07a3a657b6e16999b67d48500486a1cb0d649", + "topics": [ + "0xd7cf88e4bcca455701f69cc774034a649b16dcf4c3607676ea5f556353332623" + ], + "data": "0x000000000000000000000000000000000020471041ccf0884a74288beb780000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x23", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000047a4a98900000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x24", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001ae32af8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x25", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", + "0x000000000000000000000000a9d635ef85bc37eb9ff9d6165481ea230ed32392" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x26", + "removed": false + } + ], + "logsBloom": "0x00401000000000000000040000001000004000000000000000010000000000002000000800440000000000006000010002000040080420000000000000200c00000400000000000808180008000000000000000900000000000000000000000000000000000000000000804000100000000200002000000010004010008800000000000000000040000000008000000000848000c50000000000000000100000020000600000200000000080000000000000001000000000010000000000000000000002000800200001000000000000000020000000840000000000000000000010202000000000000002000104000000204000000000100000000000000000", + "status": "0x1", + "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", + "transactionHash": "0x634164bee85be6e15815df5f3d000f1a5ab87106bd7a73c77602db8a12d916c6", + "transactionIndex": "0x3", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x12fc80", + "effectiveGasPrice": "0x38cc2a7c", + "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", + "gasUsed": "0x56ea", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xfbd6acca70a8632061593f1a07056affb7965ac3", + "transactionHash": "0xa655290cbb744571dd7455dacd45109cb3c7adce13392aa7ed3f2f64f5b644e4", + "transactionIndex": "0x4", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x135e15", + "effectiveGasPrice": "0x6b55cbd4", + "from": "0x6d478cb16317680a517ff89253f82032efdc31ba", + "gasUsed": "0x6195", + "logs": [ + { + "address": "0x3b50805453023a91a8bf641e279401a0b23fa6f9", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000006d478cb16317680a517ff89253f82032efdc31ba", + "0x000000000000000000000000111111125421ca6dc452d289314280a0f8842a65" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xfeee6a0b16850d3300339f32be2765355e301689b0f430b9f7db1695806ace46", + "transactionIndex": "0x5", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x27", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000100000000000000000000000000000000000001000000000000000000000002000000000000000000000000000000200000000000000000000000400000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000004000000000020000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000010000000000000000000000000000000080000000000000000000000000000", + "status": "0x1", + "to": "0x3b50805453023a91a8bf641e279401a0b23fa6f9", + "transactionHash": "0xfeee6a0b16850d3300339f32be2765355e301689b0f430b9f7db1695806ace46", + "transactionIndex": "0x5", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x18616d", + "effectiveGasPrice": "0x708ad4a2", + "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", + "gasUsed": "0x50358", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef", + "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001185c2f9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x28", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "0x0000000000000000000000000000000000001ff3684f28c67538d4d072c22734" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001185c2f9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x29", + "removed": false + }, + { + "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "topics": [ + "0x93485dcd31a905e3ffd7b012abe3438fa8fa77f98ddc9f50e879d3fa7ccdc324" + ], + "data": "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000000000000000001ff3684f28c67538d4d072c22734000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2a", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001185c2f9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2b", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001185c2f9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2c", + "removed": false + }, + { + "address": "0x163f8c2467924be0ae7b5347228cabf260318753", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff" + ], + "data": "0x0000000000000000000000000000000000000000000054407b5110567d6a792f", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2d", + "removed": false + }, + { + "address": "0x163f8c2467924be0ae7b5347228cabf260318753", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" + ], + "data": "0x0000000000000000000000000000000000000000000000114bfd68823e680000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2e", + "removed": false + }, + { + "address": "0xdef1c0ded9bec7f1a1670819833240f027b25eff", + "topics": [ + "0xac75f773e3a92f1a02b12134d65e1f47f8a14eabe4eaf1e24624918e6a8b269f" + ], + "data": "0x6d6c1b356c6aa0fa097186ea2b390cafdb337780b03f47be9cfcfd204a3e633200000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000163f8c2467924be0ae7b5347228cabf260318753000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000114bfd68823e680000000000000000000000000000000000000000000000000000000000001185c2f9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x2f", + "removed": false + }, + { + "address": "0x163f8c2467924be0ae7b5347228cabf260318753", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222" + ], + "data": "0x0000000000000000000000000000000000000000000000114bfd68823e680000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x30", + "removed": false + }, + { + "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "topics": [ + "0x93485dcd31a905e3ffd7b012abe3438fa8fa77f98ddc9f50e879d3fa7ccdc324" + ], + "data": "0x0000000000000000000000000000000000001ff3684f28c67538d4d072c227340000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c42213bc0b000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f9000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004e41fff991f000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222000000000000000000000000163f8c2467924be0ae7b5347228cabf26031875300000000000000000000000000000000000000000000001135683983035c6d9000000000000000000000000000000000000000000000000000000000000000a09ec76e970eebf8e87ffa04210af43c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000e4c1fb425e000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068a5cf7d00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000028438c9c147000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000002710000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001a4dac748d4000000000000000000000000163f8c2467924be0ae7b5347228cabf260318753000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000114bfd68823e680000000000000000000000000000000000000000000000000000000000001185c2f900000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef0000000068a5ce8e000000000000000000000000000000000000000068a5ce520000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001c308445be1fba35529ad765babeb7d04e657d10b1e885929e9088fb8de4e8a73137377dc9e14ddb6b6209e77701b660572de494c7eab10db93d7249805bba87eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x31", + "removed": false + }, + { + "address": "0x163f8c2467924be0ae7b5347228cabf260318753", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "0x000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c3" + ], + "data": "0x0000000000000000000000000000000000000000000000114bfd68823e680000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x32", + "removed": false + }, + { + "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "topics": [ + "0x93485dcd31a905e3ffd7b012abe3438fa8fa77f98ddc9f50e879d3fa7ccdc324" + ], + "data": "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e2220000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001243b2253c8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000163f8c2467924be0ae7b5347228cabf2603187530000000000000000000000000000000000000000000000000000000000000001000000000000000000000000fb6f757c7e98a124dad7b927025c8194576125c30000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x33", + "removed": false + } + ], + "logsBloom": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000008000000000010000000000000000000080008004020020000000000000000000200800000800000000000004020004100000000000000000000001000080000040000000000800044000004000000000000000001000000000000000001000000000000000000000000000000001000000000000000000000002800000000020000000408202000002000000000000000000400000000000400100008a000000000800000000008000000000000400000000000000000008000090000000000000000000000000000000000000000000000800000000000000", + "status": "0x1", + "to": "0xbbbfd134e9b44bfb5123898ba36b01de7ab93d98", + "transactionHash": "0xcfe2a7a914c53bdfe847d9571acf416fa3b2c432157f35c6087936de0be2f4a9", + "transactionIndex": "0x6", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x1d9f55", + "effectiveGasPrice": "0x65045d54", + "from": "0x6bf97afe2d2c790999cded2a8523009eb8a0823f", + "gasUsed": "0x53de8", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554", + "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x34", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x00000000000000000000000060bf78233f48ec42ee3f101b9a05ec7878728006" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000760f2a0b00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x35", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554" + ], + "data": "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000899d774e0f8e14810d628db63e65dfacea682343000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000006b06fe010314e3e0681000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000380bae44426440f171dbd7817d8375281635d1209ebc616a66fab075a25cef1271366aa56191e89d219ac36b33406fce85da1e755468a5d4fb0000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x36", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000bebc200", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x37", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff86" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000bebc200", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x38", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff86", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x00000000000000000000000000000000000000000000000000aa03ac85e927d0", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x39", + "removed": false + }, + { + "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", + "topics": [ + "0xadd7095becdaa725f0f33243630938c861b0bba83dfd217d4055701aa768ec2e", + "0x000000000000000000000000000000006d9aa07971bc4e6731b47ed80776c574" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3a", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000004dcebcba00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3b", + "removed": false + }, + { + "address": "0x899d774e0f8e14810d628db63e65dfacea682343", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001346d1ee3fb1b65fecfcb65c149ca0702c286f53", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x0000000000000000000000000000000000000000000006c52e602622b8b3a20b", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3c", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000001346d1ee3fb1b65fecfcb65c149ca0702c286f53" + ], + "data": "0x00000000000000000000000000000000000000000000000000aa03ac85e927d0", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3d", + "removed": false + }, + { + "address": "0x1346d1ee3fb1b65fecfcb65c149ca0702c286f53", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffff93ad19fd9dd474c5df500000000000000000000000000000000000000000000000000aa03ac85e927d000000000000000000000000000000000000000000059466393d63f7ecd2357870000000000000000000000000000000000000000000000095bc56c6d693f8780fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfc74", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3e", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000004e45aaf00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x3f", + "removed": false + }, + { + "address": "0x899d774e0f8e14810d628db63e65dfacea682343", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554" + ], + "data": "0x0000000000000000000000000000000000000000000006b06fe010314e3e0681", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x40", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", + "0x0000000000000000000000006bf97afe2d2c790999cded2a8523009eb8a0823f" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x41", + "removed": false + } + ], + "logsBloom": "0x0000100000000000000000002000100000400000000008000000000000000000000000004040000040000000000000000200004008102000000000408020000200040000008000082800000c000000400800000100008000000000000000000200000000080000000000800000000000000002000000200010004010000818000000080000000000000900000000002000000000410000000000000000000400020000600000200000000000000000000004000000000000010000000000000100004002000800000008000000000000400020002000000000000100000000020410200000000000000002000000080000004000000000000000000000000010", + "status": "0x1", + "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "transactionHash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", + "transactionIndex": "0x7", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x20ea7d", + "effectiveGasPrice": "0x2d50b891", + "from": "0xc8ad355c8291cbd52e738ed1df1f5ccbbbbf00ee", + "gasUsed": "0x34b28", + "logs": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x000000000000000000000000ee007a00b876742c33491454447a40bc63d3d468" + ], + "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000f4308b0263723b121056938c2172868e408079d00000000000000000000000000000000000000000000000000000000002160ec0000000000000000000000000000000000000000000000001a0d9ab1774735d13000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000038f5de8823a77b47687c9ff654873353ee47ab098b384a1bc844eb441aef6277a9ee007a00b876742c33491454447a40bc63d3d46868a5d50f0000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x42", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ee007a00b876742c33491454447a40bc63d3d468", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000002160ec0", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x43", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff86" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000020b32aa", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x44", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff86", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000001d27419875a766", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x45", + "removed": false + }, + { + "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", + "topics": [ + "0xadd7095becdaa725f0f33243630938c861b0bba83dfd217d4055701aa768ec2e", + "0x000000000000000000000000000000003eeca8e9088f6bdbdb18cf6634723120" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x46", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000004dcebcba00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x47", + "removed": false + }, + { + "address": "0xf4308b0263723b121056938c2172868e408079d0", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000ee007a00b876742c33491454447a40bc63d3d468" + ], + "data": "0x000000000000000000000000000000000000000000000001a0d9ab1774735d13", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x48", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", + "0x000000000000000000000000a9d635ef85bc37eb9ff9d6165481ea230ed32392" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x49", + "removed": false + } + ], + "logsBloom": "0x00001000000000000000000000001000004000000200000000000000000000000000000000040000000000004000010002000000080000000000004000000002000000000000000020000008000000400000000100200000000000000000002202000000080000000000800000000000000000000000000010004010000010000000080000000000000000000000002000000000400000000000000008100000000000600000000000000080000000000010002000000000010000000000000100000002000800200008000000000000000020000000000000000000000000000000200000000000000002000004000000084000000000000000000000000010", + "status": "0x1", + "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", + "transactionHash": "0x3441b6c4db11204dd038658ebd8ef15db513e8a24bab123454a76cf2f04b0e3c", + "transactionIndex": "0x8", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x284fcd", + "effectiveGasPrice": "0x2d50b891", + "from": "0x943810707e090f1bdc486c4c990d43da3b162e52", + "gasUsed": "0x76550", + "logs": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" + ], + "data": "0x000000000000000000000000f5581dfefd8fb0e4aec526be659cfab1f8c781da000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000318d845d95db27be800000000000000000000000000000000000000000000000000000000003c18ecd8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000383f4edaedae765e7131d494e6fca613763c52f46aef71574f2190c6b20724dbdf89b537d4e0de035303dc1bdae18394f7a6c15c3668a5ce8d0000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4a", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0x06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", + "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000318d845d95db27be8000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4b", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000318d845d95db27be800", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4c", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36", + "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffec5e7ea7a67c21739266ba", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4d", + "removed": false + }, + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000087986ae1e99f99da1f955d16930dc8914ffbed56", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000030c83b065345ecd3f5", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4e", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0x06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000087986ae1e99f99da1f955d16930dc8914ffbed56" + ], + "data": "0x0000000000000000000000000000000000000000000002c2b9c5fcc62d5453390000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x4f", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000087986ae1e99f99da1f955d16930dc8914ffbed56" + ], + "data": "0x0000000000000000000000000000000000000000000002c2b9c5fcc62d545339", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x50", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" + ], + "data": "0x0000000000000000000000000000000000000000ffffd59a39059bc5a28618a8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x51", + "removed": false + }, + { + "address": "0x87986ae1e99f99da1f955d16930dc8914ffbed56", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffcf37c4f9acba132c0b0000000000000000000000000000000000000000000002c2b9c5fcc62d5453390000000000000000000000000000000000000003ce3e190a8a5ab790bdc2670a000000000000000000000000000000000000000000010d01c59477b71ba1ad1f000000000000000000000000000000000000000000000000000000000000686a", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x52", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0x06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc82614677987", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000092c2fc5f306405eab0ff0958f6d85d7f8892cf4d" + ], + "data": "0x000000000000000000000000000000000000000000000054e9ab31a1339be5930000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x53", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000092c2fc5f306405eab0ff0958f6d85d7f8892cf4d" + ], + "data": "0x000000000000000000000000000000000000000000000054e9ab31a1339be593", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x54", + "removed": false + }, + { + "address": "0xf5581dfefd8fb0e4aec526be659cfab1f8c781da", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" + ], + "data": "0x0000000000000000000000000000000000000000ffffd5454f5a6a246eea3315", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x55", + "removed": false + }, + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000092c2fc5f306405eab0ff0958f6d85d7f8892cf4d", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000005e0bb5fb57e3f0b03", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x56", + "removed": false + }, + { + "address": "0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x00000000000000000000000000000000000000000000040e2b05566d40762733000000000000000000000000000000000000000000003abd82aa5833b3997cd7", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x57", + "removed": false + }, + { + "address": "0x92c2fc5f306405eab0ff0958f6d85d7f8892cf4d", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054e9ab31a1339be593000000000000000000000000000000000000000000000005e0bb5fb57e3f0b030000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x58", + "removed": false + }, + { + "address": "0x2db07a3a657b6e16999b67d48500486a1cb0d649", + "topics": [ + "0xd7cf88e4bcca455701f69cc774034a649b16dcf4c3607676ea5f556353332623" + ], + "data": "0x00000000000000000000000000000000002e7bdc06b21b40b0cc17df2b421598", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x59", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x0000000000000000000000002db07a3a657b6e16999b67d48500486a1cb0d649" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000047a4a98900000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5a", + "removed": false + }, + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000f6e72db5454dd049d0788e411b06cfaf16853042" + ], + "data": "0x000000000000000000000000000000000000000000000036a8f6d6fbd1977000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5b", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000037305b1cd40574e4c5ce33f8e8306be057fd7341", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000000000003c196d47", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5c", + "removed": false + }, + { + "address": "0xf6e72db5454dd049d0788e411b06cfaf16853042", + "topics": [ + "0x085d06ecf4c34b237767a31c0888e121d89546a77f186f1987c6b8715e1a8caa", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000000000003c196d470000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5d", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x000000000000000000000000f6e72db5454dd049d0788e411b06cfaf16853042" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000008d7ef9bb00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5e", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" + ], + "data": "0x000000000000000000000000000000000000000000000000000000003c18ecd8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x5f", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", + "0x000000000000000000000000a9d635ef85bc37eb9ff9d6165481ea230ed32392" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x60", + "removed": false + } + ], + "logsBloom": "0x0060100000000020000000008000108002400000001000200000000000000020000000000044000000000000c000000800000040000420000000000080200400000400001000000808000008000000210000000100000000000010200000000010000000000000000000804000000000000200402000000010004010000800000000000000000000000000008000000000040000450001080800004200000000020000680100200000000000000000000000008000000000010000000000000000000002000800600001040000000020000022080000041000002008000000400010002000000000000002000004000000104000000000000000010000000000", + "status": "0x1", + "to": "0xa9d635ef85bc37eb9ff9d6165481ea230ed32392", + "transactionHash": "0x701f3baa584c50d52e6b4e1fa9f54a6413298cf889af51e9b3475804a4baeb12", + "transactionIndex": "0x9", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x2947ba", + "effectiveGasPrice": "0x708ad4a2", + "from": "0xf70da97812cb96acdf810712aa562db8dfa3dbef", + "gasUsed": "0xf7ed", + "logs": [ + { + "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "topics": [ + "0xd35467972d1fda5b63c735f59d3974fa51785a41a92aa3ed1b70832836f8dba6" + ], + "data": "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e2220000000000000000000000000000000000000000000000000304e4108473ed6d", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", + "transactionIndex": "0xa", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x61", + "removed": false + }, + { + "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "topics": [ + "0x93485dcd31a905e3ffd7b012abe3438fa8fa77f98ddc9f50e879d3fa7ccdc324" + ], + "data": "0x000000000000000000000000f5042e6ffac5a625d4e7848e0b01373d8eb9e22200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000304e4108473ed6d0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", + "transactionIndex": "0xa", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x62", + "removed": false + }, + { + "address": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "topics": [ + "0xd35467972d1fda5b63c735f59d3974fa51785a41a92aa3ed1b70832836f8dba6" + ], + "data": "0x000000000000000000000000ae1a530128950b1735674a975e1622872e556b590000000000000000000000000000000000000000000000000304e4108473ed6d", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", + "transactionIndex": "0xa", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x63", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000080000000000000000000000000000000000000000000000000040000000000000000000000000000004000000000000000000000000000000040000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000080000000000000000000000000000000000000000000000800000000000000", + "status": "0x1", + "to": "0xf5042e6ffac5a625d4e7848e0b01373d8eb9e222", + "transactionHash": "0x9ff6af7f27a501a3f04503f82eca3d75470296a9c18ed65ea51951e820650066", + "transactionIndex": "0xa", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x2b1f0f", + "effectiveGasPrice": "0x2c523e86", + "from": "0x80c700683ec017a190b132a4ce042beeb7c6b821", + "gasUsed": "0x1d755", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000000621b921b80f2af", + "blockNumber": "0x161bd0f", + "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "transactionIndex": "0xb", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x64", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x0000000000000000000000006f9f435fa79e30e34f7679211904fcabc87ad924" + ], + "data": "0x00000000000000000000000000000000000000000000000000621b921b80f2af", + "blockNumber": "0x161bd0f", + "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "transactionIndex": "0xb", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x65", + "removed": false + }, + { + "address": "0xe0265346277ad201609308b506e901b520150a08", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000006f9f435fa79e30e34f7679211904fcabc87ad924", + "0x00000000000000000000000080c700683ec017a190b132a4ce042beeb7c6b821" + ], + "data": "0x00000000000000000000000000000000000000000000fcc9f4e9bd2d304d8e56", + "blockNumber": "0x161bd0f", + "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "transactionIndex": "0xb", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x66", + "removed": false + }, + { + "address": "0x6f9f435fa79e30e34f7679211904fcabc87ad924", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000000000154aea80178ffe200000000000000000000000000000000000000000003609cc562e12cf568499f7", + "blockNumber": "0x161bd0f", + "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "transactionIndex": "0xb", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x67", + "removed": false + }, + { + "address": "0x6f9f435fa79e30e34f7679211904fcabc87ad924", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x00000000000000000000000080c700683ec017a190b132a4ce042beeb7c6b821" + ], + "data": "0x00000000000000000000000000000000000000000000000000621b921b80f2af0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fcc9f4e9bd2d304d8e56", + "blockNumber": "0x161bd0f", + "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "transactionIndex": "0xb", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x68", + "removed": false + } + ], + "logsBloom": "0x00200000000000000000000080000000000000000000000000010000000000000100000000000000000000000000000002000000080000000000000000000000000000000000000000000008080000a00000000000000000000000008001000010000000000000000000000008000000000000000000000000000010000000000000000000000000004000000000000000000001000000080000004000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000004004000080000000000000000001000000000100020000000200000000000000000000000000000000000000001400000000001000000", + "status": "0x1", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionHash": "0x0c5250b391b89ddb6bcee896bf09c5419f4a8627f94c1c8ee0432c46259d5af2", + "transactionIndex": "0xb", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x2e78ec", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x7830c87c02e56aff27fa8ab1241711331fa86f43", + "gasUsed": "0x359dd", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "transactionHash": "0x65dfef793509b00a864042275789801fd0c89fe3fe1d67648c4bba8148fd511c", + "transactionIndex": "0xc", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x3119a3", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x078430ebd8db8288fd056d137e0e11cf67fb8fc1", + "gasUsed": "0x2a0b7", + "logs": [ + { + "address": "0xb1911d8ffcc2d8ca6c5ea4f4f18be6ea675c1ce7", + "topics": [ + "0x6bae97ad4b952cdee3720ed0ea228b5eb79d5adb4475c05d9f3f6539627d8e2a", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c540000000000000000000000000000000000000000000000000000000068a5ce5b", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x69", + "removed": false + }, + { + "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000b1911d8ffcc2d8ca6c5ea4f4f18be6ea675c1ce7", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6a", + "removed": false + }, + { + "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1", + "0x00000000000000000000000032c1f663919102dc032dc3c22fe434af686f3b15" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6b", + "removed": false + }, + { + "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1", + "0x00000000000000000000000032c1f663919102dc032dc3c22fe434af686f3b15" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6c", + "removed": false + }, + { + "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1", + "0x00000000000000000000000071a41517fe65890fe835d67fce17a9747112696c" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6d", + "removed": false + }, + { + "address": "0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000071a41517fe65890fe835d67fce17a9747112696c", + "0x000000000000000000000000c059a531b4234d05e9ef4ac51028f7e6156e2cce" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6e", + "removed": false + }, + { + "address": "0xc059a531b4234d05e9ef4ac51028f7e6156e2cce", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c54", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x6f", + "removed": false + }, + { + "address": "0xc059a531b4234d05e9ef4ac51028f7e6156e2cce", + "topics": [ + "0x1449c6dd7851abc30abf37f57715f492010519147cc2652fbc38202c18a6ee90", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c540000000000000000000000000000000000000000000000000000000068a5ce5b", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x70", + "removed": false + }, + { + "address": "0x71a41517fe65890fe835d67fce17a9747112696c", + "topics": [ + "0x1d667fd3a2b3ff56d86b9f53a15185be64f72321819599d0f059e609581169ba", + "0x000000000000000000000000078430ebd8db8288fd056d137e0e11cf67fb8fc1" + ], + "data": "0x000000000000000000000000000000000000000000000a2a792108221ac98c540000000000000000000000000000000000000000000000000000000068a5ce5b", + "blockNumber": "0x161bd0f", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x71", + "removed": false + } + ], + "logsBloom": "0x000000000040000000000000000008000008000000000000001000000002000000000080000004000200020000040000000010800000000000000000002000000002000900008000000000080000000000000000000000200000000000000000000000000200000001000200000008000000000000000000000000100000000000001000000002000000020000000000044000004000000000000000000100000200002000100000000c00000000000000000000000000000000000000000040000000020001000000000000000000000000000000000000000000000008200000100000000000000000000000008000c0000000000000000000000000000000", + "status": "0x1", + "to": "0x71a41517fe65890fe835d67fce17a9747112696c", + "transactionHash": "0x26c30055f1b6d43badaa5b519480af74f120afac79589b30485dc872a06cac18", + "transactionIndex": "0xd", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x39a5c0", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x7830c87c02e56aff27fa8ab1241711331fa86f43", + "gasUsed": "0x88c1d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000004fa31bbbb0729c76ca3fb7c5d466c1b30764749b" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000015476340", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x72", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000008e1e9185870f026be6b59219f673fe84481a329a" + ], + "data": "0x000000000000000000000000000000000000000000000000000000002d27ecbb", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x73", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x00000000000000000000000060c531e7594102a7a9be19197c969639bebf5fae" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001cf8f755", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x74", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x000000000000000000000000f8b2374fc5335176857aa83f8a37be8afdf8bac7" + ], + "data": "0x000000000000000000000000000000000000000000000000000000002113fe2a", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x75", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x00000000000000000000000088a857dfc3ed7b4e326adbbe79224de634982235" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000e4e1c00", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x76", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x000000000000000000000000f668293ea8362fe9dccd4499c23fcb0025919613" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000002a9f1f7", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x77", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x00000000000000000000000026b23da6eb7d863bef139feb51ba027ec2f0769a" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000002faf080", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x78", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x000000000000000000000000de396526ede4218a67327cec9658e7571a0eac5c" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000017f2b8d", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x79", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x000000000000000000000000f5261acdfbe5b46b6c79271ea86d933603236899" + ], + "data": "0x000000000000000000000000000000000000000000000000000000014437f0cd", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7a", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000006de7232e53fd11e218842e5506577837134a1171" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000311d3e0", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7b", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000006de7232e53fd11e218842e5506577837134a1171" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000077e07a0", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7c", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x000000000000000000000000d5b12d6651b94d6340699077258feb3314d6b1ae" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000004661940", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7d", + "removed": false + }, + { + "address": "0xbe9895146f7af43049ca1c1ae358b0541ea49704", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x000000000000000000000000000000000000000000000002ec03212a197a0c00", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7e", + "removed": false + }, + { + "address": "0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x00000000000000000000000089b537d4e0de035303dc1bdae18394f7a6c15c36" + ], + "data": "0x0000000000000000000000000000000000000000000000230ec810de9c63d000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x7f", + "removed": false + }, + { + "address": "0x0d8775f648430679a709e98d2b0cb6250d2887ef", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000007c06dfc7576ef157e111d80cd8ce98f8ab60feaf" + ], + "data": "0x0000000000000000000000000000000000000000000000008b95e9381c0e2400", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x80", + "removed": false + }, + { + "address": "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x00000000000000000000000006fd4ba7973a0d39a91734bbc35bc2bcaa99e3b0" + ], + "data": "0x0000000000000000000000000000000000000000000000334af9bea1f4c02c00", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x81", + "removed": false + }, + { + "address": "0x4a220e6096b25eadb88358cb44068a3248254675", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000009f3b333f36069244901885d5e520ffee722a4585" + ], + "data": "0x000000000000000000000000000000000000000000000000106df6c44af68000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x82", + "removed": false + }, + { + "address": "0xfaba6f8e4a5e8ab82f62fe7c39859fa577269be3", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x000000000000000000000000c3bf801d58a4c0418d96eda0164fb743ad065aca" + ], + "data": "0x0000000000000000000000000000000000000000000000016d4f128775330000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x83", + "removed": false + }, + { + "address": "0x6c3ea9036406852006290770bedfcaba0e23a0e8", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "0x0000000000000000000000002c8b4fba3b3706827c96f3e4ccbc0d1442dcd074" + ], + "data": "0x00000000000000000000000000000000000000000000000000000016e43d727e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x84", + "removed": false + } + ], + "logsBloom": "0x00000000200001000000000060000000000000010000000400000000000000800000004000000000000000100000011000000028040000000080040000020600000000000000020008000008100000000000200000040000000100000000000008000000000000008400000000000800000000400000000000a80030018402200000000000000000008000000000200000000100010000200001000200122000000000800000204010000080000000000000000420000000000080000000000000000003000000002401400408001000002000000442040000000400000800000000000000000000000200000102000000000000002000900000200000000100", + "status": "0x1", + "to": "0xa9d1e08c7793af67e9d92fe308d5697fb81d3e43", + "transactionHash": "0xca596815ac0d42d85cd700df64d361590f1d06cf2d09806862d46944feda2044", + "transactionIndex": "0xe", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x3adc08", + "effectiveGasPrice": "0xa6f095d4", + "from": "0xa03400e098f4421b34a3a44a1b4e571419517687", + "gasUsed": "0x13648", + "logs": [ + { + "address": "0xf8ebf4849f1fa4faf0dff2106a173d3a6cb2eb3a", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a03400e098f4421b34a3a44a1b4e571419517687", + "0x0000000000000000000000000fac5094987a848754db82a7db870e635f126939" + ], + "data": "0x00000000000000000000000000000000000000006d06bff6e90832e72f68a000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x706cc7072418792c08feb0ace7ba254538265f6bfdb6282584f936160791d8e1", + "transactionIndex": "0xf", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x85", + "removed": false + } + ], + "logsBloom": "0x00004000000000000000402000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000002008000000000000000000000000000000002000000000000000000000000180000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xf8ebf4849f1fa4faf0dff2106a173d3a6cb2eb3a", + "transactionHash": "0x706cc7072418792c08feb0ace7ba254538265f6bfdb6282584f936160791d8e1", + "transactionIndex": "0xf", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x3e8c4b", + "effectiveGasPrice": "0x2f779f57", + "from": "0xae2fc483527b8ef99eb5d9b44875f005ba1fae13", + "gasUsed": "0x3b043", + "logs": [ + { + "address": "0x615987d46003cc37387dbe544ff4f16fa1200077", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000dd6e1a4e35d307497da8d5d4052173410951b3d5", + "0x0000000000000000000000006c618dd1040a79923cd74113ef0ed07c07d2b0e7" + ], + "data": "0x000000000000000000000000000000000000000000000000000010d97cfd0001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x86", + "removed": false + }, + { + "address": "0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007c706586679af2ba6d1a9fc2da9c6af59883fdd3", + "0x000000000000000000000000dd6e1a4e35d307497da8d5d4052173410951b3d5" + ], + "data": "0x00000000000000000000000000000000000000000000000000000001456521ca", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x87", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", + "0x0000000000000000000000007c706586679af2ba6d1a9fc2da9c6af59883fdd3" + ], + "data": "0x000000000000000000000000000000000000000000000000003deea5386727c3", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x88", + "removed": false + }, + { + "address": "0x7c706586679af2ba6d1a9fc2da9c6af59883fdd3", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", + "0x000000000000000000000000dd6e1a4e35d307497da8d5d4052173410951b3d5" + ], + "data": "0x000000000000000000000000000000000000000000000000003deea5386727c3fffffffffffffffffffffffffffffffffffffffffffffffffffffffeba9ade3600000000000000000000000000000000000000000024babbbd70e20d3f4fd5180000000000000000000000000000000000000000000000000567142df5d24d20fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdb710", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x89", + "removed": false + }, + { + "address": "0xdd6e1a4e35d307497da8d5d4052173410951b3d5", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", + "0x0000000000000000000000006c618dd1040a79923cd74113ef0ed07c07d2b0e7" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffef268302ffff00000000000000000000000000000000000000000000000000000001456521ca000000000000000000000000000000000000000004654a0d63ff5dd89c18ba8400000000000000000000000000000000000000000000000000001b39705b4ba0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec270", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8a", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000006c618dd1040a79923cd74113ef0ed07c07d2b0e7", + "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387" + ], + "data": "0x000000000000000000000000000000000000000000000000003e9e4299000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8b", + "removed": false + }, + { + "address": "0x6c618dd1040a79923cd74113ef0ed07c07d2b0e7", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000000000009ca8a393168f4300000000000000000000000000000000000000000000000247b2f0cb40170fc5", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8c", + "removed": false + }, + { + "address": "0x6c618dd1040a79923cd74113ef0ed07c07d2b0e7", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387", + "0x0000000000000000000000001f2f10d1c40777ae1da742455c65828ff36df387" + ], + "data": "0x000000000000000000000000000000000000000000000000000010d97cfd000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e9e4299000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8d", + "removed": false + } + ], + "logsBloom": "0x002000000000000000000000800000010000000000000000000000000000000000000000000000000000020020000008020000040800200000000000000000000000000000000008000000080000002000000000000000000400000400000800000000000000000000000204000000000000008000000010008000100008000020000000000000000000000000000000000000000000000c0000004080000000040000000400001000000000000000004000000010000000000000000000000000004002000000000000000000000000000c00000000001000000000000000000000202000000000000000000000000000400000000000000000000000000000", + "status": "0x1", + "to": "0x1f2f10d1c40777ae1da742455c65828ff36df387", + "transactionHash": "0x24070e8f3c56fa6b8da89ac744e37e1e2bad090ac3bc3e0ad637cd1e3dbe57b4", + "transactionIndex": "0x10", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x3ede53", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa5ccd022e4b4ac431deadb329e20aa76c4a80f5a", + "transactionHash": "0x341b093276998eaf55ba531d7cb2be1ff32f44a398c85b60d4180791cdadf218", + "transactionIndex": "0x11", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x3f7fbc", + "effectiveGasPrice": "0x4fb1722d", + "from": "0xd24b2b3f3420cda82d40e0c8584b88ce7ec386e8", + "gasUsed": "0xa169", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000d24b2b3f3420cda82d40e0c8584b88ce7ec386e8", + "0x0000000000000000000000005626213e557182a6d19048d29b535b5d7f5408be" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000129d00963", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa7c324afd989fec33f0436d148f3e9ef90f7159b55075827aab7b72d6840a977", + "transactionIndex": "0x12", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8e", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000801000000000000000000000000000000000010000000000000000000000000000000000000000001000000020000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000002000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0xa7c324afd989fec33f0436d148f3e9ef90f7159b55075827aab7b72d6840a977", + "transactionIndex": "0x12", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x403018", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x260b364fe0d3d37e6fd3cda0fa50926a06c54cea", + "gasUsed": "0xb05c", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000260b364fe0d3d37e6fd3cda0fa50926a06c54cea", + "0x0000000000000000000000005a617641788bc9c3a91696eda1bb66c60034c9b6" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000042636c39", + "blockNumber": "0x161bd0f", + "transactionHash": "0xe5cb77f931850a0890a14d4ae7f73fe1bad375114d0ccf680c7c744d1f73a045", + "transactionIndex": "0x13", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x8f", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000200000000000000000000000000000000000000000000000200000001002000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000040000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0xe5cb77f931850a0890a14d4ae7f73fe1bad375114d0ccf680c7c744d1f73a045", + "transactionIndex": "0x13", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x42847e", + "effectiveGasPrice": "0x6b55cbd4", + "from": "0x5000afd95cbc51054caf4c5330342890ead87b70", + "gasUsed": "0x25466", + "logs": [ + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0x00b9edc1583bf6ef09ff3a09f6c23ecb57fd7d0bb75625717ec81eed181e22d7", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffecae9f6008a80000000000000000000000000000000000000000000000000000000000015a9d16e000000000000000000000000000000000000000000043c6e58a0426bb3e170af0000000000000000000000000000000000000000000000000601e4d79975daecfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e4f0000000000000000000000000000000000000000000000000000000000000064", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", + "transactionIndex": "0x14", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x90", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000015a9d16e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", + "transactionIndex": "0x14", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x91", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af", + "0x00000000000000000000000027213e28d7fda5c57fe9e5dd923818dbccf71c47" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000ddd52", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", + "transactionIndex": "0x14", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x92", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af", + "0x0000000000000000000000005000afd95cbc51054caf4c5330342890ead87b70" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000159bf41c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", + "transactionIndex": "0x14", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x93", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000001000000000000020080000001000000000000000000000040000000000000000000000000000000000000008000008004000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000010000000000008000800000000400000000000000000000000010000000008000000000000000000000000200000000000100000000000000000000000000000000000000200000882400020000000001000000000000400400000000000000000000000000000000000000000004000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", + "transactionHash": "0x6e1e0f9f8da08e644bd26763eb62a2b5dbe994ccfdc218de585989d06bdd1161", + "transactionIndex": "0x14", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x43552f", + "effectiveGasPrice": "0x2c523e86", + "from": "0xc35fb86f962ea955751a793a007b5cdd44f798d7", + "gasUsed": "0xd0b1", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007d7990b713c3497937fac4331176c127710b97d5", + "0x00000000000000000000000016fbc59070699f26c094fa8716b743561e0c53d3" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000148b1abe", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8af00935a2db3f2e066c91359011f9e29093f62a7616e816413f2710dbfc4b41", + "transactionIndex": "0x15", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x94", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000008000004000000000000000000000000000000000000000000000000000000000000010000010000000000000000000000000000000000000000000010000000000000000000000000000000000200000000000000000000000800000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000008000000002000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0x8af00935a2db3f2e066c91359011f9e29093f62a7616e816413f2710dbfc4b41", + "transactionIndex": "0x15", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x43a737", + "effectiveGasPrice": "0x330fb22a", + "from": "0x5de41533c43766bb1181de4826a7f8f2e4e64549", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0c8aa5263afde3c43a0fe88aed2b10ade922e666", + "transactionHash": "0x7c406076c4f872219370ca69e2e9dfb8096c47f514615aecda99577551b8cba1", + "transactionIndex": "0x16", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x445793", + "effectiveGasPrice": "0x14bfac694", + "from": "0x3ffa6671d869ae0d923a17505e633e700fb8e35a", + "gasUsed": "0xb05c", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000003ffa6671d869ae0d923a17505e633e700fb8e35a", + "0x000000000000000000000000842264311e492fdb425e8430472b6f9a4f660483" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000001ed2a0", + "blockNumber": "0x161bd0f", + "transactionHash": "0xef7c2d4ba0dbc86ccfd07a62ca7f843ea8cdc1587011fd8c14ba640f1535ac79", + "transactionIndex": "0x17", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x95", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000010000000000000000002000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000010000000000000000000000000000000000000000000200000010000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000040000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0xef7c2d4ba0dbc86ccfd07a62ca7f843ea8cdc1587011fd8c14ba640f1535ac79", + "transactionIndex": "0x17", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x44a99b", + "effectiveGasPrice": "0xd69f9dd4", + "from": "0x552fe7e19ecd9789e57131c09712977b4d075cbe", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x76eeb4c8b149738a9b198d866c80e8087a0a4f17", + "transactionHash": "0xac88e9bd517db66ea5eebd8caba9d5c33ddfce1f779eef3e6821e15510f4c864", + "transactionIndex": "0x18", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x453a97", + "effectiveGasPrice": "0x6a5efc76", + "from": "0x4791eb2224d272655e8d5da171bb07dd5a805ff6", + "gasUsed": "0x90fc", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x62b53c45305d29bbe4b1bfa49dd78766b2f1e624", + "transactionHash": "0xda8bc5dc5617758c6af0681d71642f68ce679bb92df4d8cf48493f0cfad14e20", + "transactionIndex": "0x19", + "type": "0x4" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x458c9f", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xe401a6a38024d8f5ab88f1b08cad476ccaca45e8", + "transactionHash": "0xd7938913fd206fc1ef384e45dada725badd5a3ff87a793d9c432b70488a7bcdb", + "transactionIndex": "0x1a", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x45dea7", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x3b26af33b78b1414e40c83be39a6f1b924b1e08a", + "transactionHash": "0x80c2402d4dbfadb46899b4ceb48f3851c8be0d08eb399608b6966f401653e60d", + "transactionIndex": "0x1b", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x4fac28", + "effectiveGasPrice": "0x23d05144", + "from": "0x2c61206798f1ab3bce5833ecdd4a78aeba2e6b36", + "gasUsed": "0x9cd81", + "logs": [ + { + "address": "0xb167d99000cec6232e3b27f7f01d2b41c60f7fdc", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000073ada7d3ce2c1dcf9bb4100b650196ccc2ccdfa6", + "0x000000000000000000000000000000000000000000000000000000000000dead" + ], + "data": "0x000000000000000000000000000000000000000000002c70a2a249e16480990e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x96", + "removed": false + }, + { + "address": "0x73ada7d3ce2c1dcf9bb4100b650196ccc2ccdfa6", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x00000000000000000000000000000000000000000045438d7af1264ba46e8e420000000000000000000000000000000000000000000000000bb6892df1dc2d88", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x97", + "removed": false + }, + { + "address": "0xb167d99000cec6232e3b27f7f01d2b41c60f7fdc", + "topics": [ + "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x98", + "removed": false + }, + { + "address": "0xb167d99000cec6232e3b27f7f01d2b41c60f7fdc", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", + "0x00000000000000000000000073ada7d3ce2c1dcf9bb4100b650196ccc2ccdfa6" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x99", + "removed": false + }, + { + "address": "0x3b9c214a501b2ae33ab1793b57b09879a754f2ef", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000df37c5d3eea96515faa286c30e8f6b05640cad00", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x000000000000000000000000000000000000000000001f9f41f9e900fbd8e19c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9a", + "removed": false + }, + { + "address": "0xdf37c5d3eea96515faa286c30e8f6b05640cad00", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000314937d48228888707a2d90000000000000000000000000000000000000000000000001e8e8ddba5bec78b", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9b", + "removed": false + }, + { + "address": "0x3b9c214a501b2ae33ab1793b57b09879a754f2ef", + "topics": [ + "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9c", + "removed": false + }, + { + "address": "0x3b9c214a501b2ae33ab1793b57b09879a754f2ef", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", + "0x000000000000000000000000df37c5d3eea96515faa286c30e8f6b05640cad00" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9d", + "removed": false + }, + { + "address": "0xc5327f8a6f6ea98928ff6a893d74a5cbc743f170", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000b21cef20389f300cdc7b2572f0a9a1afe62f4479", + "0x000000000000000000000000000000000000000000000000000000000000dead" + ], + "data": "0x000000000000000000000000000000000000000163e01624a3721a46e1ad41a4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9e", + "removed": false + }, + { + "address": "0xb21cef20389f300cdc7b2572f0a9a1afe62f4479", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x0000000000000000000000000000000000000000000000000db819c1093f63c1000000000000000000000000000000000000022aaa42831abed6f479bd094fbd", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x9f", + "removed": false + }, + { + "address": "0xc5327f8a6f6ea98928ff6a893d74a5cbc743f170", + "topics": [ + "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa0", + "removed": false + }, + { + "address": "0xc5327f8a6f6ea98928ff6a893d74a5cbc743f170", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", + "0x000000000000000000000000b21cef20389f300cdc7b2572f0a9a1afe62f4479" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa1", + "removed": false + }, + { + "address": "0xf92c421115b1f11203abcfce78eed1aadad3e0a5", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f1edbdf579ad83cc86064bd089300b6b9362f084", + "0x000000000000000000000000000000000000000000000000000000000000dead" + ], + "data": "0x00000000000000000000000000000000000000000089245c8e692932e3213cf6", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa2", + "removed": false + }, + { + "address": "0xf1edbdf579ad83cc86064bd089300b6b9362f084", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000000000134aeb69c5d6d9290000000000000000000000000000000000000000d5bfac41f5e7365000ce0402", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa3", + "removed": false + }, + { + "address": "0xf92c421115b1f11203abcfce78eed1aadad3e0a5", + "topics": [ + "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa4", + "removed": false + }, + { + "address": "0xf92c421115b1f11203abcfce78eed1aadad3e0a5", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", + "0x000000000000000000000000f1edbdf579ad83cc86064bd089300b6b9362f084" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa5", + "removed": false + }, + { + "address": "0xf801db2654e911e922665c4cb885d8cca4c155bf", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000321166c624541dde00025d2d916d117410ba8421", + "0x000000000000000000000000000000000000000000000000000000000000dead" + ], + "data": "0x0000000000000000000000000000000000000000000013d075815ec17b746f4c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa6", + "removed": false + }, + { + "address": "0x321166c624541dde00025d2d916d117410ba8421", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x00000000000000000000000000000000000000000000000010d3766833cb24380000000000000000000000000000000000000000001ee1e724a2af8f6a797837", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa7", + "removed": false + }, + { + "address": "0xf801db2654e911e922665c4cb885d8cca4c155bf", + "topics": [ + "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa8", + "removed": false + }, + { + "address": "0xf801db2654e911e922665c4cb885d8cca4c155bf", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", + "0x000000000000000000000000321166c624541dde00025d2d916d117410ba8421" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xa9", + "removed": false + }, + { + "address": "0xc7e957681720875f3a2143f1afb72e7fb6ffdd78", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000e1e82ee891f469897a815b0bfcc34dd5d597f76a", + "0x000000000000000000000000000000000000000000000000000000000000dead" + ], + "data": "0x000000000000000000000000000000000000000000005e5d99029678a6debc2e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xaa", + "removed": false + }, + { + "address": "0xe1e82ee891f469897a815b0bfcc34dd5d597f76a", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000000000165e66cb28b490a20000000000000000000000000000000000000000009313e17b08860c15274d0f", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xab", + "removed": false + }, + { + "address": "0xc7e957681720875f3a2143f1afb72e7fb6ffdd78", + "topics": [ + "0x454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xac", + "removed": false + }, + { + "address": "0xc7e957681720875f3a2143f1afb72e7fb6ffdd78", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ceb550db4b2f889782936bbedfe42ab406e8243d", + "0x000000000000000000000000e1e82ee891f469897a815b0bfcc34dd5d597f76a" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xad", + "removed": false + } + ], + "logsBloom": "0x000810000000100000400000804000000000802800000000000000000000000000000000000000000240040000000040008200000000000800200020000200002000001000000000081000a800004000000002014000000002000000000002000000000002000000000000000000080040000100080000000000001004000000000000000000400000000400000000000200000004000008080000002000200080000000010020050000001000000800000000000800000000000000000000000800040a200000000000000000000000000010000000001000000000000020000000000004000000202000002000000020000000000001000000000008000100", + "status": "0x1", + "to": "0xceb550db4b2f889782936bbedfe42ab406e8243d", + "transactionHash": "0x17a42c2526e9ea212781d9c40ee9348737b2f9815b53610366dfa3b571fcab70", + "transactionIndex": "0x1c", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x51fb32", + "effectiveGasPrice": "0x6b55cbd4", + "from": "0xaf8648ea8cecb238158b6fdf3fd3faf57f7e5828", + "gasUsed": "0x24f0a", + "logs": [ + { + "address": "0x0000000000000068f116a894984e2db1123eb395", + "topics": [ + "0x6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d", + "0x000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0xe3e0fb0a038bc3551a6478b42b4afe222d3b9ee58ccab68dabb1768a550cbfb0", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", + "transactionIndex": "0x1d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xae", + "removed": false + }, + { + "address": "0x0000000000000068f116a894984e2db1123eb395", + "topics": [ + "0x6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d", + "0x000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x4b4dfcc04791d09879f5d1f22ca4507605c8f30e1892892a740ca1d2a0da73df", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", + "transactionIndex": "0x1d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xaf", + "removed": false + }, + { + "address": "0x0000000000000068f116a894984e2db1123eb395", + "topics": [ + "0x6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d", + "0x000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0xec28195d952db26d0c13238998280ed9bac737582347b18e92b7df7bdc8279d1", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", + "transactionIndex": "0x1d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb0", + "removed": false + }, + { + "address": "0x0000000000000068f116a894984e2db1123eb395", + "topics": [ + "0x6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d", + "0x000000000000000000000000af8648ea8cecb238158b6fdf3fd3faf57f7e5828", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0xf9a5a3ac5d66d04c588fe7308aa48021df65decd1ae3024cc267b23e5382b3dc", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", + "transactionIndex": "0x1d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb1", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000008000000000000000000020000000000800000000800002000000000000000000000000000010200000200000000000000000000000000000000000000000000000000000000000000010010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0000000000000068f116a894984e2db1123eb395", + "transactionHash": "0xb35c3c3a68b519d71d68889f3fb0a250f4deb043a8037c6e398875964cd505df", + "transactionIndex": "0x1d", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x529c8f", + "effectiveGasPrice": "0x4fb1722d", + "from": "0xe75de7c288e72bb44ce46d4a795bb794bd19664b", + "gasUsed": "0xa15d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000e75de7c288e72bb44ce46d4a795bb794bd19664b", + "0x000000000000000000000000408cb2bb16d073f0b6d4785fdab75b184e59e41e" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000831967dc", + "blockNumber": "0x161bd0f", + "transactionHash": "0xffe56e6ac055509a585cbce2c45f16125695652d5214c2d06b0c4a1646780b0e", + "transactionIndex": "0x1e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb2", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000200000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000010000000002000000000000000000000000000000000088000000000000200000000000000000000000000000000000000000000000000000000000040000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0xffe56e6ac055509a585cbce2c45f16125695652d5214c2d06b0c4a1646780b0e", + "transactionIndex": "0x1e", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x57572f", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x1cca465c62fb70741dd181ee86b53974db7d4122", + "gasUsed": "0x4baa0", + "logs": [ + { + "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001cca465c62fb70741dd181ee86b53974db7d4122", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a" + ], + "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca49", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb3", + "removed": false + }, + { + "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000001cca465c62fb70741dd181ee86b53974db7d4122", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffff905d7d1052a9f197aad6f249", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb4", + "removed": false + }, + { + "address": "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "topics": [ + "0x42bd73ea702d7cf4505c06a7ac02a171536177d9cc2c7665443151ec91cc43fc", + "0x0000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "0x0000000000000000000000001cca465c62fb70741dd181ee86b53974db7d4122" + ], + "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb5", + "removed": false + }, + { + "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb6", + "removed": false + }, + { + "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" + ], + "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca49", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb7", + "removed": false + }, + { + "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "0x000000000000000000000000bf16540c857b4e32ce6c37d2f7725c8eec869b8b" + ], + "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca49", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb8", + "removed": false + }, + { + "address": "0x3ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xb9", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000bf16540c857b4e32ce6c37d2f7725c8eec869b8b", + "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" + ], + "data": "0x00000000000000000000000000000000000000000000000002c4c470058b00c2", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xba", + "removed": false + }, + { + "address": "0xbf16540c857b4e32ce6c37d2f7725c8eec869b8b", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000013bc94e104376a8b240900c19ee00000000000000000000000000000000000000000000000bfdd04708f7656da8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xbb", + "removed": false + }, + { + "address": "0xbf16540c857b4e32ce6c37d2f7725c8eec869b8b", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000005141b82f5ffda4c6fe1e372978f1c5427640a190", + "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582" + ], + "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca490000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c4c470058b00c2", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xbc", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001111111254eeb25477b68fb85ed929f73a960582", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a" + ], + "data": "0x00000000000000000000000000000000000000000000000002c4c470058b00c2", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xbd", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "0x000000000000000000000000965dc72531bc322cab5537d432bb14451cabb30d" + ], + "data": "0x0000000000000000000000000000000000000000000000000004f61c6ea17c2a", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xbe", + "removed": false + }, + { + "address": "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "topics": [ + "0xfc431937278b84c6fa5b23bcc58f673c647fea974d3656e766b22d8c1412e544", + "0x0000000000000000000000000000000000000000000000000000000000000004", + "0x0000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790", + "0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + ], + "data": "0x000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000002bfce5396e9849800000000000000000000000000000000000000000000000002b477372c53d6800000000000000000000000000000000000000000000000000004f61c6ea17c2a00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000022812aa3caf0000000000000000000000005141b82f5ffda4c6fe1e372978f1c5427640a1900000000000000000000000003ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000bf16540c857b4e32ce6c37d2f7725c8eec869b8b000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a000000000000000000000000000000000000000049101d6a5ed6b6800bdcca4900000000000000000000000000000000000000000000000002b477372c53d6800000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008500000000000000000000000000000000000000000000000000000000006700206ae40711b8002dc6c0bf16540c857b4e32ce6c37d2f7725c8eec869b8b1111111254eeb25477b68fb85ed929f73a96058200000000000000000000000000000000000000000000000002b477372c53d6803ffeea07a27fab7ad1df5297fa75e77a43cb5790000000000000000000000000000000000000000000000000000000c4e3736f000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xbf", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x000000000000000000000000a7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a" + ], + "data": "0x00000000000000000000000000000000000000000000000002bfce5396e98498", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc0", + "removed": false + }, + { + "address": "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "topics": [ + "0xb4d99315c288c112a1d49da08c3fa85f78e2c83392f63f0a8964418f96aa24ed" + ], + "data": "0x00000000000000000000000000000000000000000000000002bfce5396e9849800000000000000000000000000000000000000000000000002bfce5396e9849800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc1", + "removed": false + }, + { + "address": "0xa7ca2c8673bcfa5a26d8ceec2887f2cc2b0db22a", + "topics": [ + "0x33be7eabd8ed368ca1aa14ce2ad1e90a0c9bf21edbb3820d5591546e4eb84157", + "0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", + "0x0000000000000000000000001cca465c62fb70741dd181ee86b53974db7d4122" + ], + "data": "0x00000000000000000000000000000000000000000000000002bfce5396e98498000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc2", + "removed": false + }, + { + "address": "0x3c11f6265ddec22f4d049dde480615735f451646", + "topics": [ + "0x68f46c45a243a0e9065a97649faf9a5afe1692f2679e650c2f853b9cd734cc0e" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc3", + "removed": false + } + ], + "logsBloom": "0x002000000000010000000000800000000000000004000000008c0000000000000040000000000000000020000100080002004000080000200010004000200000000000000000080000000008000000a00000000020600000000004000000020008000000040000000000000000080000000004000000040002000010000000000000000000000080000000400000000000004000000000080000004000020080020000000100081000400000008004000000040000000000002000200000002010020002800000000000001000380000000000109000001000000002000000001110200000000020000400000040000000002000000800000000000000000000", + "status": "0x1", + "to": "0x3c11f6265ddec22f4d049dde480615735f451646", + "transactionHash": "0x58cf8b1080f939e17a12a98187292e9dbfc3fd075db5db577997b1ba7f26021c", + "transactionIndex": "0x1f", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x57a937", + "effectiveGasPrice": "0x495818a5", + "from": "0x776e7ad582e7ccc660f628774c54dd5aad1f14a1", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xb9bd424575359fcc3d3c1538b2e11e37fb517fcf", + "transactionHash": "0x0230cf61b59c8ac739a7cced4477df1611842ca8faeadeab19307145889782a7", + "transactionIndex": "0x20", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x58f4f1", + "effectiveGasPrice": "0x4182b434", + "from": "0xaf31d6f4e3841b28c5b0581770ffaf2e1f558515", + "gasUsed": "0x14bba", + "logs": [ + { + "address": "0x0000bbddc7ce488642fb579f8b00f3a590007251", + "topics": [], + "data": "0xaf31d6f4e3841b28c5b0581770ffaf2e1f5585158703a14049cde59eeb9733a488b963e44544990641bab848f807b8ccb680947fe318ac28dd993d7af5d9873f1127af77a360d4f3c1018b5a8782d75c7509fe8d383311432833c2c8a293f0a2a7b1bbcdbcc53df43624b7dea2c3eaa1e640bc5c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x30c4df0d162a8e6b3a0677be57584d0a50da42677eff50c900f15f36ca1ad7a9", + "transactionIndex": "0x21", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc4", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0000bbddc7ce488642fb579f8b00f3a590007251", + "transactionHash": "0x30c4df0d162a8e6b3a0677be57584d0a50da42677eff50c900f15f36ca1ad7a9", + "transactionIndex": "0x21", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x59a902", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x70df61c20275d9088c4e50c12de9af6d23276e5c", + "gasUsed": "0xb411", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000070df61c20275d9088c4e50c12de9af6d23276e5c", + "0x00000000000000000000000069275b5c10143c8fd1cbdb2637348b1558c73660" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000001312d00", + "blockNumber": "0x161bd0f", + "transactionHash": "0x315141d0a9a6f772f7a151235bdc319a32aed88e0ddd6ca34a94f903cdecd562", + "transactionIndex": "0x22", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc5", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000200000400000000000000000000000000000000000000000000008000004000000000000000000000000000200000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000400000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x315141d0a9a6f772f7a151235bdc319a32aed88e0ddd6ca34a94f903cdecd562", + "transactionIndex": "0x22", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5a9c36", + "effectiveGasPrice": "0x3fce7f68", + "from": "0x10fdba297c8da9fa8904ffd699ce81de5615985c", + "gasUsed": "0xf334", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000010fdba297c8da9fa8904ffd699ce81de5615985c", + "0x00000000000000000000000025d772eb5e0c9dcd7229c7b9158b1e6cb73dadc1" + ], + "data": "0x00000000000000000000000000000000000000000000000000000007aef40a00", + "blockNumber": "0x161bd0f", + "transactionHash": "0xd208e85483ab2355d80676863ecac1a0c67f2455f8af2bcaa68e6cc9bbf92fe6", + "transactionIndex": "0x23", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc6", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000008000008000008000000000000000020000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000000200000000000000000040000000000000000000000004000000000000002000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0xd208e85483ab2355d80676863ecac1a0c67f2455f8af2bcaa68e6cc9bbf92fe6", + "transactionIndex": "0x23", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5b655a", + "effectiveGasPrice": "0xdc3a2c62", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gasUsed": "0xc924", + "logs": [ + { + "address": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009642b23ed1e01df1092b92641051881a322f5d4e", + "0x000000000000000000000000a842ba73e0bfe9adeacd527570cc3ab2617de753" + ], + "data": "0x000000000000000000000000000000000000000000000012f365a5d8850e0000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8e59ea830734462addb7c73571c2092c1d2bfcc0689987a2d08dd234827e5c5e", + "transactionIndex": "0x24", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc7", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000010000000000000000000800000000000000000000000000000000000000000000000000000000000020000000000000800000000000000000000000000000000000000000000000002000000000000000000000000000000000000400000208000000000000000000000000000000000800000000000000000000000000000000000000010", + "status": "0x1", + "to": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", + "transactionHash": "0x8e59ea830734462addb7c73571c2092c1d2bfcc0689987a2d08dd234827e5c5e", + "transactionIndex": "0x24", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5c4c54", + "effectiveGasPrice": "0x29c520d4", + "from": "0xb1b2d032aa2f52347fbcfd08e5c3cc55216e8404", + "gasUsed": "0xe6fa", + "logs": [ + { + "address": "0xc52c326331e9ce41f04484d3b5e5648158028804", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000b1b2d032aa2f52347fbcfd08e5c3cc55216e8404", + "0x0000000000000000000000008e7dedd9b1a7fd101a08b1c95f3c602fe0d4b486" + ], + "data": "0x00000000000000000000000000000000000000000000001fd4a70fe0b9180000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xeb72be22b2d9521239741a245f8c90a561199b1df62649eea12f1d504fcf0511", + "transactionIndex": "0x25", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc8", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000008000200000000000000000000000000000100000000000000000000000000000000002000000000000000000800000010000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000008000000000000000000000000000002000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xc52c326331e9ce41f04484d3b5e5648158028804", + "transactionHash": "0xeb72be22b2d9521239741a245f8c90a561199b1df62649eea12f1d504fcf0511", + "transactionIndex": "0x25", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5e876a", + "effectiveGasPrice": "0x251c128e", + "from": "0x87fcc6982257de5bdaa679d08e56117aa0b5a5d1", + "gasUsed": "0x23b16", + "logs": [ + { + "address": "0xcced7736d6781f2a3aa9c7a2a24fea935c9fa9f8", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000087fcc6982257de5bdaa679d08e56117aa0b5a5d1", + "0x00000000000000000000000016da6c5883387edeb9e701efecd9ef9f8b902605" + ], + "data": "0x0000000000000000000000000000000000000000000000000002dc9608740d6e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xc9", + "removed": false + }, + { + "address": "0xcced7736d6781f2a3aa9c7a2a24fea935c9fa9f8", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x00000000000000000000000087fcc6982257de5bdaa679d08e56117aa0b5a5d1", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x0000000000000000000000000000000000000000000000000dd7807d23929f5c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xca", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000016da6c5883387edeb9e701efecd9ef9f8b902605", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000007ed690ca0ae0f23", + "blockNumber": "0x161bd0f", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xcb", + "removed": false + }, + { + "address": "0x16da6c5883387edeb9e701efecd9ef9f8b902605", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000000001cc51093ba644c15e00000000000000000000000000000000000000000000000000a887c79105ea90", + "blockNumber": "0x161bd0f", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xcc", + "removed": false + }, + { + "address": "0x16da6c5883387edeb9e701efecd9ef9f8b902605", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002dc9608740d6e00000000000000000000000000000000000000000000000007ed690ca0ae0f230000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xcd", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000007ed690ca0ae0f23", + "blockNumber": "0x161bd0f", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xce", + "removed": false + } + ], + "logsBloom": "0x00200000000000000000000080000000000000000000000000010000000000000000000000000000000000000000000002000000080000000000000000204000200000000000000000000008000000200000000000400000000080000000000008000000000000000000000000000000000000000000040000000110000000000000040000000000004000000000000000000100000000080000004000000000020008000000000800000000000000000800000000000000000000000000000000000002000000000000000000000000000000000000001000040002000020000010200000000000000000000000000000000000000000080000000000000000", + "status": "0x1", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionHash": "0x76f700f01e6e0fa014346c9e24bc544743540dd8992d4e08409f515c4112c3ad", + "transactionIndex": "0x26", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5ee957", + "effectiveGasPrice": "0x338a0fe7", + "from": "0xf51710015536957a01f32558402902a2d9c35d82", + "gasUsed": "0x61ed", + "logs": [ + { + "address": "0x6f4bb3d0625b2cfd4400c6834943fde26c057f7a", + "topics": [ + "0xa419615bc8fda4c87663805ee2a3597a6d71c1d476911d9892f340d965bc7bf1" + ], + "data": "0x000000000000000000000000f51710015536957a01f32558402902a2d9c35d820000000000000000000000000000000000000000000000000635fb4242c74000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xf01b080912591defbcce2bb82770072f83b3a91a83ccf4bd7d54893f8cb9cbae", + "transactionIndex": "0x27", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xcf", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000", + "status": "0x1", + "to": "0x6f4bb3d0625b2cfd4400c6834943fde26c057f7a", + "transactionHash": "0xf01b080912591defbcce2bb82770072f83b3a91a83ccf4bd7d54893f8cb9cbae", + "transactionIndex": "0x27", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5f3b5f", + "effectiveGasPrice": "0x29c520d4", + "from": "0x9696f59e4d72e237be84ffd425dcad154bf96976", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x19d315d10037a99d54d099a13e5e3a99a826ecae", + "transactionHash": "0xfd26a9f8e2db5d764cf715384c0bfac63f02b7562b0e6f955709d4da06ef261c", + "transactionIndex": "0x28", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5f8d67", + "effectiveGasPrice": "0x29c520d4", + "from": "0x4976a4a02f38326660d17bf34b431dc6e2eb2327", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x7a9c7afb0673dfb0cacb2bfde0a55c873c59fe1c", + "transactionHash": "0xea9ffed304d53fbaabf6114693e8bb852ce67b3246f6db6bf20e2bb63c606cb6", + "transactionIndex": "0x29", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x5fdf6f", + "effectiveGasPrice": "0x27e37c7e", + "from": "0x6dce2424e724a02d231cbcf64edeee8d15bd9e4b", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xb386dff391830280763869d8f416206d16289e31", + "transactionHash": "0x6bbd906f6a605b46a4863de27fbd8497f1e320ddb54b8daf1c932fb25ecce27b", + "transactionIndex": "0x2a", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x60938c", + "effectiveGasPrice": "0x3b9aca00", + "from": "0x2d0d297c319be90844fab9b4ee070b8a81243163", + "gasUsed": "0xb41d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000002d0d297c319be90844fab9b4ee070b8a81243163", + "0x000000000000000000000000cff7b816bdcc412d3a8ee0461ba7a30a9b6a5cac" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000da054a19", + "blockNumber": "0x161bd0f", + "transactionHash": "0x3f164f5ef4d0c9cea6fd7defbda6abdfb3f6dd12957fe85f721d1443e8ac1998", + "transactionIndex": "0x2b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000010000000000000000000000000001000040000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000008000000000000000000800000000000100000000000000000000000000080000000000000000000000000000000000000000000000002010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x3f164f5ef4d0c9cea6fd7defbda6abdfb3f6dd12957fe85f721d1443e8ac1998", + "transactionIndex": "0x2b", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x60e594", + "effectiveGasPrice": "0x261331f8", + "from": "0xb5357b69181efcf8f6f45198b601e21e270a20ff", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x7bf38c17a6519dd17842bc37044cc30b92b81dc5", + "transactionHash": "0xe79c391b1b8ee215a67c818d1b3318872b9c8282d8ea3956349a831fa7fffbcd", + "transactionIndex": "0x2c", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x61379c", + "effectiveGasPrice": "0x23d0d9fc", + "from": "0x2cff890f0378a11913b6129b2e97417a2c302680", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa455eb2c7a4f4b90106cad96cc9c36e62cd46806", + "transactionHash": "0x124c9963d0414550d86a8c6d796b054f04ab221dfd4df6fc37135a5d2a33ed09", + "transactionIndex": "0x2d", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x6189a4", + "effectiveGasPrice": "0x23d0d9fc", + "from": "0x0da475ffc29623e805bbcf7216ea8a438209882c", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x4762631fdff1a1fed3eedf95a685d57007cf9b43", + "transactionHash": "0x4d99f405c49268e1d4a3845a46e54178c6b1becd3e2dacc512d18007f1be3076", + "transactionIndex": "0x2e", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x635d27", + "effectiveGasPrice": "0xa3c4056e0", + "from": "0x6f0a91ef8adeb54db0e63be507747ab9a31d3926", + "gasUsed": "0x1d383", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000e0554a476a092703abdb3ef35c80e0d76d32939f", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000739d1d714", + "blockNumber": "0x161bd0f", + "transactionHash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", + "transactionIndex": "0x2f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd1", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x000000000000000000000000e0554a476a092703abdb3ef35c80e0d76d32939f" + ], + "data": "0x000000000000000000000000000000000000000000000000672ed4843c7fdc00", + "blockNumber": "0x161bd0f", + "transactionHash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", + "transactionIndex": "0x2f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd2", + "removed": false + }, + { + "address": "0xe0554a476a092703abdb3ef35c80e0d76d32939f", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffff8c62e28ec000000000000000000000000000000000000000000000000672ed4843c7fdc000000000000000000000000000000000000003c7b65443ee3c32ab7469f75cd270000000000000000000000000000000000000000000000000893bb9df6efdc72000000000000000000000000000000000000000000000000000000000002f1c0", + "blockNumber": "0x161bd0f", + "transactionHash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", + "transactionIndex": "0x2f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd3", + "removed": false + } + ], + "logsBloom": "0x00000000000000002000000000000000010000000400000000000000000000000000000000000000000000000000000002000000080020000000040000000000000000000000000808000008000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000010000800000000000000000000000000000000000000000000010000000020000000000000000000000000200000000000000000000000000400000000000000000000000000000002000000000000000000000000000000000400000000000000000000000000200000000000000000000000000001000000000000000000000000000000", + "status": "0x1", + "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", + "transactionHash": "0x70383933da0c9016ae0e7d79cd334df0c31172ad4c55640e4010269ef28923e5", + "transactionIndex": "0x2f", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x67f3da", + "effectiveGasPrice": "0xe53094a6", + "from": "0xdada79040afa6ac7d7660e7e18f8a9b82c31f49a", + "gasUsed": "0x496b3", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db" + ], + "data": "0x00000000000000000000000000000000000000000000000013464f00da493600", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "transactionIndex": "0x30", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd4", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db", + "0x000000000000000000000000d51a44d3fae010294c616388b506acda1bfaae46" + ], + "data": "0x00000000000000000000000000000000000000000000000013464f00da493600", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "transactionIndex": "0x30", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd5", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000d51a44d3fae010294c616388b506acda1bfaae46", + "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db" + ], + "data": "0x00000000000000000000000000000000000000000000000000000001598b4135", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "transactionIndex": "0x30", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd6", + "removed": false + }, + { + "address": "0xd51a44d3fae010294c616388b506acda1bfaae46", + "topics": [ + "0xb2e76ae99761dc136e598d4a629bb347eccb9532a5f8bbd72e18467c3c34cc98", + "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000013464f00da493600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001598b4135", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "transactionIndex": "0x30", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd7", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ec6fc9be2d5e505b40a2df8b0622cd25333823db", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000001598b4135", + "blockNumber": "0x161bd0f", + "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "transactionIndex": "0x30", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd8", + "removed": false + } + ], + "logsBloom": "0x00000000000000800000000000000000000000000000000020000000000000000000000000000000000000000000010002000000080000000040040000000000000000000000000000000008000000000000000000040000000000000000000000000000000000000000000000000000000000000040000000000010000000000000000000000000000000000000000000000000000000000000000002100000000080000000000000000080000000000080000000000000000000000000000000000002000000000040000000000000000000000400001000000000000000000000200001000000000000000020000000000000000000000000000000000000", + "status": "0x1", + "to": "0xec6fc9be2d5e505b40a2df8b0622cd25333823db", + "transactionHash": "0xcc22c7f26e825e0c86c4377e428f16feb525bf5b81d845c52e1bb0921384ecc1", + "transactionIndex": "0x30", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x6ac18b", + "effectiveGasPrice": "0x153bf91bc", + "from": "0xebedc8e9ff409b23dd251f87ccbffa8075f87255", + "gasUsed": "0x2cdb1", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x0000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b" + ], + "data": "0x00000000000000000000000000000000000000000000000016c1d8e56b090000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", + "transactionIndex": "0x31", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xd9", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x0000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b" + ], + "data": "0x00000000000000000000000000000000000000000000000016c1d8e56b090000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", + "transactionIndex": "0x31", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xda", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007f86bf177dd4f3494b841a37e810a34dd56c829b", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000197f3bff3", + "blockNumber": "0x161bd0f", + "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", + "transactionIndex": "0x31", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xdb", + "removed": false + }, + { + "address": "0x7f86bf177dd4f3494b841a37e810a34dd56c829b", + "topics": [ + "0x143f1f8e861fbdeddd5b46e844b7d3ac7b86a122f36e8c463859ee6811b1f29c", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000016c1d8e56b09000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000197f3bff3000000000000000000000000000000000000000000000000000000000031dbf900000000000000e1a52b2444049dac570000000000001802d2bd63425c10da74", + "blockNumber": "0x161bd0f", + "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", + "transactionIndex": "0x31", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xdc", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000002000100080000000000040000000000000000000000000008000008000000000000002000440000001000000000000000000000000000000000000000000000000000000000040000000010000000000000000000000000000040000000000000010004010000000000000000000000000000000000201000000000000000000000000000000000000000000000000000000002000000000000020000000000000000000400000000000002000000000000200000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", + "transactionHash": "0x53a25cc5a3c26afe402f6856abc3518ab64554f07608d4917160d0de63ffb05b", + "transactionIndex": "0x31", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x6d2246", + "effectiveGasPrice": "0x3a5d5e6a8d", + "from": "0xac8b6e55c809e4dd83dc9943cf460c1caca84125", + "gasUsed": "0x260bb", + "logs": [ + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0x21c67e77068de97969ba93d4aab21826d33ca12bb9f565d8496e8fda8a82ca27", + "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffd0a718657b2178000000000000000000000000000000000000000000000000000000000350c60dcb5000000000000000000000000000000000000000000043bb7248357b1b91f72f70000000000000000000000000000000000000000000000003a6da3f97343c983fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e4200000000000000000000000000000000000000000000000000000000000001f4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", + "transactionIndex": "0x32", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xdd", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" + ], + "data": "0x000000000000000000000000000000000000000000000002f58e79a84de88000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", + "transactionIndex": "0x32", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xde", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" + ], + "data": "0x000000000000000000000000000000000000000000000002f58e79a84de88000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", + "transactionIndex": "0x32", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xdf", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000350c60dcb5", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", + "transactionIndex": "0x32", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe0", + "removed": false + } + ], + "logsBloom": "0x000000000000020000000000000000000000000000000000000000080000000000000000200000000010000000000000020000000c0000000000040000000000000000000000000008000008000000000000000000440020000000000000000000000000000000000000000000000000000000000000040000000010000000000000000800000000000002000000000000000000010000000000000000000000080008000000200000000000100000000000000000000000000000000000000000000802000000000000000000000000000000400400000000000002000000000000200000000000004000000000000000000000000000000000000000004000", + "status": "0x1", + "to": "0xba47cbfdd61029833841fcaa2ec2591ddfa87e51", + "transactionHash": "0x1df496bb45ca13107e0e19ee8e50438b66726b3e2da50c2d46c44c5d6d05a2e3", + "transactionIndex": "0x32", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x6ef9d5", + "effectiveGasPrice": "0x182f2c39bc", + "from": "0xeaa9ebddd373c4bd8bb92dfcc9c7e7fcdb268e51", + "gasUsed": "0x1d78f", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000011b815efb8f581194ae79006d24e0d814b7697f6", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000f9ce27d34", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", + "transactionIndex": "0x33", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe1", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x00000000000000000000000011b815efb8f581194ae79006d24e0d814b7697f6" + ], + "data": "0x000000000000000000000000000000000000000000000000defc43c79ba7e000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", + "transactionIndex": "0x33", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe2", + "removed": false + }, + { + "address": "0x11b815efb8f581194ae79006d24e0d814b7697f6", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x000000000000000000000000000000000000000000000000defc43c79ba7e000fffffffffffffffffffffffffffffffffffffffffffffffffffffff0631d82cc000000000000000000000000000000000000000000043ba34777dac0e090457c00000000000000000000000000000000000000000000000010b912988f66a1bafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e41", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", + "transactionIndex": "0x33", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe3", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010002000000080020000000040000000000000000000000000800000008000000000000000000040000000010000000000000000000000000000000000000000000000000000000000000000090000800000000000000000000000000000000000000000000000000000400000000100000000000000000000000000080000000000000000000000000000004000000000000000002000000000000000000000000000000000400000000000000000000000000200000000000000000000000000000000000000000000008001000000000", + "status": "0x1", + "to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f", + "transactionHash": "0x7e0a9525cc71210dae4368d25b22c432b8b7ae38936fa0052bacf5036fe5f306", + "transactionIndex": "0x33", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x71623a", + "effectiveGasPrice": "0xee6546334", + "from": "0x45923a43492d0deb458cb97c4ca8b7ccb0a20c71", + "gasUsed": "0x26865", + "logs": [ + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0x72331fcb696b0151904c03584b66dc8365bc63f8a144d89a773384e3a579ca73", + "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffff4b85e6bd418c18000000000000000000000000000000000000000000000000000000000ca2eaebe7000000000000000000000000000000000000000000043ba347af94015f704a750000000000000000000000000000000000000000000000000dac0e6095949700fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e4100000000000000000000000000000000000000000000000000000000000001f4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", + "transactionIndex": "0x34", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe4", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" + ], + "data": "0x000000000000000000000000000000000000000000000000b47a1942be73e800", + "blockNumber": "0x161bd0f", + "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", + "transactionIndex": "0x34", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe5", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x000000000000000000000000ba47cbfdd61029833841fcaa2ec2591ddfa87e51" + ], + "data": "0x000000000000000000000000000000000000000000000000b47a1942be73e800", + "blockNumber": "0x161bd0f", + "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", + "transactionIndex": "0x34", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe6", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000ca2eaebe7", + "blockNumber": "0x161bd0f", + "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", + "transactionIndex": "0x34", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe7", + "removed": false + } + ], + "logsBloom": "0x000000000000020000000000000000000000000000000000000000000000000000000000200000000010000000000100020000000c0000000000040000000000000000000000000000000008000000000020000000440020000000000000000000000000000000000000000000000000000000000000040000000010000000000000000800000000000002000000000000000000000000000000080000100000000008000000000000000080100000000000000000000000000000000000000000000802100000000000000000000000000000400400000000000002000000000000200000000000004000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xba47cbfdd61029833841fcaa2ec2591ddfa87e51", + "transactionHash": "0x07b3229c57fab47e183ee215ba5fa2a3364c56d64316f75ae86747d2fc316002", + "transactionIndex": "0x34", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x736cc5", + "effectiveGasPrice": "0x23cf3fd5", + "from": "0x639b2d751e6436667b97fe350c0fed111fc33fb4", + "gasUsed": "0x20a8b", + "logs": [ + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0x00b9edc1583bf6ef09ff3a09f6c23ecb57fd7d0bb75625717ec81eed181e22d7", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffb2dc9c126573b1060000000000000000000000000000000000000000000000000000000566e5c345000000000000000000000000000000000000000000043b8825a96b1a400000000000000000000000000000000000000000000000000000000601e4d79975daecfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e3f0000000000000000000000000000000000000000000000000000000000000064", + "blockNumber": "0x161bd0f", + "transactionHash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", + "transactionIndex": "0x35", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe8", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000566e5c345", + "blockNumber": "0x161bd0f", + "transactionHash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", + "transactionIndex": "0x35", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xe9", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0x0000000000000000000000000000000000000000000000004d2363ed9a8c4efa", + "blockNumber": "0x161bd0f", + "transactionHash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", + "transactionIndex": "0x35", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xea", + "removed": false + } + ], + "logsBloom": "0x000000000000000000000000000000000000000000000000000000000000000000000000200000000010000000000000020000000c0000000000000000000000000000000000000008000008000000000000000000520020000000000000000000000000000000000000000000000000000000000000040000000010000000000000000800000000400000000000000000000000010000000000000000000000000000000000200000000000100000000000000000000000000000000000000000000802400000000000001000000000000000400000000000000002000000000000200000000000004000000100000000000000000000000000000000000000", + "status": "0x1", + "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", + "transactionHash": "0x402d2311d7b2cea94653c9e5e708cec48f8e7886a1ae2dc1f37460525c5853a4", + "transactionIndex": "0x35", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x75a487", + "effectiveGasPrice": "0x23cf3fd5", + "from": "0x5c132e26694e1f3bad52a4f55c9cfd0f181d7463", + "gasUsed": "0x237c2", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007df7c84f2f9dcef3c0813e539878b76b89a916f8", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000013ee400b", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", + "transactionIndex": "0x36", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xeb", + "removed": false + }, + { + "address": "0x2dff88a56767223a5529ea5960da7a3f5f766406", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167", + "0x0000000000000000000000007df7c84f2f9dcef3c0813e539878b76b89a916f8" + ], + "data": "0x000000000000000000000000000000000000000000000074e8b8f27fc31243d9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", + "transactionIndex": "0x36", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xec", + "removed": false + }, + { + "address": "0x7df7c84f2f9dcef3c0813e539878b76b89a916f8", + "topics": [ + "0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0x000000000000000000000000000000000000000000000074e8b8f27fc31243d9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffec11bff500000000000000000000000000000000000000000000069c1adf3fbff1400000000000000000000000000000000000000000000000000000082a8a4ae870e18dfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7fd500000000000000000000000000000000000000000000000017f16700ebe17fd90000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", + "transactionIndex": "0x36", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xed", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000002000002000000000000000000008800400000000000040000000040000008000008000000000000000000120000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000000000040200000000002000000000000000000000000000000000000000000000002000000020000000000000000000000000000000000000000000000000008000000000000000000000100000000100000000000000000000000000000", + "status": "0x1", + "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", + "transactionHash": "0xc04f925427a29481b736474a2746ece9b5fad1cf598758bca8b830f2b1e0b48d", + "transactionIndex": "0x36", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x77af0a", + "effectiveGasPrice": "0x23cf3fd5", + "from": "0x69021e92840bd777cf2c495f3be516700e430a5b", + "gasUsed": "0x20a83", + "logs": [ + { + "address": "0x000000000004444c5dc75cb358380d2e3de08a90", + "topics": [ + "0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f", + "0x1e58170b9bd63a7394ddb486ed8e94d2255568a7913fb02a24f30e079f4e0e9a", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb2a5900000000000000000000000000000000000000000000000000000000156908bb0000000000000000000000000000000000000021ac6aeaccbcfc000000000000000000000000000000000000000000000000000000000000000000024894324700000000000000000000000000000000000000000000000000000000000112c100000000000000000000000000000000000000000000000000000000000004e2", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", + "transactionIndex": "0x37", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xee", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000156908bb", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", + "transactionIndex": "0x37", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xef", + "removed": false + }, + { + "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000eff6cb8b614999d130e537751ee99724d01aa167", + "0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000004d5a7", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", + "transactionIndex": "0x37", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000200000000000000000000020000000001000000000010000000000040000000000000000000000000000000000000000000008000001000000000000120020000000000000000000000000000000000000000000000000020000000000000000000010000000000000000800000010000000000000000000000000000000000000000000100000010000000000000000000080100000000000000000000000000000000000000000000802000000000000000000000000000000400000000000000000000000000000000000000000004000000100000000200000000000000000000000000000", + "status": "0x1", + "to": "0xeff6cb8b614999d130e537751ee99724d01aa167", + "transactionHash": "0x1b749e72067a68bfa58cfa9619740526b9d32cc512ece7d3f7e28f53451da460", + "transactionIndex": "0x37", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x7a1d3c", + "effectiveGasPrice": "0x36eb8fdca", + "from": "0x545da54509ef233642343b8beac5ef4443e79d73", + "gasUsed": "0x26e32", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000006ca298d2983ab03aa1da7679389d955a4efee15c", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000002b22ae61e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", + "transactionIndex": "0x38", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf1", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x0000000000000000000000006ca298d2983ab03aa1da7679389d955a4efee15c" + ], + "data": "0x0000000000000000000000000000000000000000000000002680cb38d1649c00", + "blockNumber": "0x161bd0f", + "transactionHash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", + "transactionIndex": "0x38", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf2", + "removed": false + }, + { + "address": "0x6ca298d2983ab03aa1da7679389d955a4efee15c", + "topics": [ + "0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83", + "0x0000000000000000000000003b55732f6d3997a7d44a041b8496e1a60712a35f", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x0000000000000000000000000000000000000000000000002680cb38d1649c00fffffffffffffffffffffffffffffffffffffffffffffffffffffffd4dd519e2000000000000000000000000000000000000000000043b9fdf238091c45e86f900000000000000000000000000000000000000000000000002b610f914e5d61bfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e410000000000000000000000000000000000000000000000000001acf7b91288990000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", + "transactionIndex": "0x38", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf3", + "removed": false + } + ], + "logsBloom": "0x00000040000000000000002000000000000000000000400000000000000000000000000000000000000000000002010002000008080000000000040000000000040000000040000000000008000000000000000000040000000000000000000000000000000000000000000000000000000004000000000200000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000002800000000000000000000000000000000002000000000000000000000000000000000400000000000004000000000000200000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x3b55732f6d3997a7d44a041b8496e1a60712a35f", + "transactionHash": "0x4d7804919a1739d0784249538bcebd71a3e448cd1091e25ab17205686e28405c", + "transactionIndex": "0x38", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x7d266f", + "effectiveGasPrice": "0x214369152", + "from": "0x448166a91e7bc50d0ac720c2fbed29e0963f5af8", + "gasUsed": "0x30933", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37" + ], + "data": "0x0000000000000000000000000000000000000000000000007bde86a2e53bb9a6", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "transactionIndex": "0x39", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf4", + "removed": false + }, + { + "address": "0x52aa899454998be5b000ad077a46bbe360f4e497", + "topics": [ + "0x4d93b232a24e82b284ced7461bf4deacffe66759d5c24513e6f29e571ad78d15", + "0x000000000000000000000000836951eb21f3df98273517b7249dceff270d34bf", + "0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee" + ], + "data": "0x0000000000000000000000000000000000000000000000004fcfa02432be1e80ffffffffffffffffffffffffffffffffffffffffffffffffd3f119814d8be3c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c917b591b25869140000000000000000e6be8696f7624f140000000000000007d4adbffcd8000007b35e662761a29611bc01e8ac43e80127", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "transactionIndex": "0x39", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf5", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000052aa899454998be5b000ad077a46bbe360f4e497", + "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37" + ], + "data": "0x00000000000000000000000000000000000000000000000000000008ac01b3f7", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "transactionIndex": "0x39", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf6", + "removed": false + }, + { + "address": "0x52aa899454998be5b000ad077a46bbe360f4e497", + "topics": [ + "0x4d93b232a24e82b284ced7461bf4deacffe66759d5c24513e6f29e571ad78d15", + "0x000000000000000000000000836951eb21f3df98273517b7249dceff270d34bf", + "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffa699cc60d00000000000000000000000000000000000000000000000000000003159e7a04000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37000000000000000000dd001001890700000000000000000001111c3fd1050d0000000000000000085fc905d39000000815a8992621a297309c01e82f03e80299", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "transactionIndex": "0x39", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf7", + "removed": false + }, + { + "address": "0x836951eb21f3df98273517b7249dceff270d34bf", + "topics": [ + "0xdc004dbca4ef9c966218431ee5d9133d337ad018dd5b5c5493722803f75c64f7" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007bde86a2e53bb9a600000000000000000000000000000000000000000000000000000008ac01b3f7000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "transactionIndex": "0x39", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf8", + "removed": false + } + ], + "logsBloom": "0x00000000000008000000000000000000000000000000000000800000000000000004000000000000000002400000000002000000080000000010000000000000000000000000000008000008000000000000000000500000000000000000000000040000000002000002020000000008000000000400040000000010000000000000000000000000000000000000000200000000010010000000000000040000000000000000200000000000000000000000000000000000000800200000000000000002000000000000000000100800000000004000000008000002000002000000240000000000000000000000000004400000000000000000000200000000", + "status": "0x1", + "to": "0xfbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "transactionHash": "0x9ad517969b986fe44221f228b4e1b5949c99d08e5a96f4cc0deff9d446ca6cc1", + "transactionIndex": "0x39", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x809ce1", + "effectiveGasPrice": "0x1ebd76860", + "from": "0x7f982f64ee9dfd024acb8c2abb5884fef0b9d440", + "gasUsed": "0x37672", + "logs": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x0000000000000000000000005236333ef2baa45b450689b69e4e4b277d84f954" + ], + "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae900000000000000000000000000000000000000000000000000000003548cbd98000000000000000000000000000000000000000000000002b5e3af16b1880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000388afd5e921fa3ba3fa6b9bd5d1e0ef74af410ac2b1755d3d886b693e6f421fd755236333ef2baa45b450689b69e4e4b277d84f95468a5d5340000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xf9", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000005236333ef2baa45b450689b69e4e4b277d84f954", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x00000000000000000000000000000000000000000000000000000003548cbd98", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xfa", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000035413c376", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xfb", + "removed": false + }, + { + "address": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000051c72848c68a965f66fa7a88855f9f7784502a7f", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000002b5e3af16b1880000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xfc", + "removed": false + }, + { + "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", + "topics": [ + "0xadd7095becdaa725f0f33243630938c861b0bba83dfd217d4055701aa768ec2e", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xfd", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000004dcebcba00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xfe", + "removed": false + }, + { + "address": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x0000000000000000000000005236333ef2baa45b450689b69e4e4b277d84f954" + ], + "data": "0x000000000000000000000000000000000000000000000002b5e3af16b1880000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0xff", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", + "0x0000000000000000000000004dd1be0cd607e5382dd2844fa61d3a17e3e83d56" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x100", + "removed": false + } + ], + "logsBloom": "0x000010040000000000000000000010000040000800000000000000000000000000000000000000000000000000000100000000000000000020000440000000020000000000000000202000080000000000000001000400000000000000000002000000000a0000000000800000000880000000000000000010004010000010000000080000000000000201000000002000000000400000000000000000100000000000600000000000000080000000000000000000000000010000000000000000000002000800000008000000000000000020000400000800000000000020000000000000000000000002000000000000004000000000000000000000000000", + "status": "0x1", + "to": "0x4dd1be0cd607e5382dd2844fa61d3a17e3e83d56", + "transactionHash": "0x6ed161a1dd005c48b937d8f5049e8b0136693552e6eae52f3ee14f345683eeed", + "transactionIndex": "0x3a", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x82156c", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x55823001c8cd87a6e86716ca768bce51f2d89c9c", + "gasUsed": "0x1788b", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f7b52be96b229dc63e6301bea175a1b5f756c274", + "0x000000000000000000000000ce5586f0fbe00a3efbfc8d2caa714fdbe6a052eb" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000129fc57bd", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbc730be36c276ca5a0a02eeaa192ed302cf87c7453ad567e22fc951a0bf8d7e8", + "transactionIndex": "0x3b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x101", + "removed": false + } + ], + "logsBloom": "0x00000100000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010000000000000000000000000008000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000100000000000000000000000000000", + "status": "0x1", + "to": "0xf7b52be96b229dc63e6301bea175a1b5f756c274", + "transactionHash": "0xbc730be36c276ca5a0a02eeaa192ed302cf87c7453ad567e22fc951a0bf8d7e8", + "transactionIndex": "0x3b", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9134a0", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x8611abf54b7ad26ccbfe99a213c201ee60dba0e5", + "gasUsed": "0xf1f34", + "logs": [ + { + "address": "0x13a5a916356242879b9509fd12bf8e4760a3f438", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000022", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x102", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f4240", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x103", + "removed": false + }, + { + "address": "0x13a5a916356242879b9509fd12bf8e4760a3f438", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f384c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x104", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438", + "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f4240", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x105", + "removed": false + }, + { + "address": "0x79fd640000f8563a866322483524a4b48f1ed702", + "topics": [ + "0x15c027cc4fd826d986cad358803439f7326d3aa4ed969ff90dbee4bc150f68e9" + ], + "data": "0x00000000000000000000000000000000000000000000000000000018cdea085e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x106", + "removed": false + }, + { + "address": "0x79fd640000f8563a866322483524a4b48f1ed702", + "topics": [ + "0x548669ea9bcc24888e6d74a69c9865fa98d795686853b8aa3eb87814261bbb71" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x107", + "removed": false + }, + { + "address": "0x79fd640000f8563a866322483524a4b48f1ed702", + "topics": [ + "0xf66f28b40975dbb933913542c7e6a0f50a1d0f20aa74ea6e0efe65ab616323ec" + ], + "data": "0x00000000000000000000000000000000000000000000000000000018cdea085e0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x108", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438", + "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f4240", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x109", + "removed": false + }, + { + "address": "0x79fd640000f8563a866322483524a4b48f1ed702", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" + ], + "data": "0x0000000000000000000000000000000000000000000000000daf726dd543ad01", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10a", + "removed": false + }, + { + "address": "0x79fd640000f8563a866322483524a4b48f1ed702", + "topics": [ + "0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000daf726dd543ad01", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10b", + "removed": false + }, + { + "address": "0x870ac11d48b15db9a138cf899d20f13f79ba00bc", + "topics": [ + "0x7120161a7b3d31251e01294ab351ef15a41b91659a36032e4641bb89b121e321", + "0xa921ef34e2fc7a27ccc50ae7e4b154e16c9799d3387076c421423ef52ac4df99" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000062669641000000000000000000000000000000000000000000000000000000004cd5602e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10c", + "removed": false + }, + { + "address": "0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb", + "topics": [ + "0x9d9bd501d0657d7dfe415f779a620a62b78bc508ddc0891fbbd8b7ac0f8fce87", + "0xa921ef34e2fc7a27ccc50ae7e4b154e16c9799d3387076c421423ef52ac4df99" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000062669641000000000000000000000000000000000000000000000000000000000b47db310000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10d", + "removed": false + }, + { + "address": "0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb", + "topics": [ + "0xedf8870433c83823eb071d3df1caa8d008f12f6440918c20d75a3602cda30fe0", + "0xa921ef34e2fc7a27ccc50ae7e4b154e16c9799d3387076c421423ef52ac4df99", + "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702", + "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000d51ee5a890", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10e", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000079fd640000f8563a866322483524a4b48f1ed702", + "0x000000000000000000000000bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f4240", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x10f", + "removed": false + }, + { + "address": "0x79fd640000f8563a866322483524a4b48f1ed702", + "topics": [ + "0x15c027cc4fd826d986cad358803439f7326d3aa4ed969ff90dbee4bc150f68e9" + ], + "data": "0x00000000000000000000000000000000000000000000000000000018cdf94a9e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x110", + "removed": false + }, + { + "address": "0x034771103dc1e9b1f2ebda95896fc44b6d63edc7", + "topics": [ + "0x34f2a7363b1ef64b0b62a223c88cf3f54a68686acfcb9531d7deb46004f37c46", + "0x00000000000000000000000013a5a916356242879b9509fd12bf8e4760a3f438" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x111", + "removed": false + }, + { + "address": "0x13a5a916356242879b9509fd12bf8e4760a3f438", + "topics": [ + "0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7", + "0x0000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5", + "0x0000000000000000000000008611abf54b7ad26ccbfe99a213c201ee60dba0e5" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000f384c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x112", + "removed": false + } + ], + "logsBloom": "0x00000000000040000000000000000080000000000000000001000000000040000000400000000000000000000000010000000000000000000000000020a4400000000040001000000000000880000000004000080028000000000108000000000000000002000002000000000000080000000000000400000000001800000000000800000000000800200000000000000000000000000000003004000010040002000000002000000000008000000000004010000400040000000000000000002800000200000000000100000000000008000000810900000000000000002040c010000001000000000000240201000400000002000008000000000400080000", + "status": "0x1", + "to": "0x13a5a916356242879b9509fd12bf8e4760a3f438", + "transactionHash": "0x8a80899afccd55cad486357cf5ffc1092a592a339d9d6c5935d25b5324d72e73", + "transactionIndex": "0x3c", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9186a8", + "effectiveGasPrice": "0xdc3a2c62", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x1b216d8b75a050041e59860ff7fda6e3411424f4", + "transactionHash": "0x6ae2f1fd6116d2b93223ae3548caf9d85e43d8fefec88814d36f38b916bab652", + "transactionIndex": "0x3d", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x91d8b0", + "effectiveGasPrice": "0xdc3a2c62", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x2e17aa7437b4ac446e5750202ab1d48c7884f5d9", + "transactionHash": "0x3991e33f52ae3cf5167bf1f07cc8d358caf226022c5128ad991fe279b702a27d", + "transactionIndex": "0x3e", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x92a1d4", + "effectiveGasPrice": "0xdc3a2c62", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gasUsed": "0xc924", + "logs": [ + { + "address": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009642b23ed1e01df1092b92641051881a322f5d4e", + "0x000000000000000000000000a882df02283fa89d5659a870414e2c1803fd54ca" + ], + "data": "0x00000000000000000000000000000000000000000000000ab407c9eb05200000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xed80b011a517f5aab29dc7b79061fd54b68cc36c2023bfaff2812be53328e7fd", + "transactionIndex": "0x3f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x113", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000800000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000010000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000208000000000000000000000000000000000800000000000000000000000800000000000000000", + "status": "0x1", + "to": "0xcab84bc21f9092167fcfe0ea60f5ce053ab39a1e", + "transactionHash": "0xed80b011a517f5aab29dc7b79061fd54b68cc36c2023bfaff2812be53328e7fd", + "transactionIndex": "0x3f", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x92f3dc", + "effectiveGasPrice": "0xdc3a2c62", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0b9b42d7edb6b669a24f50157f80e5d909cb6eb8", + "transactionHash": "0x06d504980fbacf359463537147c81348f5978476433367b067b185ad95be82e0", + "transactionIndex": "0x40", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9345e4", + "effectiveGasPrice": "0xdc3a2c62", + "from": "0x9642b23ed1e01df1092b92641051881a322f5d4e", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0f000db45a0f4320ac77c5ba21312ae52174326a", + "transactionHash": "0xd33b517a15607a18d3c33ddc1f237aa61e9a3947b21287768ce3ba86d2495a03", + "transactionIndex": "0x41", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x93fbd4", + "effectiveGasPrice": "0xd6455cd2", + "from": "0x7586854ec236f3ef8e7e5c7cc55dd3b449feed98", + "gasUsed": "0xb5f0", + "logs": [ + { + "address": "0xfa417cd491632620a582851b07abf7e3447bba71", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x0000000000000000000000007586854ec236f3ef8e7e5c7cc55dd3b449feed98", + "0x00000000000000000000000077edae6a5f332605720688c7fda7476476e8f83f" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "blockNumber": "0x161bd0f", + "transactionHash": "0x1827070bb19ea45e3bf9eec57ccc94690038337ada1bc618ab79eb21a8078dac", + "transactionIndex": "0x42", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x114", + "removed": false + } + ], + "logsBloom": "0x01000000000000000000000000001000100000000000000000000000000000200000000000000000000000000000000400000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000002000000000020000000000000000000000000000000000", + "status": "0x1", + "to": "0xfa417cd491632620a582851b07abf7e3447bba71", + "transactionHash": "0x1827070bb19ea45e3bf9eec57ccc94690038337ada1bc618ab79eb21a8078dac", + "transactionIndex": "0x42", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x94ac3c", + "effectiveGasPrice": "0xd69f9dd4", + "from": "0x3fdd41c3622aa33227d42d87c6838aaa9dca0dcf", + "gasUsed": "0xb068", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000003fdd41c3622aa33227d42d87c6838aaa9dca0dcf", + "0x0000000000000000000000008476de5d91038c1015c73e6fec0a97d45d91ec18" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000008ebb1c8", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc8d9083af83a6c8fa73051663d8a2c9d79195be21063c09066d39d562d1be993", + "transactionIndex": "0x43", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x115", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000002000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000080000000000000000000000000000000000000000000000000000000000000000000010000000010000000000000000000000000000000000000000000000000010000080000000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0xc8d9083af83a6c8fa73051663d8a2c9d79195be21063c09066d39d562d1be993", + "transactionIndex": "0x43", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x959f70", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x93228d328c9c74c2bfe9f97638bbb5ef322f2bd5", + "gasUsed": "0xf334", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000093228d328c9c74c2bfe9f97638bbb5ef322f2bd5", + "0x00000000000000000000000041ea4e72b88a8e84b83b739f4092339d721574cf" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000ac9d740", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7e1bbe3049928a58a967ff5188615b894fc8093d92778abcdedbdbdf9957c052", + "transactionIndex": "0x44", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x116", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000010000000000000000000000000000000000000000000000000010000000000000000008080000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000400", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0x7e1bbe3049928a58a967ff5188615b894fc8093d92778abcdedbdbdf9957c052", + "transactionIndex": "0x44", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x96ec8c", + "effectiveGasPrice": "0x7a4ab68f", + "from": "0x8347cd390c696372aa5ac17865117d5521c5476a", + "gasUsed": "0x14d1c", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a", + "0x0000000000000000000000005c7bcd6e7de5423a257d81b442095a1a6ced35c5" + ], + "data": "0x000000000000000000000000000000000000000000000000000000005120bce0", + "blockNumber": "0x161bd0f", + "transactionHash": "0x75205100cde683dcb84a3b361f7320c0a0adad9f4c151a7088938db3a90c682b", + "transactionIndex": "0x45", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x117", + "removed": false + }, + { + "address": "0x5c7bcd6e7de5423a257d81b442095a1a6ced35c5", + "topics": [ + "0x32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3", + "0x0000000000000000000000000000000000000000000000000000000000002105", + "0x00000000000000000000000000000000000000000000000000000000002e16ea", + "0x0000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a" + ], + "data": "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda02913000000000000000000000000000000000000000000000000000000005120bce000000000000000000000000000000000000000000000000000000000511e68ef0000000000000000000000000000000000000000000000000000000068a5cd170000000000000000000000000000000000000000000000000000000068a5fc010000000000000000000000000000000000000000000000000000000068a5ce730000000000000000000000008347cd390c696372aa5ac17865117d5521c5476a000000000000000000000000394311a6aaa0d8e3411d8b62de4578d41322d1bd00000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x75205100cde683dcb84a3b361f7320c0a0adad9f4c151a7088938db3a90c682b", + "transactionIndex": "0x45", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x118", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000001000000000000000001000000000000000000000000000008000108000000000000000000000000000000000000000000010000000000000000000000000000000120000000000000000010000000000000000800000008000800100000001000000000210008000000000020000000001000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000010000000000000000000000000000000000000000000004000000000000000000000000000000", + "status": "0x1", + "to": "0x8347cd390c696372aa5ac17865117d5521c5476a", + "transactionHash": "0x75205100cde683dcb84a3b361f7320c0a0adad9f4c151a7088938db3a90c682b", + "transactionIndex": "0x45", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x97d8c6", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x91d40e4818f4d4c57b4578d9eca6afc92ac8debe", + "gasUsed": "0xec3a", + "logs": [ + { + "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000091d40e4818f4d4c57b4578d9eca6afc92ac8debe", + "0x000000000000000000000000124f9ec75369ea83cdfdb1d87c5874ca7f081107" + ], + "data": "0x000000000000000000000000000000000000000000026d04ab7d750dfb350000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6a3001d1458aaae959847d930c1f1b4e813899c8702e5a3f7ea14123b633ee52", + "transactionIndex": "0x46", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x119", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000080000000000000008000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000010000000000000000000000000000000000010000000000000000000000000800200000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000001000000000000000000000000000000000000080001000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "transactionHash": "0x6a3001d1458aaae959847d930c1f1b4e813899c8702e5a3f7ea14123b633ee52", + "transactionIndex": "0x46", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x997e69", + "effectiveGasPrice": "0x5f6a09d5", + "from": "0x0fc7cb62247151faf5e7a948471308145f020d2e", + "gasUsed": "0x1a5a3", + "logs": [ + { + "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000004585fe77225b41b697c938b018e2ac67ac5a20c0", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000003a4592", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", + "transactionIndex": "0x47", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11a", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c", + "0x0000000000000000000000004585fe77225b41b697c938b018e2ac67ac5a20c0" + ], + "data": "0x0000000000000000000000000000000000000000000000000e6292767661e2a9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", + "transactionIndex": "0x47", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11b", + "removed": false + }, + { + "address": "0x4585fe77225b41b697c938b018e2ac67ac5a20c0", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc5ba6e0000000000000000000000000000000000000000000000000e6292767661e2a9000000000000000000000000000000000007f2bc5dc46b0bc91a11635bcf1c480000000000000000000000000000000000000000000000000032f67f85989ef7000000000000000000000000000000000000000000000000000000000004046f", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", + "transactionIndex": "0x47", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11c", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000001000001000000000000000000000000000000000000000000000000000000000002000000080020000000000000000000000080000000000800000208000000000000000000000000000000000000000000080000000002000000000000002000020000000000000000000010000800000020000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000800000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000200000000000000000000000000000", + "status": "0x1", + "to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c", + "transactionHash": "0xa992613624291aa6066c2b0e3c8f16a4cbf2da27d5124ae28c7041edb5c5f8cb", + "transactionIndex": "0x47", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9b1a6d", + "effectiveGasPrice": "0x5f6a09d5", + "from": "0x234de29cc82f9ce20cdc71b8b4baf6d51f4a1a64", + "gasUsed": "0x19c04", + "logs": [ + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000060594a405d53811d3bc4766596efd80fd545a270", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c" + ], + "data": "0x00000000000000000000000000000000000000000000004b2c431fda9185ee5e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", + "transactionIndex": "0x48", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11d", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c", + "0x00000000000000000000000060594a405d53811d3bc4766596efd80fd545a270" + ], + "data": "0x000000000000000000000000000000000000000000000000049bff3124b7bb06", + "blockNumber": "0x161bd0f", + "transactionHash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", + "transactionIndex": "0x48", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11e", + "removed": false + }, + { + "address": "0x60594a405d53811d3bc4766596efd80fd545a270", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c", + "0x000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffb4d3bce0256e7a11a2000000000000000000000000000000000000000000000000049bff3124b7bb06000000000000000000000000000000000000000003f68e899e4ccafb82674bf5000000000000000000000000000000000000000000000431bb9918fecc9757c6fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeba58", + "blockNumber": "0x161bd0f", + "transactionHash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", + "transactionIndex": "0x48", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x11f", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000020000001000000000000000000000040000000000000000000000000000000000000000002000000080020000000000000000000000080000000000800000008000000000000000000000000000000000000000010000000000000000000080000002000000000000000002000000010000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000002000000020000000000000000000002000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c", + "transactionHash": "0x00138f183df8f35e5cff95ae8911e29f833a0e4e1b2da55eaa2e7b9c0dc7c361", + "transactionIndex": "0x48", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9d6f74", + "effectiveGasPrice": "0x3bb9cbd0", + "from": "0x22b0351d445840db59b97df3808dd642dcb17e96", + "gasUsed": "0x25507", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36", + "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37" + ], + "data": "0x000000000000000000000000000000000000000000000000000000002c5a0de9", + "blockNumber": "0x161bd0f", + "transactionHash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", + "transactionIndex": "0x49", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x120", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "0x0000000000000000000000001ac1a8feaaea1900c4166deeed0c11cc10669d36" + ], + "data": "0x0000000000000000000000000000000000000000000000000278f7f1db3b9b5e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", + "transactionIndex": "0x49", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x121", + "removed": false + }, + { + "address": "0x1ac1a8feaaea1900c4166deeed0c11cc10669d36", + "topics": [ + "0x19b47279256b2a23a1665c810c8d55a1758940ee09377d4f8d26497a3577dc83", + "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "0x000000000000000000000000fbd4cdb413e45a52e2c8312f670e9ce67e794c37" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffd3a5f2170000000000000000000000000000000000000000000000000278f7f1db3b9b5e0000000000000000000000000000000000003c7390d650dc073538d9dde88a3e0000000000000000000000000000000000000000000000000037a1a246968f30000000000000000000000000000000000000000000000000000000000002f1b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b8bfa78220d", + "blockNumber": "0x161bd0f", + "transactionHash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", + "transactionIndex": "0x49", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x122", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000080000000000000000000000000000000000000000000000000000000000000002000002000000080000000000000000000000040000000040000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000010000000000000000000000000000000000000000000000000010000100000000000000000000000000000200000000000000000800000000000000000008000000000000000001002000000000000000000000800000000000000000000000000000000000000240000000000000000000000000000000000000000000000000040000000", + "status": "0x1", + "to": "0xfbd4cdb413e45a52e2c8312f670e9ce67e794c37", + "transactionHash": "0x5c26778c19e50598fcd9190fa74dc60d2182940918b53942a6a7ea247243a38b", + "transactionIndex": "0x49", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9e1fdc", + "effectiveGasPrice": "0x77359400", + "from": "0x46340b20830761efd32832a74d7169b29feb9758", + "gasUsed": "0xb068", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000046340b20830761efd32832a74d7169b29feb9758", + "0x00000000000000000000000025637c1059b044c262cb1108c899cad44c8cd908" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001d34ce80", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa2a8edbe294afde748bf14aae5427b8af22a65d9e1ea8de5c410057d577a480e", + "transactionIndex": "0x4a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x123", + "removed": false + } + ], + "logsBloom": "0x00040000008000000000000000000000000000000000000000000010000000000000000040000000000000000000000000000000000000000000000000000000000000000000000008000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000010000000000000000800000000000000000200000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0xa2a8edbe294afde748bf14aae5427b8af22a65d9e1ea8de5c410057d577a480e", + "transactionIndex": "0x4a", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0x9e71e4", + "effectiveGasPrice": "0xd69f9dd4", + "from": "0x1864d150aa60111fb312a1b8f4cf8e6dabd3094c", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0abbc482fbd91dbf413e3d6cc5622e03552ac13a", + "transactionHash": "0x1de9ccef004f5f226c9468fb6abdc40755e1e5c7ddfcf1dd4ea2cbb708cc2165", + "transactionIndex": "0x4b", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xa384be", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x5962604feb383ca4164107583d147b2aa1d86d54", + "gasUsed": "0x512da", + "logs": [ + { + "address": "0x2401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000005962604feb383ca4164107583d147b2aa1d86d54", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x00000000000000000000000000000000000000000000000000502072edbac1fa", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "transactionIndex": "0x4c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x124", + "removed": false + }, + { + "address": "0x00a0be1bbc0c99898df7e6524bf16e893c1e3bb9", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000002401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", + "0x0000000000000000000000008d6fd650500f82c7d978a440348e5a9b886943bf" + ], + "data": "0x000000000000000000000000000000000000000000000000004f723c6b53a4a8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "transactionIndex": "0x4c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x125", + "removed": false + }, + { + "address": "0x8d6fd650500f82c7d978a440348e5a9b886943bf", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000005962604feb383ca4164107583d147b2aa1d86d54", + "0x00000000000000000000000000013dd60000000000000000004f723c6b53a4a8" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "transactionIndex": "0x4c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x126", + "removed": false + }, + { + "address": "0x8d6fd650500f82c7d978a440348e5a9b886943bf", + "topics": [ + "0x0080df45f12186856da484a1494bb51907e2abec5abc9a401e443c116bed71a5", + "0x0000000000000000000000005962604feb383ca4164107583d147b2aa1d86d54" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000013dd600000000000000000000000000013dd60000000000000000004f723c6b53a4a800000000000000000000000000000000000000000000425cb1e1774c9a683cbd000000000000000000000000000000000000000000000000004f723c6b53a4a80000000000000000000000000000000000000000000000000054d440ddba222e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "transactionIndex": "0x4c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x127", + "removed": false + }, + { + "address": "0x2401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", + "topics": [ + "0x75aa83b91343398bcfa338c4017c29780f24e0178bb796993453746801d80b03", + "0x0000000000000000000000005962604feb383ca4164107583d147b2aa1d86d54" + ], + "data": "0x00000000000000000000000000000000000000000000000000502072edbac1fa000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004f723c6b53a4a8", + "blockNumber": "0x161bd0f", + "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "transactionIndex": "0x4c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x128", + "removed": false + } + ], + "logsBloom": "0x0000000000000000000000000000000000000000000000400000000000000000000010000000800000000080000000080000000000000008000001000000000221000200000000000000200800000000000000000000000000000000000000000000000002000000000001008000080000000000000000000000001000000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000020100000000200000000000000200a000000000000000000006000000000000000100000000000000000000000000000000000020002001000000000000000000000000000000040000000000000000000000000000", + "status": "0x1", + "to": "0x2401c39d7ba9e283668a53fcc7b8f5fd9e716fdf", + "transactionHash": "0x58e2f7e1ec2dd54b4e40331bea22badf3843fe6f21c6a4a017d86a715904c6b2", + "transactionIndex": "0x4c", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xa54f01", + "effectiveGasPrice": "0x419ca4d4", + "from": "0x663b7c32c90f6c3fee8e8eecced18c007d69193a", + "gasUsed": "0x1ca43", + "logs": [ + { + "address": "0x10ee9f68ee4e4d311e854ae14c53f5b25a917f85", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000663b7c32c90f6c3fee8e8eecced18c007d69193a", + "0x000000000000000000000000332a24318d56f9cca677a242aff668314492bf80" + ], + "data": "0x00000000000000000000000000000000000000000000eeba4b9f0d5bdd105a3e", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x129", + "removed": false + }, + { + "address": "0x10ee9f68ee4e4d311e854ae14c53f5b25a917f85", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000663b7c32c90f6c3fee8e8eecced18c007d69193a", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffff834724815ff43060e8e12", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12a", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000332a24318d56f9cca677a242aff668314492bf80", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000029fbecd9a1c2b9f4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12b", + "removed": false + }, + { + "address": "0x332a24318d56f9cca677a242aff668314492bf80", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x00000000000000000000000000000000000000000014e7932d666db6140a089200000000000000000000000000000000000000000000000385e1aa5adf62d095", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12c", + "removed": false + }, + { + "address": "0x332a24318d56f9cca677a242aff668314492bf80", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000eeba4b9f0d5bdd105a3e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029fbecd9a1c2b9f4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12d", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000029fbecd9a1c2b9f4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12e", + "removed": false + } + ], + "logsBloom": "0x00200000004000000000000080000000000000000000200000010000000020010000000000000000000000000000000002004000080000100000000000200000000000000000000000000008000000200000000000400000000000000000000000000000000000000000000000000000000000000000040000000010100000000000000008000000004400000000000000000000000000080000004021000000020000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000001000000002000020000010200000000000000000000000000000000000000000000000000000000004", + "status": "0x1", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionHash": "0x7a3600dd2fe2ec2c06cec4604861991b4ba6890c76c3d10f486f4562a6eb7eb7", + "transactionIndex": "0x4d", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xa5a109", + "effectiveGasPrice": "0xb2d05e00", + "from": "0xb6839dc14ace0934a2c422369aa34b39b8c534b1", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x2fd2ea3b0545bf12dd03ef6274aede12274da9a6", + "transactionHash": "0x9ffbef1785c43203687d9ecebc2e1dc67bd4b69337d9576d9992039d328ba5c3", + "transactionIndex": "0x4e", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xa5f311", + "effectiveGasPrice": "0xae1aec40", + "from": "0x91604f590d66ace8975eed6bd16cf55647d1c499", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xfbc09172b41c69aa617629847e5d80e35981932d", + "transactionHash": "0x2cbad0ad9584888bb5ad6d856ea602fa2a3afe764252499f2de6afe2a69ffdae", + "transactionIndex": "0x4f", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xa64519", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0xab97925eb84fe0260779f58b7cb08d77dcb1ee2b", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xe47d43dcd14e9fcaf96c232dae3f84d81c1ac725", + "transactionHash": "0x88871027255d345a9f5887127c9acb33704c9a1db48142f8185eabceeab719e1", + "transactionIndex": "0x50", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xa69721", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0xa9ac43f5b5e38155a288d1a01d2cbc4478e14573", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xe337299f1d8f5a249147bf2e795d612b891ab90e", + "transactionHash": "0x5803753b8b9f1a604f6590849d3a9cd2a7c0f6fb6334d02a01ba5d66206c450a", + "transactionIndex": "0x51", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xad1f73", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0xbe19155113cbfa0b0555d6c316b18133b10b312d", + "gasUsed": "0x68852", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xd152f549545093347a162dce210e7293f1452150", + "transactionHash": "0x09ebf2e04dbaab1d0ad74c275b776c6398084d5558290d804063d0a6f477c61e", + "transactionIndex": "0x52", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xad717b", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionHash": "0xd20af84c937b6bfb1cbd0dbcde686c9bbdd6a3904257523bba99bd50e879f8a1", + "transactionIndex": "0x53", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xae12d8", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x7d7e377ee0168ddb578ef10661827cf1f71a6712", + "gasUsed": "0xa15d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007d7e377ee0168ddb578ef10661827cf1f71a6712", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43" + ], + "data": "0x000000000000000000000000000000000000000000000000000000002fb9b660", + "blockNumber": "0x161bd0f", + "transactionHash": "0xef162cf825f7bd785fd8229e52972e62855b7d44dcdd3038990fd95625a9dc56", + "transactionIndex": "0x54", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x12f", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000010000000008000000000000000000000000000001000000000000000008000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000010000000000000000000000000000000000020000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0xef162cf825f7bd785fd8229e52972e62855b7d44dcdd3038990fd95625a9dc56", + "transactionIndex": "0x54", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xaeb429", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0xf8ae00151ae5c2b5d430ab4e9dab01a770c1fca9", + "gasUsed": "0xa151", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f8ae00151ae5c2b5d430ab4e9dab01a770c1fca9", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001dcd6500", + "blockNumber": "0x161bd0f", + "transactionHash": "0x6f4c0ef6cf1c52b0261982d2c8bdfc3f9073dd8af06ffdd253d5b3e49d3152cf", + "transactionIndex": "0x55", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x130", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000010000000000000000000000000000000000000000000100000000010000000008000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000100000000000000000080000000000000000000000000000000000000020000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x6f4c0ef6cf1c52b0261982d2c8bdfc3f9073dd8af06ffdd253d5b3e49d3152cf", + "transactionIndex": "0x55", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xaf557a", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x01884eb29311cf4fbbf59465aff0fbd123f84713", + "gasUsed": "0xa151", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000001884eb29311cf4fbbf59465aff0fbd123f84713", + "0x000000000000000000000000a9d1e08c7793af67e9d92fe308d5697fb81d3e43" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000c1f0700", + "blockNumber": "0x161bd0f", + "transactionHash": "0x31109524218b0f4e2f747b5163bd532e63521b998bff69fb07fa44cb68a09298", + "transactionIndex": "0x56", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x131", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000010040000000000000000000000000000000000000000000000000010000000008000000000000000000000000000000000000000000000008010000000000000000000000000000000000000000000000000000000000000000008800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x31109524218b0f4e2f747b5163bd532e63521b998bff69fb07fa44cb68a09298", + "transactionIndex": "0x56", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xaff6d7", + "effectiveGasPrice": "0x4fb1722d", + "from": "0xeb5fb7ce4528ee42bf2c7765ae70ca1deb2ef09c", + "gasUsed": "0xa15d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000eb5fb7ce4528ee42bf2c7765ae70ca1deb2ef09c", + "0x000000000000000000000000203ff9f3e2af2ceb4dd62914af2bdf8ebfc53264" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000b2eb3a55", + "blockNumber": "0x161bd0f", + "transactionHash": "0x74f20b477ad72c790aa0a5742daf4aeadb1fbbd0edcfd74490f4ea9ec32d9a29", + "transactionIndex": "0x57", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x132", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000010000000000000000000000000000000000008000000000000000000000002000000100000000000000000020000000080000000000000000000000000000000000000000000000002000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x74f20b477ad72c790aa0a5742daf4aeadb1fbbd0edcfd74490f4ea9ec32d9a29", + "transactionIndex": "0x57", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xb048df", + "effectiveGasPrice": "0x77359400", + "from": "0x0e71589abe9d1215535dc94c85482fe5954fdac9", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0b7342a7af6bf6cc0ff8909ba1d70770863c74b5", + "transactionHash": "0x9cc25ee19cb4404d4bbeb96d4f9e9ceefe81ba8245f0f7c01a266900f9b4e745", + "transactionIndex": "0x58", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xb2bbe6", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x21f2f76af55060df2a0fba013d4dd9d9f8ab2dea", + "gasUsed": "0x27307", + "logs": [ + { + "address": "0xbc2ecbe2195114b82f03680ed4270fa7008f3be0", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000021f2f76af55060df2a0fba013d4dd9d9f8ab2dea", + "0x00000000000000000000000071c7cbbf81ed4b571ace4ed3d1480453faf82ee1" + ], + "data": "0x00000000000000000000000000000000000000000000559cc592cfc03332c9f5", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x133", + "removed": false + }, + { + "address": "0xbc2ecbe2195114b82f03680ed4270fa7008f3be0", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x00000000000000000000000021f2f76af55060df2a0fba013d4dd9d9f8ab2dea", + "0x000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffa511c5b23133bf3a360a", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x134", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000071c7cbbf81ed4b571ace4ed3d1480453faf82ee1", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" + ], + "data": "0x00000000000000000000000000000000000000000000000006f4cc3821aa2000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x135", + "removed": false + }, + { + "address": "0x71c7cbbf81ed4b571ace4ed3d1480453faf82ee1", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000044fc279a9fb0403a48aa200000000000000000000000000000000000000000000000052f9e728c85ce95c", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x136", + "removed": false + }, + { + "address": "0x71c7cbbf81ed4b571ace4ed3d1480453faf82ee1", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" + ], + "data": "0x00000000000000000000000000000000000000000000559cc592cfc03332c9f50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f4cc3821aa2000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x137", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af", + "0x000000000000000000000000000000fee13a103a10d593b9ae06b3e05f2e7e1c" + ], + "data": "0x000000000000000000000000000000000000000000000000000470de4df82000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x138", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x00000000000000000000000066a9893cc07d91d95644aedd05d03f95e1dba8af" + ], + "data": "0x00000000000000000000000000000000000000000000000006f05b59d3b20000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x139", + "removed": false + } + ], + "logsBloom": "0x00200000000000000000000080000000000000000000000000100000000080000000000000080000000000040000000002000000880000000000000000200000000000000000000000004808004000200000000000400800000000000000000000000000000000200000008000000000000000000000040200000010040000000000000000000000000000020020000000000000000000080000004000004000020000000000000000020000000000000000000000000000000000000000000000000002000000000000000000000000000400000000001000000002000000000010200000000000000000004000000020000000000000800000000000000000", + "status": "0x1", + "to": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af", + "transactionHash": "0x199159c1b79070e2b1aa4201c8f61902df872abd99e569714d55fcfd8db9f929", + "transactionIndex": "0x59", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xb887d7", + "effectiveGasPrice": "0x2824a9d9", + "from": "0x930a46935042d35cc4393ff5f9b9bf9f2e3afd09", + "gasUsed": "0x5cbf1", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x5b14db1af7101ec1dafa828eaa774e13161efb53", + "transactionHash": "0xb903093efd1a45a2869f91f0169c3113ccc44fc9a70268af055392b6f4a6dece", + "transactionIndex": "0x5a", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xb8d9df", + "effectiveGasPrice": "0x71ebcf1c", + "from": "0x25b944a4dc81077e483bf59f618974e177627593", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x910ac37b45718838b35ba569dd926904274b682e", + "transactionHash": "0x18663217afb22c7ab2918545d837875df6d98706ac7227a8a08b4b0cc850c9d8", + "transactionIndex": "0x5b", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xb98df0", + "effectiveGasPrice": "0x47094b30", + "from": "0x896cdba2559cfdeec8a2356bb36c92fab614a4cd", + "gasUsed": "0xb411", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000896cdba2559cfdeec8a2356bb36c92fab614a4cd", + "0x0000000000000000000000009ba8071de40b13c3b4807c57c2b554fb3b9e0b2b" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000004c4b400", + "blockNumber": "0x161bd0f", + "transactionHash": "0x889b19404fe581f2b094bc9d159d0d1599870ad9cf39cb330e68a2777fb91d5e", + "transactionIndex": "0x5c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13a", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000002000000000000000000000040000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000008000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000400", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x889b19404fe581f2b094bc9d159d0d1599870ad9cf39cb330e68a2777fb91d5e", + "transactionIndex": "0x5c", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xba4201", + "effectiveGasPrice": "0x47094b30", + "from": "0x9b03a65530b8f9584beabe8c6d64d3d4bcadd3af", + "gasUsed": "0xb411", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009b03a65530b8f9584beabe8c6d64d3d4bcadd3af", + "0x00000000000000000000000054519c53bc21bc7739464850268f1b7d2b3317a0" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000048c10", + "blockNumber": "0x161bd0f", + "transactionHash": "0x0f6c5aec4835ffbfab3db13c5a4fdd44e96b7185df23626e8ea1cba5739c6649", + "transactionIndex": "0x5d", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13b", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000100002000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000080000000000000000000000000000080000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x0f6c5aec4835ffbfab3db13c5a4fdd44e96b7185df23626e8ea1cba5739c6649", + "transactionIndex": "0x5d", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xbe80c7", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x7a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e", + "gasUsed": "0x43ec6", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", + "0x000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f4" + ], + "data": "0x0000000000000000000000000000000000000000000000000000e35fa931a000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13c", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f4", + "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45" + ], + "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13d", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640", + "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000fe8a6", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13e", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f4", + "0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640" + ], + "data": "0x0000000000000000000000000000000000000000000000000000e35fa931a000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x13f", + "removed": false + }, + { + "address": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45", + "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0175a0000000000000000000000000000000000000000000000000000e35fa931a0000000000000000000000000000000000000003c792226649b937aad676540d94000000000000000000000000000000000000000000000000051b0f41e60a05433000000000000000000000000000000000000000000000000000000000002f1bd", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x140", + "removed": false + }, + { + "address": "0x2d5d7d31f671f86c782533cc367f14109a082712", + "topics": [ + "0x8c092067e86e85e8cfbaf187202ef580cdfd7ec37fbec89191607de73ca80005", + "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666", + "0xaacfff03944e6d066f4cb7307f4999b5d174d6a13a2ad4b768adb2d08a0effd6" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000fe8a600000000000000000000000000000000000000000000000000001526874aecb70000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e0000000000000000000000000000000000000000000000000000000000000009696d6d757461626c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a3078636531364636393337353532306162303133373763653742383866354241384334384638443636360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x141", + "removed": false + }, + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666", + "0x0000000000000000000000004f4495243837681061c4743b74b3eedf548d56a5" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000fe8a6", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x142", + "removed": false + }, + { + "address": "0x4f4495243837681061c4743b74b3eedf548d56a5", + "topics": [ + "0x7e50569d26be643bda7757722291ec66b1be66d8283474ae3fab5a98f878a7a2", + "0x000000000000000000000000ce16f69375520ab01377ce7b88f5ba8c48f8d666", + "0xaacfff03944e6d066f4cb7307f4999b5d174d6a13a2ad4b768adb2d08a0effd6" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000dc000000000000000000000000000000000000000000000000000000000000fe8a60000000000000000000000000000000000000000000000000000000000000009696d6d757461626c650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a307863653136463639333735353230616230313337376365374238386635424138433438463844363636000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c5000000000000000000000000000000000000000000000000000000000000000400000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000005a0000000000000000000000000000000000000000000000000000000000000072000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000ac000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000104414bf389000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f4052150000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d20000000000000000000000000000000000000000000000000000000000000064000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f400000000000000000000000000000000000000000000000000000198c7cbc2de00000000000000000000000000000000000000000000000000000000000fe77800000000000000000000000000000000000000000000000000000000000fc60c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000006c28aef8977c9b773996d0e8376d2ee379446f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000104414bf3890000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d20000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d0000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000ad6cea45f98444a922a2b4fe96b8c90f0862d2f400000000000000000000000000000000000000000000000000000198c7cbc2e000000000000000000000000000000000000000000000000000000000000fe7d80000000000000000000000000000000000000000000000001a80ae654dafe92d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000006de8acc0d406837030ce4dd28e7c08c5a96a30d2000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000010000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000242e1a7d4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000003a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000007a88038cbfd8e54ef2ccd8dd4a7191bd5f1df68e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000000c509b86228a6c23bbba872ac4345d5a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x143", + "removed": false + } + ], + "logsBloom": "0x20000000010000000001000800002000000000000000000000000000040000008000000000000000000008000000000002000001080020000000000000200000000000000000008808000008000000000000000000000000000000208000000000000000000000000080000100000000800000000000000000000010000800000000000000000000000820000000000000000001018000000000000000010000020000000000200000000000002000000000000000000000002001100008000000000002000000000200000200000000000000000000000004000100000000000010200000000000000010000200480000100000000000400000000000000000", + "status": "0x1", + "to": "0xce16f69375520ab01377ce7b88f5ba8c48f8d666", + "transactionHash": "0x076ced5833f4b4de4e1d770f44f985c2f304eb89e781d28537c235199e2fc95a", + "transactionIndex": "0x5e", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xbed2cf", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionHash": "0x09bee4a68da1a0248abcb8b48ef7bd15bdf4c81e2183503d5d4de68b5f558a08", + "transactionIndex": "0x5f", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xc47fc1", + "effectiveGasPrice": "0x2816807a", + "from": "0xc7899ff6a3ac2ff59261bd960a8c880df06e1041", + "gasUsed": "0x5acf2", + "logs": [ + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x000000000000000000000000511cc062c4257664427654b232dc636a424e4382" + ], + "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f000000000000000000000000000000000000000000000000000000003ca941af000000000000000000000000000000000000000000000037483622c9d325650b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000003881e77fb200aff93fadf0e7d0ddd256e609485aef90e429d48208cc1919083cc7511cc062c4257664427654b232dc636a424e438268a5e7ab0000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x144", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xa07a543ab8a018198e99ca0184c93fe9050a79400a0a723441f84de1d972cc17", + "0x000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758" + ], + "data": "0x0000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933000000000000000000000000e28b3b32b6c345a34ff64674606124dd5aceca30000000000000000000000000000000000000000000adb53acfa41aee12000000000000000000000000000000000000000000000000000008b50bca4aa290943d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000381b2cf1821e81b1a7ad30ec63cdc0107313fd569fa8eb3c68f223785113c9aeecec9b9e8e450dbde63e00f6469ed43b3be463b75868a5d5420000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x145", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000511cc062c4257664427654b232dc636a424e4382", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000000000000003ca941af", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x146", + "removed": false + }, + { + "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000adb53acfa41aee12000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x147", + "removed": false + }, + { + "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758", + "0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffff8cf68ca7a4acef3cb4b947e", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x148", + "removed": false + }, + { + "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000a43fe16908251ee70ef74718545e4fe6c5ccec9f" + ], + "data": "0x000000000000000000000000000000000000000000ada5ce2d2204f16ed6fa30", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x149", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x0000000000000000000000006982508145454ce325ddbe47a25d4ec3d2311933" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14a", + "removed": false + }, + { + "address": "0xe28b3b32b6c345a34ff64674606124dd5aceca30", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa8", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x000000000000000000000000000000000000000000000008b50bca4aa29034cb", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14b", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000a43fe16908251ee70ef74718545e4fe6c5ccec9f", + "0x0000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa8" + ], + "data": "0x0000000000000000000000000000000000000000000000000724b20e5c768e2f", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14c", + "removed": false + }, + { + "address": "0xa43fe16908251ee70ef74718545e4fe6c5ccec9f", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x0000000000000000000000000000000000000023920207f1f45bc6639b70e2cc000000000000000000000000000000000000000000000177b1611de185bbb111", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14d", + "removed": false + }, + { + "address": "0xa43fe16908251ee70ef74718545e4fe6c5ccec9f", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x000000000000000000000000f3fe03cd60d1f138ebc106ce9575475100ebfc9a", + "0x0000000000000000000000006c063a6e8cd45869b5eb75291e65a3de298f3aa8" + ], + "data": "0x000000000000000000000000000000000000000000ada5ce2d2204f16ed6fa30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000724b20e5c768e2f", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14e", + "removed": false + }, + { + "address": "0x6c063a6e8cd45869b5eb75291e65a3de298f3aa8", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x000000000000000000000000f3fe03cd60d1f138ebc106ce9575475100ebfc9a", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41" + ], + "data": "0x0000000000000000000000000000000000000000000000000724b20e5c768e2ffffffffffffffffffffffffffffffffffffffffffffffff74af435b55d6fcb350000000000000000000000000000000000000011adffe438c588bbe56c140b16000000000000000000000000000000000000000000000174ccea0b5ceceed3d2000000000000000000000000000000000000000000000000000000000000e06b", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x14f", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0xed99827efb37016f2275f98c4bcf71c7551c75d59e9b450f79fa32e60be672c2", + "0x000000000000000000000000f3fe03cd60d1f138ebc106ce9575475100ebfc9a" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000d41aacaf00000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x150", + "removed": false + }, + { + "address": "0x6b175474e89094c44da98b954eedeac495271d0f", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000511cc062c4257664427654b232dc636a424e4382" + ], + "data": "0x000000000000000000000000000000000000000000000037483622c9d325650b", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x151", + "removed": false + }, + { + "address": "0xe28b3b32b6c345a34ff64674606124dd5aceca30", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41", + "0x000000000000000000000000ec9b9e8e450dbde63e00f6469ed43b3be463b758" + ], + "data": "0x000000000000000000000000000000000000000000000008b50bca4aa290943d", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x152", + "removed": false + }, + { + "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "topics": [ + "0x40338ce1a7c49204f0099533b1e9a7ee0a3d261f84974ab7af36105b8c4e9db4", + "0x000000000000000000000000c7899ff6a3ac2ff59261bd960a8c880df06e1041" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x153", + "removed": false + } + ], + "logsBloom": "0x00201000000000000000000080001800004000400000000000000000000000000000002000400000000000000000010102000040080020000000000000200000010400080000000800000008000001200000000104000000000000000000000010000000000000000000c000020000800000004020000000100040100008000000000000000080000080000400000400000000004000000800000042001000000200046000000000000000800080000200000000000000000100000000000000010000120008000c0000000000000000000022000000001000000000000000001010200001000000020002000400000000004000000000000000000000900000", + "status": "0x1", + "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", + "transactionHash": "0xa952fb1cfa78c3a43e83a2f907b4139e485cf656abfc9cb4963eed391adba259", + "transactionIndex": "0x60", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xc5211e", + "effectiveGasPrice": "0x479285d4", + "from": "0x2f091462316f650ca24dea5b8e90f9657af6915d", + "gasUsed": "0xa15d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000002f091462316f650ca24dea5b8e90f9657af6915d", + "0x000000000000000000000000559432e18b281731c054cd703d4b49872be4ed53" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000021ca5c30", + "blockNumber": "0x161bd0f", + "transactionHash": "0xbfbbdc3e43e8e7a9629b2d3e2a7c5c998451d31542b92bab59a2de5aeefefea9", + "transactionIndex": "0x61", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x154", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000010000080000000000000000000000000200000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000001000000000000000000000000000000000002000000000000008000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0xbfbbdc3e43e8e7a9629b2d3e2a7c5c998451d31542b92bab59a2de5aeefefea9", + "transactionIndex": "0x61", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xc8db11", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x317d2da746d1360f4c113e7962a33394db2a1a4e", + "gasUsed": "0x3b9f3", + "logs": [ + { + "address": "0x1958853a8be062dc4f401750eb233f5850f0d0d2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x0000000000000000000000000000000000000000000000004563918244f40000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "transactionIndex": "0x62", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x155", + "removed": false + }, + { + "address": "0xbb2ea70c9e858123480642cf96acbcce1372dce1", + "topics": [ + "0x61ed099e74a97a1d7f8bb0952a88ca8b7b8ebd00c126ea04671f92a81213318a" + ], + "data": "0x000000000000000000000000173272739bd7aa6e4e214714048a9fe69945305900000000000000000000000000000000000000000000000000000fa021204bb5", + "blockNumber": "0x161bd0f", + "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "transactionIndex": "0x62", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x156", + "removed": false + }, + { + "address": "0xbb2ea70c9e858123480642cf96acbcce1372dce1", + "topics": [ + "0x07ea52d82345d6e838192107d8fd7123d9c2ec8e916cd0aad13fd2b60db24644" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000589dedbd617e0cbcb916a9223f4d1300c294236b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000001cc3b0e39e4", + "blockNumber": "0x161bd0f", + "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "transactionIndex": "0x62", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x157", + "removed": false + }, + { + "address": "0x1a44076050125825900e736c501f859c50fe728c", + "topics": [ + "0x1ab700d4ced0c005b164c0f789fd09fcbb0156d4c2041b8a3bfbcd961cd1567f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000120000000000000000000000000bb2ea70c9e858123480642cf96acbcce1372dce10000000000000000000000000000000000000000000000000000000000000099010000000000000001000075950000000000000000000000001958853a8be062dc4f401750eb233f5850f0d0d200007596000000000000000000000000b4818bb69478730ef4e33cc068dd94278e2766cbab4f14bf5341bfe02be7a2603f8daf3e28b48cfb62732673ce438829f67016e7000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e00000000004c4b4000000000000000000000000000000000000000000000000000000000000000000000000000001600030100110100000000000000000000000000030d4000000000000000000000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "transactionIndex": "0x62", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x158", + "removed": false + }, + { + "address": "0x1958853a8be062dc4f401750eb233f5850f0d0d2", + "topics": [ + "0x85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a", + "0xab4f14bf5341bfe02be7a2603f8daf3e28b48cfb62732673ce438829f67016e7", + "0x000000000000000000000000317d2da746d1360f4c113e7962a33394db2a1a4e" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000075960000000000000000000000000000000000000000000000004563918244f400000000000000000000000000000000000000000000000000004563918244f40000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "transactionIndex": "0x62", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x159", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000200000000000000000000000000000000000001000000400000000000000000000000000000000000000000000000000500000010000000042000000000000000008000000000000200000000000000000000000000000000000020000008000000000000800000000000010000000000010000000000000000000000000001000080000000000000000000000000000004000000000000000008000000000100000000000000000000000400000000440000000000800000002000000000000000080000000000000000400000000000000000020000000040000000000000000000100002000000000018000000000000000000000", + "status": "0x1", + "to": "0x1958853a8be062dc4f401750eb233f5850f0d0d2", + "transactionHash": "0x929d916e4e493d4b8785a4636eb4615c2cf28d95f3a47a9559ba1bee8285f12a", + "transactionIndex": "0x62", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xc92d19", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionHash": "0x854a247acfde5a5346f137d645aafce7266476f1ca57bbc56ff4d451686990d1", + "transactionIndex": "0x63", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xc9bd28", + "effectiveGasPrice": "0x47094b30", + "from": "0x3908f89b206af269cd10520a39683d3e9b709a0c", + "gasUsed": "0x900f", + "logs": [ + { + "address": "0x699ccf919c1dfdfa4c374292f42cadc9899bf753", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000003908f89b206af269cd10520a39683d3e9b709a0c", + "0x0000000000000000000000008fa4103428737fc17ba6566285492b19f4a42c33" + ], + "data": "0x00000000000000000000000000000000000000000000069420a776ba5cab0000", + "blockNumber": "0x161bd0f", + "transactionHash": "0x34c4b2585880bbbfd2bd41d407ab91c487ab3ea1d740bb10051a2d94eae979b7", + "transactionIndex": "0x64", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15a", + "removed": false + } + ], + "logsBloom": "0x04000000000000000002000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000408000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000008", + "status": "0x1", + "to": "0x699ccf919c1dfdfa4c374292f42cadc9899bf753", + "transactionHash": "0x34c4b2585880bbbfd2bd41d407ab91c487ab3ea1d740bb10051a2d94eae979b7", + "transactionIndex": "0x64", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xca0f30", + "effectiveGasPrice": "0x5f6b1b44", + "from": "0x0d0707963952f2fba59dd06f2b425ace40b492fe", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x5c872bc1cdb41bc1467960e2c3b59a09cc93da05", + "transactionHash": "0x881dde515af25e26e76a9f4fd56f92172e576868db77f8d0edb19546d055a6ff", + "transactionIndex": "0x65", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xcac34d", + "effectiveGasPrice": "0x3b9aca00", + "from": "0xfb19ffd1ff9316b7f5bba076ef4b78e4bbedf4e1", + "gasUsed": "0xb41d", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000fb19ffd1ff9316b7f5bba076ef4b78e4bbedf4e1", + "0x000000000000000000000000e76392fd5215a3e6bd794d7a31a3c8294c1eb18c" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000006359235", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7603ff263930ac4706dfc190bfa96bba194ec04561f686515626428442cfc3bc", + "transactionIndex": "0x66", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15b", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000004000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000010000000000000000000000000108000000000000000000000000080000000080000000000000000000000000000000000000002000000020000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x7603ff263930ac4706dfc190bfa96bba194ec04561f686515626428442cfc3bc", + "transactionIndex": "0x66", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xcbba2a", + "effectiveGasPrice": "0x9aa98162", + "from": "0x3814e8720156e8259aeef2803eb3fbb3cdddc549", + "gasUsed": "0xf6dd", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000003814e8720156e8259aeef2803eb3fbb3cdddc549", + "0x0000000000000000000000008ab12dde8535538cc1759f011ebb45856f0a8acb" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000aba9500", + "blockNumber": "0x161bd0f", + "transactionHash": "0x7e99dbbc2acdc35b5ba4d4d460849fb57bb4fe43e62d47b34c18a922e5b9afac", + "transactionIndex": "0x67", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15c", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000400000000000000002008000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x7e99dbbc2acdc35b5ba4d4d460849fb57bb4fe43e62d47b34c18a922e5b9afac", + "transactionIndex": "0x67", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xcd68cf", + "effectiveGasPrice": "0x2c523e86", + "from": "0x2a008273cf9c4276e3f85311ebab58b7b74fa1bb", + "gasUsed": "0x1aea5", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x00000000000000000000000000000000000000000000000000740c1005bbd2a5", + "blockNumber": "0x161bd0f", + "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "transactionIndex": "0x68", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15d", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x0000000000000000000000006f9f435fa79e30e34f7679211904fcabc87ad924" + ], + "data": "0x00000000000000000000000000000000000000000000000000740c1005bbd2a5", + "blockNumber": "0x161bd0f", + "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "transactionIndex": "0x68", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15e", + "removed": false + }, + { + "address": "0xe0265346277ad201609308b506e901b520150a08", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000006f9f435fa79e30e34f7679211904fcabc87ad924", + "0x0000000000000000000000002a008273cf9c4276e3f85311ebab58b7b74fa1bb" + ], + "data": "0x000000000000000000000000000000000000000000011f871af89a7da64b75da", + "blockNumber": "0x161bd0f", + "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "transactionIndex": "0x68", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x15f", + "removed": false + }, + { + "address": "0x6f9f435fa79e30e34f7679211904fcabc87ad924", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x00000000000000000000000000000000000000000000000015bef6901d4bd0c500000000000000000000000000000000000000000034ea453b357851b039241d", + "blockNumber": "0x161bd0f", + "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "transactionIndex": "0x68", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x160", + "removed": false + }, + { + "address": "0x6f9f435fa79e30e34f7679211904fcabc87ad924", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x0000000000000000000000002a008273cf9c4276e3f85311ebab58b7b74fa1bb" + ], + "data": "0x00000000000000000000000000000000000000000000000000740c1005bbd2a500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011f871af89a7da64b75da", + "blockNumber": "0x161bd0f", + "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "transactionIndex": "0x68", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x161", + "removed": false + } + ], + "logsBloom": "0x00200000000000000000000080000000000000000000000000011000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000008000000a00000000000000000000000008001000010000000000000000000000008000000000000000000000000000010000000000000000000000000004000000000000000000001000000080000004000000000000000000000000004000000000000000000000000000000000000000000000000000002000000000004004000080000000000000000001000000000100020200000200000000000000000000000000000000000000000400000000001000000", + "status": "0x1", + "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d", + "transactionHash": "0xe84c6eb07c05b5741670c5f30aabd59a9d4da7b81069378f8db67644d00f99e6", + "transactionIndex": "0x68", + "type": "0x0" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xcdbad7", + "effectiveGasPrice": "0x4c762185", + "from": "0xd04691fada4d78e62f74d51b77c3fab05dd5e656", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xc00313c93a1dc6befa0d4b50697ec1ef11b5967e", + "transactionHash": "0x9cc229f51b3398a71370ab7ee4d775f9fc617c40c9379b786e03070e52fcd357", + "transactionIndex": "0x69", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd07cbf", + "effectiveGasPrice": "0x2884b194", + "from": "0x051ad444b2c9a1678c7f4632885851c0c08285fd", + "gasUsed": "0x2c1e8", + "logs": [ + { + "address": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", + "topics": [ + "0x7724394874fdd8ad13292ec739b441f85c6559f10dc4141b8d4c0fa4cbf55bdb" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000019afd", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x162", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000051ad444b2c9a1678c7f4632885851c0c08285fd", + "0x0000000000000000000000002cffed5d56eb6a17662756ca0fdf350e732c9818" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000a601", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x163", + "removed": false + }, + { + "address": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", + "topics": [ + "0x0d3b1268ca3dbb6d3d8a0ea35f44f8f9d58cf578d732680b71b6904fb2733e0d" + ], + "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000000000a6010000000000000000000000002cffed5d56eb6a17662756ca0fdf350e732c9818", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x164", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", + "0x0000000000000000000000002e1dee213ba8d7af0934c49a23187babeaca8764" + ], + "data": "0x000000000000000000000000000000000000000000000000000439148a7bd691", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x165", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000051ad444b2c9a1678c7f4632885851c0c08285fd", + "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000004ba428", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x166", + "removed": false + }, + { + "address": "0xc7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x0000000000000000000000002e1dee213ba8d7af0934c49a23187babeaca8764", + "0x0000000000000000000000002e1dee213ba8d7af0934c49a23187babeaca8764" + ], + "data": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffbc6eb7584296f00000000000000000000000000000000000000000000000000000000004ba428000000000000000000000000000000000000000000043b663cda5f92b0d8ecb80000000000000000000000000000000000000000000000000f7eaa8ee01d5748fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e3c", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x167", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000002e1dee213ba8d7af0934c49a23187babeaca8764", + "0x0000000000000000000000005703b683c7f928b721ca95da988d73a3299d4757" + ], + "data": "0x000000000000000000000000000000000000000000000000000439148a7bd691", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x168", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65", + "0x0000000000000000000000005703b683c7f928b721ca95da988d73a3299d4757" + ], + "data": "0x000000000000000000000000000000000000000000000000000439148a7bd691", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x169", + "removed": false + }, + { + "address": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", + "topics": [ + "0x1bb43f2da90e35f7b0cf38521ca95a49e68eb42fac49924930a5bd73cdf7576c" + ], + "data": "0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000051ad444b2c9a1678c7f4632885851c0c08285fd00000000000000000000000000000000000000000000000000000000004ba428000000000000000000000000000000000000000000000000000439148a7bd691", + "blockNumber": "0x161bd0f", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16a", + "removed": false + } + ], + "logsBloom": "0x000000000000000000010000000000001000000000000000000000000000000000000100000000000200000000000100020080800800200000800040000800008000000000000008200000088000000000000010004000000800040000000000000020000020000000000000000000000000000000000400000000100008000000002000000000000000000000002000000000000000000000000000001000000000000000000000000000800000001800000000000040000000000000000000000000022000080000000000000008000000000200000000000000020000000a0000200000000000000000000000000000000000000000000000000010000000", + "status": "0x1", + "to": "0x2e1dee213ba8d7af0934c49a23187babeaca8764", + "transactionHash": "0xb9254e48c65024653a86032ce4a41636e86c7bf83014e48b869f4b4955841702", + "transactionIndex": "0x6a", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd4b07b", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x1e8b52ea011a678a888cf7b4e7aa667170f192ca", + "gasUsed": "0x433bc", + "logs": [ + { + "address": "0x129e5915326ed86f831b0e035acda34b209633d5", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001e8b52ea011a678a888cf7b4e7aa667170f192ca", + "0x000000000000000000000000129e5915326ed86f831b0e035acda34b209633d5" + ], + "data": "0x00000000000000000000000000000000000000000000000000000246139ca800", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16b", + "removed": false + }, + { + "address": "0x129e5915326ed86f831b0e035acda34b209633d5", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000001e8b52ea011a678a888cf7b4e7aa667170f192ca", + "0x0000000000000000000000009c76dd6b5b200690fc9fb061a99b0a48e9a94325" + ], + "data": "0x00000000000000000000000000000000000000000000000000002b3374a07800", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16c", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009c76dd6b5b200690fc9fb061a99b0a48e9a94325", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" + ], + "data": "0x0000000000000000000000000000000000000000000000000182bb0b0a0f607a", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16d", + "removed": false + }, + { + "address": "0x9c76dd6b5b200690fc9fb061a99b0a48e9a94325", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x000000000000000000000000000000000000000000000000008502946d70b5db000000000000000000000000000000000000000000000004a8c264fb9fab40bd", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16e", + "removed": false + }, + { + "address": "0x9c76dd6b5b200690fc9fb061a99b0a48e9a94325", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" + ], + "data": "0x00000000000000000000000000000000000000000000000000002b3374a07800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000182bb0b0a0f607a", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x16f", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001b0da2b6", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x170", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x000000000000000000000000c7bbec68d12a0d1830360f8ec58fa599ba1b0e9b" + ], + "data": "0x0000000000000000000000000000000000000000000000000182bb0b0a0f607a", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x171", + "removed": false + }, + { + "address": "0xc7bbec68d12a0d1830360f8ec58fa599ba1b0e9b", + "topics": [ + "0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f" + ], + "data": "0x0000000000000000000000000000000000000000000000000182bb0b0a0f607affffffffffffffffffffffffffffffffffffffffffffffffffffffffe4f25d4a000000000000000000000000000000000000000000043b647de338a817656f730000000000000000000000000000000000000000000000000f7eaa8ee01d5748fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0e3c", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x172", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x000000000000000000000000ad01c20d5886137e056775af56915de824c8fce5" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000307abd", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x173", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000df31a70a21a1931e02033dbba7deace6c45cfd0f", + "0x0000000000000000000000001e8b52ea011a678a888cf7b4e7aa667170f192ca" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001add27f9", + "blockNumber": "0x161bd0f", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x174", + "removed": false + } + ], + "logsBloom": "0x8020000000000000000000008000000000000000000000000000000000000000000000000000000000000000000001000300000008006000008000000000002000000000000000080000000800000020000000100000000000004000000000000001000000200000000000002000000000000000000000000008001000080000000000000000000000000101000000000000000000000008000000400090400000001000000000000000008002000002080000000002000000000000000000000000000200000800000000000000080c080000000000001000000800000000020000200000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x0000000000001ff3684f28c67538d4d072c22734", + "transactionHash": "0xce3cd430b98efb93ee79ba0e04cec13aea6100a3e8d28c53a6f8d9db987e31b9", + "transactionIndex": "0x6b", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd6e3d6", + "effectiveGasPrice": "0x9b04d3d4", + "from": "0x97fe8b7ba616945b5031e146229b9e727830f131", + "gasUsed": "0x2335b", + "logs": [ + { + "address": "0xbe5f6232d8ed5a4057f33a28915bc1a8ab01335b", + "topics": [ + "0x44ecfc706d63e347851cfd40acfa6cf2e3a41faa3e8b460210c03938e84a91ad" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", + "transactionIndex": "0x6c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x175", + "removed": false + }, + { + "address": "0xbe5f6232d8ed5a4057f33a28915bc1a8ab01335b", + "topics": [ + "0x6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "blockNumber": "0x161bd0f", + "transactionHash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", + "transactionIndex": "0x6c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x176", + "removed": false + }, + { + "address": "0xbe5f6232d8ed5a4057f33a28915bc1a8ab01335b", + "topics": [ + "0x4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb", + "0x000000000000000000000000864baa13e01d8f9e26549dc91b458cd15e34eb7c", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000097fe8b7ba616945b5031e146229b9e727830f131" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001", + "blockNumber": "0x161bd0f", + "transactionHash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", + "transactionIndex": "0x6c", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x177", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000080000000000000010000000000000000000004000000000000000000000000000000000000040000000000080000000020000000000000000000800000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000008000000000000000000000000000000040000000000000000004000000000000000000000000000400000000001000000000000020000000000000000000000000000000000000100000000000002000000002004000", + "status": "0x1", + "to": "0x864baa13e01d8f9e26549dc91b458cd15e34eb7c", + "transactionHash": "0x51fdae21c680f10c68da05bb364e8a8e5e29ba09da79df1c5af9d02780e2e8e7", + "transactionIndex": "0x6c", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd735de", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xc6093fd9cc143f9f058938868b2df2daf9a91d28", + "transactionHash": "0xd36572df8b853ee2b6cab95a988ca7065b03d00fc8b2c1411301cadf49343092", + "transactionIndex": "0x6d", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd861b8", + "effectiveGasPrice": "0x2dde0f0d", + "from": "0xe93685f3bba03016f02bd1828badd6195988d950", + "gasUsed": "0x12bda", + "logs": [ + { + "address": "0x1a44076050125825900e736c501f859c50fe728c", + "topics": [ + "0x0d87345f3d1c929caba93e1c3821b54ff3512e12b66aa3cfe54b6bcbc17e59b4" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000007683000000000000000000000000cab283e4bb527aa9b157bae7180fef19e2aaa71a0000000000000000000000000000000000000000000000000000000000001110000000000000000000000000f2b2bbdc9975cf680324de62a30a31bc3ab8a4d536e7b0f7494af14e92055752ad7efac6d5d62065da6b772b7bb98d7127e4495d", + "blockNumber": "0x161bd0f", + "transactionHash": "0x5cbc170410348d6fdc873705eff0fe6e22f82115fa66a032cacaf14b00d3fd73", + "transactionIndex": "0x6e", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x178", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000", + "status": "0x1", + "to": "0xc02ab410f0734efa3f14628780e6e695156024c2", + "transactionHash": "0x5cbc170410348d6fdc873705eff0fe6e22f82115fa66a032cacaf14b00d3fd73", + "transactionIndex": "0x6e", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd95895", + "effectiveGasPrice": "0x6b55cbd4", + "from": "0xe6767c337d50e51241257059d58508fd8fba91a1", + "gasUsed": "0xf6dd", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000e6767c337d50e51241257059d58508fd8fba91a1", + "0x0000000000000000000000003732c23fe8422fa1dc7759e2f34515de41bf268b" + ], + "data": "0x000000000000000000000000000000000000000000000000000000001c9c3800", + "blockNumber": "0x161bd0f", + "transactionHash": "0x885b570f51838e21d3ee6f7635b9019859c9dc284b61a10e597428521779a514", + "transactionIndex": "0x6f", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x179", + "removed": false + } + ], + "logsBloom": "0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800010000000000000000000000000000100000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000010800000000000000000000000000000000000000000000000000000000000000000100000400000000000000000000080000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x885b570f51838e21d3ee6f7635b9019859c9dc284b61a10e597428521779a514", + "transactionIndex": "0x6f", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd9aa9d", + "effectiveGasPrice": "0x47094b30", + "from": "0x4cf7d1f09d73d05538b701c2ccd071298569b18b", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x4cf7d1f09d73d05538b701c2ccd071298569b18b", + "transactionHash": "0x6dc512f88c8907da511443523a0ce1f9d83b9590fb25470b40a5c7dabecb9cb0", + "transactionIndex": "0x70", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xd9fca5", + "effectiveGasPrice": "0x47094b30", + "from": "0x1a6bf7734a87c9fb327162eed8cff7b1982e7e5e", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdc3a5dcd4d2299bdd8a9345169029088f4b0e0c2", + "transactionHash": "0x293dfc29e6d24ec039d5da89eca31f7874ab0f73485242b24472991bbc4a81ac", + "transactionIndex": "0x71", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xda4ead", + "effectiveGasPrice": "0x47094b30", + "from": "0xa2d9d10acece8512a99a3048c88fa274ba59e2cf", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xf051193691fc11600e1228ca27ede7663c4de189", + "transactionHash": "0x3199c465ca839a4561420e9ae7a22247c0faf5f3b8b22675e9d280871b018d5e", + "transactionIndex": "0x72", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xdaa0b5", + "effectiveGasPrice": "0x47094b30", + "from": "0xb0bfdffa1c53912c9d6a1f7250d2bac0f6fb0373", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x02ca45d242a1e2cd80f860a265e42a048c67b712", + "transactionHash": "0x6cb4300ccb17a849f57e47bf2e950fc2ff88e1536d19e413b23ff3c321c11e8c", + "transactionIndex": "0x73", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xdaf2bd", + "effectiveGasPrice": "0x47094b30", + "from": "0x9502954fba7ca26abdefc7ef4c9dd59b8b54f03f", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x9502954fba7ca26abdefc7ef4c9dd59b8b54f03f", + "transactionHash": "0x5dd9f8f7e9b3c71c4e4c00191f358b82e5438d0ee6bbbe841d945089e2df8cba", + "transactionIndex": "0x74", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xde6533", + "effectiveGasPrice": "0x26ca3054", + "from": "0x173449e23b2768042a7acbbf00a2b32d262b3a4b", + "gasUsed": "0x37276", + "logs": [ + { + "address": "0x0000000071727de22e5e9d8baf0edac6f37da032", + "topics": [ + "0xbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972" + ], + "data": "0x", + "blockNumber": "0x161bd0f", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17a", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7", + "0x0000000000000000000000007d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000180d14", + "blockNumber": "0x161bd0f", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17b", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7", + "0x0000000000000000000000000e8495d95270c688473e88f02bb3101a3f7cec73" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000f60c480", + "blockNumber": "0x161bd0f", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17c", + "removed": false + }, + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7", + "0x000000000000000000000000480a825bed6cdba9da81cc01faacd12166761dec" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000e98ea", + "blockNumber": "0x161bd0f", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17d", + "removed": false + }, + { + "address": "0x7d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac", + "topics": [ + "0xcb8558ee10b3b50e33dd316be9756fc9f947c4637d5d9c4f66f02ddc3ba4e38f" + ], + "data": "0x8bf3446f7338755e02cef70ec4a972cd5780c19ab71c20ea59bef3fb7a1c7633000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000e98ea", + "blockNumber": "0x161bd0f", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17e", + "removed": false + }, + { + "address": "0x0000000071727de22e5e9d8baf0edac6f37da032", + "topics": [ + "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f", + "0x8bf3446f7338755e02cef70ec4a972cd5780c19ab71c20ea59bef3fb7a1c7633", + "0x000000000000000000000000f49178c8e3cd7cfc025f68fc80c9775d979ac3a7", + "0x0000000000000000000000007d3201fa7a85c0a5f9fa1c0c6b9d0b784368d2ac" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000967696a805dc000000000000000000000000000000000000000000000000000000000003d1fb", + "blockNumber": "0x161bd0f", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x17f", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000010000000000000000000000000008000000000004000000010000018000200000000000000000020000200000000000000000000000000008000000020040000000000000000000000000000000000000000800000000010000000000000000000000000000000010000000000040000000010000000000000000000000000000000000000000800000100000020000020020001000400480000000000200000000000000000002000000000000010002000000400011000000000000000000000000004000000000000400000010000000000000000000000000000000000000000800000000000000001080", + "status": "0x1", + "to": "0x0000000071727de22e5e9d8baf0edac6f37da032", + "transactionHash": "0x319241083fbbdfd49447eca57464f0d22354bf4e0b14185af1db71dad3699358", + "transactionIndex": "0x75", + "type": "0x4" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xdf5867", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0xfcc46ea12aec1f62c3d58803fe94aa8f768f2636", + "gasUsed": "0xf334", + "logs": [ + { + "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000fcc46ea12aec1f62c3d58803fe94aa8f768f2636", + "0x000000000000000000000000552549d39c22c1e55e4f91318d41f5422d204c4e" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000017d7840", + "blockNumber": "0x161bd0f", + "transactionHash": "0x971833c61c63e80e90a69edadce6cf052ed708c0b89a52714e3de65174e501d2", + "transactionIndex": "0x76", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x180", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000008000008000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000010800000080000000000000000000000000200000000000000000000000000000000000000000000000000000000002000000001000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000", + "status": "0x1", + "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "transactionHash": "0x971833c61c63e80e90a69edadce6cf052ed708c0b89a52714e3de65174e501d2", + "transactionIndex": "0x76", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xe03c90", + "effectiveGasPrice": "0x6458e75e", + "from": "0x52f1e1001c28f6807530470b67a83a348040e31b", + "gasUsed": "0xe429", + "logs": [ + { + "address": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x00000000000000000000000052f1e1001c28f6807530470b67a83a348040e31b", + "0x00000000000000000000000043e19182b2f68d8a83d56a7304665ce0ea3fb3e3" + ], + "data": "0x000000000000000000000000000000000000000000000000000000002e4686e2", + "blockNumber": "0x161bd0f", + "transactionHash": "0x9ea42c0b70a8feb646683ef29551a4f1e35aa5c52ff4e92d41885fddc062eee3", + "transactionIndex": "0x77", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x181", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000400000040000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000002000010000000000000000002000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0xdac17f958d2ee523a2206206994597c13d831ec7", + "transactionHash": "0x9ea42c0b70a8feb646683ef29551a4f1e35aa5c52ff4e92d41885fddc062eee3", + "transactionIndex": "0x77", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xe08e98", + "effectiveGasPrice": "0x419ca4d4", + "from": "0x242ad3fac0e6820f50ce520117fe8774f21b5f9f", + "gasUsed": "0x5208", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x094d77550b654f1fceb33f405ae0415c4cbcb0f1", + "transactionHash": "0xa7e4c653d8b4852c0fc96106be40980b66a3bb81a9730f4c5bdd8010851faabd", + "transactionIndex": "0x78", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xe317d0", + "effectiveGasPrice": "0x5f6a09d4", + "from": "0x9f256a5703a493cac86a09fa84473517ace6ca81", + "gasUsed": "0x28938", + "logs": [ + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d" + ], + "data": "0x000000000000000000000000000000000000000000000000006983fe1dd44000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "transactionIndex": "0x79", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x182", + "removed": false + }, + { + "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x000000000000000000000000b6cec3a5828923385bcdedf12044f1c98bd729ac" + ], + "data": "0x000000000000000000000000000000000000000000000000006983fe1dd44000", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "transactionIndex": "0x79", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x183", + "removed": false + }, + { + "address": "0xfa417cd491632620a582851b07abf7e3447bba71", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x000000000000000000000000b6cec3a5828923385bcdedf12044f1c98bd729ac", + "0x0000000000000000000000009f256a5703a493cac86a09fa84473517ace6ca81" + ], + "data": "0x0000000000000000000000000000000000000000000000000006badea95a749b", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "transactionIndex": "0x79", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x184", + "removed": false + }, + { + "address": "0xb6cec3a5828923385bcdedf12044f1c98bd729ac", + "topics": [ + "0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1" + ], + "data": "0x0000000000000000000000000000000000000000000000002acfedc0715b20fe00000000000000000000000000000000000000000000000002b6654bfd1fad09", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "transactionIndex": "0x79", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x185", + "removed": false + }, + { + "address": "0xb6cec3a5828923385bcdedf12044f1c98bd729ac", + "topics": [ + "0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822", + "0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d", + "0x0000000000000000000000009f256a5703a493cac86a09fa84473517ace6ca81" + ], + "data": "0x000000000000000000000000000000000000000000000000006983fe1dd44000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006badea95a749b", + "blockNumber": "0x161bd0f", + "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "transactionIndex": "0x79", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x186", + "removed": false + } + ], + "logsBloom": "0x00200000000000000000000080000000000002000000000000010000000000000000000000000000000010000000000442000000080000000000000000000000000000000000000000000008000000200000000000000000000000008000000000000000000000000000000000000000000828000000000800000010000000000000000000000000004000000000000000000001000000080000004000200010000000000000000000000000000000000000000040000000000000000000000000000002000000000000000000000000000000000000001000000000000020000000200000000000002000000000000000000000000000400000000000000000", + "status": "0x1", + "to": "0x055c48651015cf5b21599a4ded8c402fdc718058", + "transactionHash": "0xc68ff18171aa3f4a21462af5e370a7e4a4daf55fdd111ec4ffb45b4b64bc1185", + "transactionIndex": "0x79", + "type": "0x2" + }, + { + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "blockNumber": "0x161bd0f", + "contractAddress": null, + "cumulativeGasUsed": "0xe36e2f", + "effectiveGasPrice": "0x23cf3fd4", + "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97", + "gasUsed": "0x565f", + "logs": [ + { + "address": "0x388c818ca8b9251b393131c08a736a67ccb19297", + "topics": [ + "0x27f12abfe35860a9a927b465bb3d4a9c23c8428174b83f278fe45ed7b4da2662" + ], + "data": "0x000000000000000000000000000000000000000000000000012bf92aae0c2e70", + "blockNumber": "0x161bd0f", + "transactionHash": "0x2c522d01183e9ed70caaf75c940ba9908d573cfc9996b3e7adc90313798279c8", + "transactionIndex": "0x7a", + "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", + "logIndex": "0x187", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000100004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000", + "status": "0x1", + "to": "0x388c818ca8b9251b393131c08a736a67ccb19297", + "transactionHash": "0x2c522d01183e9ed70caaf75c940ba9908d573cfc9996b3e7adc90313798279c8", + "transactionIndex": "0x7a", + "type": "0x2" + } +] From 7a002c2da87fe707c49879f6a805bcac04dd6762 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 18 Sep 2025 09:32:06 +0000 Subject: [PATCH 152/273] revive: Fix alloy consensus features to compile tests Signed-off-by: Alexandru Vasile --- Cargo.lock | 10 +++------- substrate/frame/revive/Cargo.toml | 2 +- substrate/frame/revive/src/tests/block_hash.rs | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 32827d3d8521b..5f8cdc438e406 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -123,9 +123,9 @@ dependencies = [ "either", "k256", "once_cell", - "rand 0.8.5", "secp256k1 0.30.0", "serde", + "serde_with", "thiserror 2.0.12", ] @@ -1084,9 +1084,6 @@ name = "arrayvec" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -dependencies = [ - "serde", -] [[package]] name = "asn1-rs" @@ -5454,7 +5451,6 @@ dependencies = [ "ident_case", "proc-macro2 1.0.95", "quote 1.0.40", - "serde", "strsim", "syn 2.0.98", ] @@ -11116,7 +11112,9 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0418987d1aaed324d95b4beffc93635e19be965ed5d63ec07a35980fe3b71a4" dependencies = [ + "alloy-rlp", "cfg-if", + "proptest", "ruint", "serde", "smallvec", @@ -18147,7 +18145,6 @@ dependencies = [ "libc", "rand_chacha 0.3.1", "rand_core 0.6.4", - "serde", ] [[package]] @@ -21348,7 +21345,6 @@ dependencies = [ "bitcoin_hashes 0.14.0", "rand 0.8.5", "secp256k1-sys 0.10.1", - "serde", ] [[package]] diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index 63d82bcccac42..f677f337ea110 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -64,7 +64,7 @@ sp-version = { workspace = true } subxt-signer = { workspace = true, optional = true, features = ["unstable-eth"] } [dev-dependencies] -alloy-consensus = { workspace = true, features = ["serde"] } +alloy-consensus = { workspace = true, default-features = true } array-bytes = { workspace = true, default-features = true } assert_matches = { workspace = true } pretty_assertions = { workspace = true } diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index a5ac940a9e994..6814c5218eb45 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -141,7 +141,7 @@ fn events_are_captured() { TransactionSigned::Transaction4844Signed(Default::default()).signed_payload(), ]; let expected_tx_root = Block::compute_trie_root(&expected_payloads); - const EXPECTED_GAS: u64 = 6345452; + const EXPECTED_GAS: u64 = 6523515; let logs = vec![AlloyLog::new_unchecked( contract.0.into(), From 9b14b44b061ed50e26ec10e8cae5649c348b0a00 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 18 Sep 2025 09:35:49 +0000 Subject: [PATCH 153/273] revive: Remove alloy-rlp crate import Signed-off-by: Alexandru Vasile --- Cargo.lock | 1 - substrate/frame/revive/Cargo.toml | 1 - substrate/frame/revive/src/evm/block_hash.rs | 55 +++++++++++--------- 3 files changed, 29 insertions(+), 28 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5f8cdc438e406..34e90412fa004 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13138,7 +13138,6 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-core", - "alloy-rlp", "array-bytes 6.2.2", "assert_matches", "derive_more 0.99.17", diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index f677f337ea110..8f86ff260b094 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -19,7 +19,6 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] alloy-consensus = { workspace = true, default-features = false } alloy-core = { workspace = true, features = ["sol-types", "rlp"] } -alloy-rlp = { version = "0.3.12", default-features = false } codec = { features = ["derive", "max-encoded-len"], workspace = true } derive_more = { workspace = true, features = ["from", "try_into"] } environmental = { workspace = true } diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 6e74aa87ea1d4..330f728db4767 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -23,7 +23,10 @@ use crate::evm::{ use alloc::{vec, vec::Vec}; use alloy_consensus::private::alloy_trie::{HashBuilder, Nibbles}; -use alloy_core::primitives::{bytes::BufMut, B256}; +use alloy_core::{ + primitives::{bytes::BufMut, B256}, + rlp, +}; use codec::{Decode, Encode}; use frame_support::weights::Weight; use scale_info::TypeInfo; @@ -274,14 +277,14 @@ impl IncrementalHashBuilder { /// Add a new value to the hash builder. pub fn add_value(&mut self, value: Vec) { - let rlp_index = alloy_rlp::encode_fixed_size(&self.index); + let rlp_index = rlp::encode_fixed_size(&self.index); self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &value); if self.index == 0x7f { // Pushing the previous item since we are expecting the index // to be index + 1 in the sorted order. if let Some(encoded_value) = self.first_value.take() { - let rlp_index = alloy_rlp::encode_fixed_size(&0usize); + let rlp_index = rlp::encode_fixed_size(&0usize); self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); } @@ -296,7 +299,7 @@ impl IncrementalHashBuilder { // first value index is the last one in the sorted vector // by rlp encoding of the index. if let Some(encoded_value) = self.first_value.take() { - let rlp_index = alloy_rlp::encode_fixed_size(&0usize); + let rlp_index = rlp::encode_fixed_size(&0usize); self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); } @@ -413,24 +416,24 @@ impl AccumulateReceipt { for topic in topics { // Topics are represented by 32 bytes. However, their encoding // can produce different lengths depending on their value. - topics_len += alloy_rlp::Encodable::length(&topic.0); + topics_len += rlp::Encodable::length(&topic.0); } // Account for the size of the list header. - let topics_list_header_length = topics_len + alloy_rlp::length_of_length(topics_len); + let topics_list_header_length = topics_len + rlp::length_of_length(topics_len); // Compute the total payload length of the log. - let payload_length = alloy_rlp::Encodable::length(&contract.0) + - alloy_rlp::Encodable::length(&data) + + let payload_length = rlp::Encodable::length(&contract.0) + + rlp::Encodable::length(&data) + topics_list_header_length; - let header = alloy_rlp::Header { list: true, payload_length }; + let header = rlp::Header { list: true, payload_length }; header.encode(&mut self.encoding); - alloy_rlp::Encodable::encode(&contract.0, &mut self.encoding); + rlp::Encodable::encode(&contract.0, &mut self.encoding); // Encode the topics as a list - alloy_rlp::Header { list: true, payload_length: topics_len }.encode(&mut self.encoding); + rlp::Header { list: true, payload_length: topics_len }.encode(&mut self.encoding); for topic in topics { - alloy_rlp::Encodable::encode(&topic.0, &mut self.encoding); + rlp::Encodable::encode(&topic.0, &mut self.encoding); } - alloy_rlp::Encodable::encode(&data, &mut self.encoding); + rlp::Encodable::encode(&data, &mut self.encoding); } /// Finalize the accumulated receipt and return the RLP encoded bytes. @@ -442,23 +445,23 @@ impl AccumulateReceipt { transaction_type: Vec, ) -> Vec { let logs_length = encoded_logs.len(); - let list_header_length = logs_length + alloy_rlp::length_of_length(logs_length); + let list_header_length = logs_length + rlp::length_of_length(logs_length); - let header = alloy_rlp::Header { + let header = rlp::Header { list: true, - payload_length: alloy_rlp::Encodable::length(&status) + - alloy_rlp::Encodable::length(&gas) + - alloy_rlp::Encodable::length(&bloom.bloom) + + payload_length: rlp::Encodable::length(&status) + + rlp::Encodable::length(&gas) + + rlp::Encodable::length(&bloom.bloom) + list_header_length, }; let mut encoded = transaction_type; header.encode(&mut encoded); - alloy_rlp::Encodable::encode(&status, &mut encoded); - alloy_rlp::Encodable::encode(&gas, &mut encoded); - alloy_rlp::Encodable::encode(&bloom.bloom, &mut encoded); + rlp::Encodable::encode(&status, &mut encoded); + rlp::Encodable::encode(&gas, &mut encoded); + rlp::Encodable::encode(&bloom.bloom, &mut encoded); - let logs_header = alloy_rlp::Header { list: true, payload_length: logs_length }; + let logs_header = rlp::Header { list: true, payload_length: logs_length }; logs_header.encode(&mut encoded); encoded.extend(encoded_logs); @@ -683,7 +686,7 @@ mod test { for i in 0..items_len { let index = adjust_index_for_rlp(i, items_len); - let index_buffer = alloy_rlp::encode_fixed_size(&index); + let index_buffer = rlp::encode_fixed_size(&index); hb.add_leaf(Nibbles::unpack(&index_buffer), &encoded[index]); // Each mask in these vectors holds a u16. @@ -736,9 +739,9 @@ mod test { #[test] fn test_alloy_rlp_ordering_compatibility() { - let zero_encoded = alloy_rlp::encode_fixed_size(&0usize); - let max_single_byte = alloy_rlp::encode_fixed_size(&127usize); - let first_multi_byte = alloy_rlp::encode_fixed_size(&128usize); + let zero_encoded = rlp::encode_fixed_size(&0usize); + let max_single_byte = rlp::encode_fixed_size(&127usize); + let first_multi_byte = rlp::encode_fixed_size(&128usize); // Document the exact bytes we expect assert_eq!(zero_encoded.as_slice(), &[0x80]); // RLP encoding of 0 From c08e50557235323b5a074de242679bdf265a3db6 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 18 Sep 2025 09:41:23 +0000 Subject: [PATCH 154/273] revive/cargo: Add alloy trie as dependency Signed-off-by: Alexandru Vasile --- Cargo.lock | 1 + Cargo.toml | 1 + substrate/frame/revive/Cargo.toml | 1 + 3 files changed, 3 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 34e90412fa004..e550d05800763 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13138,6 +13138,7 @@ version = "0.1.0" dependencies = [ "alloy-consensus", "alloy-core", + "alloy-trie", "array-bytes 6.2.2", "assert_matches", "derive_more 0.99.17", diff --git a/Cargo.toml b/Cargo.toml index 28e75065e20cb..d75231ff3417d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -632,6 +632,7 @@ aes-gcm = { version = "0.10" } ahash = { version = "0.8.2" } alloy-consensus = { version = "1.0.24", default-features = false } alloy-core = { version = "1.1.0", default-features = false } +alloy-trie = { version = "0.9.1", default-features = false } always-assert = { version = "0.1" } anyhow = { version = "1.0.81", default-features = false } approx = { version = "0.5.1" } diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index 8f86ff260b094..a9931f96b30a7 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -19,6 +19,7 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] alloy-consensus = { workspace = true, default-features = false } alloy-core = { workspace = true, features = ["sol-types", "rlp"] } +alloy-trie = { workspace = true, default-features = false } codec = { features = ["derive", "max-encoded-len"], workspace = true } derive_more = { workspace = true, features = ["from", "try_into"] } environmental = { workspace = true } From 365b53f06d6338632552af40e78f6a09bc962e94 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 18 Sep 2025 09:44:49 +0000 Subject: [PATCH 155/273] revive: Use alloy-trie crate Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 21 +++++++------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 330f728db4767..0f1239767c0ea 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -22,11 +22,15 @@ use crate::evm::{ }; use alloc::{vec, vec::Vec}; -use alloy_consensus::private::alloy_trie::{HashBuilder, Nibbles}; use alloy_core::{ primitives::{bytes::BufMut, B256}, rlp, }; +use alloy_trie::{ + hash_builder::{HashBuilderValue, HashBuilderValueRef}, + nodes::RlpNode, + HashBuilder, Nibbles, TrieMask, +}; use codec::{Decode, Encode}; use frame_support::weights::Weight; use scale_info::TypeInfo; @@ -196,12 +200,6 @@ impl IncrementalHashBuilder { /// Converts the intermediate representation back into a builder. pub fn from_ir(serialized: IncrementalHashBuilderIR) -> Self { - use alloy_consensus::private::alloy_trie::{ - hash_builder::{HashBuilderValue, HashBuilderValueRef}, - nodes::RlpNode, - TrieMask, - }; - let value = match serialized.value_type { 0 => { let mut value = HashBuilderValue::new(); @@ -209,9 +207,7 @@ impl IncrementalHashBuilder { value }, 1 => { - use alloy_core::primitives::B256; - - let buffer: B256 = serialized.builder_value[..] + let buffer: alloy_core::primitives::B256 = serialized.builder_value[..] .try_into() .expect("The buffer was serialized properly; qed"); let value_ref = HashBuilderValueRef::Hash(&buffer); @@ -253,8 +249,6 @@ impl IncrementalHashBuilder { /// Converts the builder into an intermediate representation. pub fn to_ir(self) -> IncrementalHashBuilderIR { - use alloy_consensus::private::alloy_trie::hash_builder::HashBuilderValueRef; - IncrementalHashBuilderIR { key: self.hash_builder.key.to_vec(), value_type: match self.hash_builder.value.as_ref() { @@ -662,14 +656,13 @@ impl EthereumBlockBuilder { mod test { use super::*; use crate::evm::{Block, ReceiptInfo}; + use alloy_trie::{HashBuilder, Nibbles}; /// Manual implementation of the Ethereum trie root computation. /// /// Given the RLP encoded values, the implementation adjusts the /// index to account for RLP encoding rules. fn manual_trie_root_compute(encoded: Vec>) -> H256 { - use alloy_consensus::private::alloy_trie::{HashBuilder, Nibbles}; - const fn adjust_index_for_rlp(i: usize, len: usize) -> usize { if i > 0x7f { i From e1317d3db68007313b8af77d1d9828407ead9156 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 18 Sep 2025 11:13:58 +0000 Subject: [PATCH 156/273] revive/tests: Simplify test assets Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rpc_types_gen.rs | 153 +----------------- 1 file changed, 7 insertions(+), 146 deletions(-) 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 132befef1c884..72a42ba762785 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -1104,7 +1104,7 @@ mod tests { } #[test] - fn test_hashes_or_transaction_infos_deserialization() { + fn test_transaction_hashes_deserialization() { let json = r#"["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"]"#; let result: HashesOrTransactionInfos = serde_json::from_str(json).unwrap(); assert!(matches!(result, HashesOrTransactionInfos::Hashes(_))); @@ -1116,156 +1116,17 @@ mod tests { let json = r#"[{"invalid": "data"}]"#; let result: Result = serde_json::from_str(json); assert!(result.is_err()); + } - // Real block representation. - let json = r#"[{ - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "from": "0x693ca5c6852a7d212dabc98b28e15257465c11f3", - "gas": "0x70bdb", - "gasPrice": "0x23cf3fd4", - "maxPriorityFeePerGas": "0x0", - "maxFeePerGas": "0x47ca802f", - "hash": "0xf6d8b07ddcf9a9d44c99c3665fd8c78f0ccd32506350ea5a9be1a68ba08bfd1f", - "input": "0x09c5eabe000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a90000cca0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000020000000000000000000000035c9618f600000000000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000002374fed200000000000000000001528fd550bc9a0000000000000000351e55bea6d51900dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000005c0c965e0000000000000000000000000000000000004c00000001000000000000000000000000000000000000002e24cd1d61a63f43658ed73b6ddeba00010002000100000000000000000000000000000000000000000000000039d622818daae62900006602000000000000000000002ff9e9686fa6ac00000000000000000000000000007f88ca000000000000000004caaa5ba8029c920300010000000000000000052319c661ddb06600000000000000000001528fd550bc9a0000000000000000005049606b67676100011c0c00000000000000002ff9e9686fa6ac000000000000000000000000035c16902c0000000000000000000000000000000200000000000000000000000000000002000073d53553ee552c1f2a9722e6407d43e41e19593f1cbc3d63300bfc6e48709f5b5ed98f228c70104e8c5d570b5608b47dca95ce6e371636965b6fdcab3613b6b65f061a44b7132011bb97a768bd238eacb62d7109920b000000000000000005246c56372e6d000000000000000000000000005c0c965e0000000000000000000000002374fed20000000000000000000000002374fed200011cc19621f6edbb9c02b95055b9f52eba0e2cb954c259f42aeca488551ea82b72f2504bbd310eb7145435e258751ab6854ab08b1630b89d6621dc1398c5d0c43b480000000000000000000000000000000000000000000000000000", - "nonce": "0x40c6", - "to": "0x0000000aa232009084bd71a5797d089aa4edfad4", - "transactionIndex": "0x0", - "value": "0x0", - "type": "0x2", - "accessList": [], - "chainId": "0x1", - "v": "0x1", - "yParity": "0x1", - "r": "0xb3e71bd95d73e965495b17647f5faaf058e13af7dd21f2af24eac16f7e9d06a1", - "s": "0x58775b0c15075fb7f007b88e88605ae5daec1ffbac2771076e081c8c2b005c20" - }]"#; - let result: HashesOrTransactionInfos = serde_json::from_str(json).unwrap(); - assert!(matches!(result, HashesOrTransactionInfos::TransactionInfos(_))); - - // Complex real block representation. + #[test] + fn test_transaction_infos_deserialization() { let json = r#"[{ - "accessList": [ - { + "accessList": [{ "address": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x650f69dead2eeee68214ac0bc29f23bc7e2f82c89293ef4b23dc1591bc737c67" - ] - }, - { - "address": "0x2c4c28ddbdac9c5e7055b4c863b72ea0149d8afe", - "storageKeys": [ - "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc", - "0x88d075c869ce192f20da9bfc0d2db81b73b4aa4af2ce17e52384cb021d06bd06" - ] - }, - { - "address": "0x9e7ae8bdba9aa346739792d219a808884996db67", - "storageKeys": [] - }, - { - "address": "0x800c32eaa2a6c93cf4cb51794450ed77fbfbb172", - "storageKeys": [] - }, - { - "address": "0x366aa56191e89d219ac36b33406fce85da1e7554", - "storageKeys": [] - }, - { - "address": "0xc92e8bdf79f0507f65a392b0ab4667716bfe0110", - "storageKeys": [] - }, - { - "address": "0xbbbbbbb520d69a9775e85b458c58c648259fad5f", - "storageKeys": [ - "0xa3b7a258ccc3c19490a94edab51a442dd2eeac4318bddede8cd899595d08f28a" + "0x0000000000000000000000000000000000000000000000000000000000000001" ] - }, - { - "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", - "storageKeys": [ - "0xb84fbcd09e20fa700ddef111765a21785d2290b3c7c8719a27e4b60b59126522", - "0xda591c30fe54b3edd3bcb5d0d916c5c472e3ad81645d0312a5e73f3708e8708b", - "0x0bc90c98aed598fd15d9075ded522981aeb2ee369c8117e46bd494dc17c29999", - "0xdbde769b5281dad4214cceeb1871ab281fb8fd2a4443141db1078642029ae248", - "0x9d98752c354deebddd53535455198eacf8cfb934237d3523207f70386be5e3dc" - ] - }, - { - "address": "0x60bf78233f48ec42ee3f101b9a05ec7878728006", - "storageKeys": [] - }, - { - "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x44624a8a323b583a84b5812478c554a5e284223b469e9f7039175023c0e54c3e", - "0x3ad18d7747f05925bebbb1df8860daa9cd402d902420f95ce10c49792803c3d6", - "0xcc236083e86ee3df0f3160002f381f1404bd44c4dec1322196f34d52548202f5", - "0x88afba62e6432e4d0a3e39a2be587d39c0b93368d66cedb0531bb5292040a552", - "0x10d6a54a4754c8869d6886b5f5d7fbfa5b4522237ea5c60d11bc4e7a1ff9390b", - "0x5cfccd15aa8eff180914a82b4caf3b39b3c62421a17404ea7a7d0c80fe766666", - "0x659f5b53123b3e7a886575e106645d4d7c5af120440f3f409542b3987fa1ea07", - "0x77d5014beb071d1c3dabbdbdba61f9a5cc3ffedca11c102ef7e2fae619d04e12", - "0x6e91f60197c982353033e86512311820683e018e0f39963c5d00c2c490bc45d3", - "0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3" - ] - }, - { - "address": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd", - "storageKeys": [] - }, - { - "address": "0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45", - "storageKeys": [] - }, - { - "address": "0x1346d1ee3fb1b65fecfcb65c149ca0702c286f53", - "storageKeys": [ - "0x0000000000000000000000000000000000000000000000000000000000000004", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0xc0d1c00078410fd0164580b0bad93d8a579580d06cf45fc2696a823498097b8a", - "0x0000000000000000000000000000000000000000000000000000000000000008", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ] - }, - { - "address": "0x899d774e0f8e14810d628db63e65dfacea682343", - "storageKeys": [ - "0xd64773870f40323194fda2d1773a23183ba723843a4aa8fb90d5eaf49c342f55", - "0xef7cf59cb40a7ae1b5e03b08af7ed07c83f41406ca13eaeed923c1f2fc8bbb2a", - "0x70f537a6c3c5e23e6deecb5baafd173071015ed695aa4c5ab2072a13f49234e4", - "0x8eb102192bd88c1782b7bb42421db4a5cda302102196a664e54ad03c03e19e1e" - ] - } - ], - "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", - "blockNumber": "0x161bd0f", - "chainId": "0x1", - "from": "0x6bf97afe2d2c790999cded2a8523009eb8a0823f", - "gas": "0x15d818", - "gasPrice": "0x65045d54", - "hash": "0xcd1ae1806eebfe30add1509b02c6f89e85865c7243450742ac86d402507667fd", - "input": "0x13d79a0b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000899d774e0f8e14810d628db63e65dfacea682343000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000899d774e0f8e14810d628db63e65dfacea6823430000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000a374bf76d4c42c8c8c00000000000000000000000000000000005cd4d66627e732daca892b48abb16400000000000000000000000000000000000000000000000006b06fe010314e3e0681000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554000000000000000000000000000000000000000000000000000000000bebc2000000000000000000000000000000000000000000000006ac7510475c22e2e3060000000000000000000000000000000000000000000000000000000068a5d4fb98b80e71c53f4b325f7753088b0d8ee55933f28c326277958a47f93bc54a095400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bebc200000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000414a13957a7c51fc3c1579a62c6160cf8fdf6cbdb186688f8a71c5085ce84e5cfe6cdd79d18f7e34d99a555aaf04a2c7787f9ad58f7bab041c8a94500b5f051a201b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000060bf78233f48ec42ee3f101b9a05ec78787280060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001e4760f2a0b000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000001388000000000000000000000000000000000000000000000000000000000000000e4d505accf000000000000000000000000366aa56191e89d219ac36b33406fce85da1e7554000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000720d7562000000000000000000000000000000000000000000000000000000000000001c219463f0255ddbed6266f8998f2c3d706c12eaf9de73c3b9f082b0a583fce90546a423f6fe118493aa5f9f57adfd73963e67bb89e6b20faf95821275b6b1607e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000340000000000000000000000000bbbbbbb520d69a9775e85b458c58c648259fad5f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000002644dcebcba0000000000000000000000000000000000000000000000000000000068a5ce680000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000067336cec42645f55059eff241cb02ea5cc52ff860000000000000000000000000000000000000000000000002d2e61b16af396e5000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000000000000000000000000000000000000bebc20000000000000000000000000000000000000000000000000000aa03ac85e927d00000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000000000000000006d9aa07971bc4e6731b47ed80776c5740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000419969dd20c05e5c0ca3d82fed5f912ae3678db7452adc4bffeb8ae098920f9e2a7804cfa5e1e42f85209c494f49914c39258c7668a992f59a01b2fe2d73d445771b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e404e45aaf000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000899d774e0f8e14810d628db63e65dfacea68234300000000000000000000000000000000000000000000000000000000000027100000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab4100000000000000000000000000000000000000000000000000aa03ac85e927d00000000000000000000000000000000000000000000006b3d96e8c277e88e06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ab81f1", - "maxFeePerGas": "0x76630193", - "maxPriorityFeePerGas": "0x41351d80", - "nonce": "0x18733", - "r": "0x6f71e41e8630b35dea48e57d1afd291651a5f15c338133c4976267ac00dd9e56", - "s": "0x45689f732b0a8e6be5bdf5a45db561f33cae7e976f8e8ebdbcbe2e51dc40869c", - "to": "0x9008d19f58aabd9ed0d60971565aa8510560ab41", - "transactionIndex": "0x7", - "type": "0x2", - "v": "0x0", - "value": "0x0", - "yParity": "0x0" - }]"#; - let result: HashesOrTransactionInfos = serde_json::from_str(json).unwrap(); - assert!(matches!(result, HashesOrTransactionInfos::TransactionInfos(_))); - - let json = r#"[{ - "accessList": [], + }], "blockHash": "0xfb8c980d1da1a75e68c2ea4d55cb88d62dedbbb5eaf69df8fe337e9f6922b73a", "blockNumber": "0x161bd0f", "chainId": "0x1", From 607740cd2045938b439114e939786b71c8890264 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 18 Sep 2025 11:20:49 +0000 Subject: [PATCH 157/273] runtime/tests: Bump the test limit of call size to 512 bytes Signed-off-by: Alexandru Vasile --- substrate/bin/node/runtime/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 90e4a069f72cc..587ba68879452 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -159,7 +159,7 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); /// Max size for serialized extrinsic params for this testing runtime. /// This is a quite arbitrary but empirically battle tested value. #[cfg(test)] -pub const CALL_PARAMS_MAX_SIZE: usize = 244; +pub const CALL_PARAMS_MAX_SIZE: usize = 512; /// Wasm binary unwrapped. If built with `SKIP_WASM_BUILD`, the function panics. #[cfg(feature = "std")] From e5b05f7c095245442683d062bd38303e86cfca2d Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Mon, 22 Sep 2025 10:12:52 +0200 Subject: [PATCH 158/273] Pallet revive benchmarks (#9496) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Enhanced finalize_block benchmarking with comprehensive weight accounting This PR introduces sophisticated benchmarking infrastructure for `pallet-revive`'s block finalization logic, implementing a multi-dimensional weight accounting system that accurately measures all costs associated with Ethereum-style block processing. ### Key Improvements **🏗️ Comprehensive benchmarking infrastructure** - **Two dedicated benchmark functions**: - `on_finalize(n, p)` - Measures the cost of adding transactions to a block during finalization - `on_finalize_per_event(e)` - Measures the per-event processing overhead during finalization - `on_finalize_per_event_data(d)` - Measures the per-byte event data processing overhead during finalization **⚖️ Multi-dimensional weight model** ```text Total Weight = fixed_part + Σ(per_tx_part(payload_i)) + Σ(per_event_part(data_len_j)) ``` - Fixed costs: Block initialization overhead, storage cleanup, base finalization logic - Per-transaction costs: Transaction processing, receipt generation, gas accounting - Per-event costs: Event filtering, log creation, bloom filter updates --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- Cargo.lock | 5458 +++++++++-------- substrate/frame/revive/Cargo.toml | 8 +- substrate/frame/revive/README.md | 36 + substrate/frame/revive/rpc/Cargo.toml | 3 + substrate/frame/revive/src/benchmarking.rs | 319 +- .../frame/revive/src/evm/api/rpc_types_gen.rs | 20 + substrate/frame/revive/src/evm/runtime.rs | 2 +- substrate/frame/revive/src/exec.rs | 2 +- substrate/frame/revive/src/lib.rs | 32 +- .../frame/revive/src/tests/block_hash.rs | 2 +- .../frame/revive/src/tests/sol/block_info.rs | 2 +- .../frame/revive/src/vm/runtime_costs.rs | 5 +- substrate/frame/revive/src/weights.rs | 139 + substrate/frame/revive/src/weights_utils.rs | 88 + 14 files changed, 3516 insertions(+), 2600 deletions(-) create mode 100644 substrate/frame/revive/src/weights_utils.rs diff --git a/Cargo.lock b/Cargo.lock index e550d05800763..82e5dde48e23b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,29 +12,20 @@ dependencies = [ "regex", ] -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli 0.28.0", -] - [[package]] name = "addr2line" version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli 0.31.1", + "gimli", ] [[package]] -name = "adler" -version = "1.0.2" +name = "adler2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "adler32" @@ -54,9 +45,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher 0.4.4", @@ -74,27 +65,27 @@ dependencies = [ "cipher 0.4.4", "ctr", "ghash", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.2.10", + "getrandom 0.3.3", "once_cell", "version_check", - "zerocopy 0.7.32", + "zerocopy", ] [[package]] name = "aho-corasick" -version = "1.0.4" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -107,9 +98,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-consensus" -version = "1.0.30" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d213580c17d239ae83c0d897ac3315db7cda83d2d4936a9823cc3517552f2e24" +checksum = "64a3bd0305a44fb457cae77de1e82856eadd42ea3cdf0dae29df32eb3b592979" dependencies = [ "alloy-eips", "alloy-primitives", @@ -126,14 +117,14 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-core" -version = "1.1.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3c5a28f166629752f2e7246b813cdea3243cca59aab2d4264b1fd68392c10eb" +checksum = "bfe6c56d58fbfa9f0f6299376e8ce33091fc6494239466814c3f54b55743cb09" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -144,9 +135,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "1.1.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18cc14d832bc3331ca22a1c7819de1ede99f58f61a7d123952af7dde8de124a6" +checksum = "a3f56873f3cac7a2c63d8e98a4314b8311aa96adb1a0f82ae923eb2119809d2c" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -155,7 +146,7 @@ dependencies = [ "itoa", "serde", "serde_json", - "winnow 0.7.10", + "winnow 0.7.13", ] [[package]] @@ -168,7 +159,7 @@ dependencies = [ "alloy-rlp", "crc", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -192,14 +183,14 @@ dependencies = [ "alloy-rlp", "k256", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-eips" -version = "1.0.30" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a15b4b0f6bab47aae017d52bb5a739bda381553c09fb9918b7172721ef5f5de" +checksum = "5cd749c57f38f8cbf433e651179fc5a676255e6b95044f467d49255d2b81725a" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -214,14 +205,14 @@ dependencies = [ "serde", "serde_with", "sha2 0.10.9", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "alloy-json-abi" -version = "1.1.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ccaa79753d7bf15f06399ea76922afbfaf8d18bebed9e8fc452984b4a90dcc9" +checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -240,15 +231,15 @@ dependencies = [ "cfg-if", "const-hex", "derive_more 2.0.1", - "foldhash", - "hashbrown 0.15.3", - "indexmap 2.9.0", + "foldhash 0.1.5", + "hashbrown 0.15.5", + "indexmap 2.11.3", "itoa", "k256", "keccak-asm", "paste", "proptest", - "rand 0.9.0", + "rand 0.9.2", "ruint", "rustc-hash 2.1.1", "serde", @@ -273,16 +264,16 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "alloy-serde" -version = "1.0.30" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b3b1078b8775077525bc9fe9f6577e815ceaecd6c412a4f3b4d8aa2836e8f6" +checksum = "04dfe41a47805a34b848c83448946ca96f3d36842e8c074bcf8fa0870e337d12" dependencies = [ "alloy-primitives", "serde", @@ -291,67 +282,67 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.1.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8612e0658964d616344f199ab251a49d48113992d81b92dab93ed855faa66383" +checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.1.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a384edac7283bc4c010a355fb648082860c04b826bb7a814c45263c8f304c74" +checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.9.0", + "indexmap 2.11.3", "proc-macro-error2", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.1.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd588c2d516da7deb421b8c166dc60b7ae31bca5beea29ab6621fcfa53d6ca5" +checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" dependencies = [ "const-hex", "dunce", "heck 0.5.0", "macro-string", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.1.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86ddeb70792c7ceaad23e57d52250107ebbb86733e52f4a25d8dc1abc931837" +checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" dependencies = [ "serde", - "winnow 0.7.10", + "winnow 0.7.13", ] [[package]] name = "alloy-sol-types" -version = "1.1.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "584cb97bfc5746cb9dcc4def77da11694b5d6d7339be91b7480a6a68dc129387" +checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -383,9 +374,9 @@ checksum = "e434e0917dce890f755ea774f59d6f12557bc8c7dd9fa06456af80cfe0f0181e" dependencies = [ "alloy-primitives", "darling 0.21.3", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -394,12 +385,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4436e0292ab1bb631b42973c61205e704475fe8126af845c8d923c0996328127" -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_system_properties" version = "0.1.5" @@ -417,57 +402,59 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.1" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "once_cell_polyfill", + "windows-sys 0.60.2", ] [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "approx" @@ -487,16 +474,16 @@ dependencies = [ "include_dir", "itertools 0.10.5", "proc-macro-error", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "arbitrary" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" dependencies = [ "derive_arbitrary", ] @@ -630,7 +617,7 @@ dependencies = [ "ark-std 0.5.0", "educe", "fnv", - "hashbrown 0.15.3", + "hashbrown 0.15.5", "itertools 0.13.0", "num-bigint", "num-integer", @@ -735,7 +722,7 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "zeroize", ] @@ -787,7 +774,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -810,7 +797,7 @@ checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ "num-bigint", "num-traits", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "syn 1.0.109", ] @@ -823,9 +810,9 @@ checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" dependencies = [ "num-bigint", "num-traits", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -866,7 +853,7 @@ dependencies = [ "ark-std 0.5.0", "educe", "fnv", - "hashbrown 0.15.3", + "hashbrown 0.15.5", "rayon", ] @@ -967,7 +954,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "syn 1.0.109", ] @@ -978,9 +965,9 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -1051,24 +1038,25 @@ dependencies = [ [[package]] name = "array-bytes" -version = "6.2.2" +version = "6.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f840fb7195bcfc5e17ea40c26e5ce6d5b9ce5d584466e17703209657e459ae0" +checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" [[package]] name = "array-bytes" -version = "9.1.2" +version = "9.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4449507daf4f07a8c8309e122d32a53d15c9f33e77eaf01c839fea42ccd4d673" +checksum = "27d55334c98d756b32dcceb60248647ab34f027690f87f9a362fd292676ee927" dependencies = [ "smallvec", + "thiserror 2.0.16", ] [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -1087,25 +1075,25 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "asn1-rs" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ad1373757efa0f70ec53939aabc7152e1591cb485208052993070ac8d2429d" +checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" dependencies = [ - "asn1-rs-derive 0.5.0", + "asn1-rs-derive 0.5.1", "asn1-rs-impl", "displaydoc", "nom 7.1.3", "num-traits", "rusticata-macros", - "thiserror 1.0.65", + "thiserror 1.0.69", "time", ] [[package]] name = "asn1-rs" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "607495ec7113b178fbba7a6166a27f99e774359ef4823adbefd756b5b81d7970" +checksum = "56624a96882bb8c26d61312ae18cb45868e5a9992ea73c58e45c3101e56a1e60" dependencies = [ "asn1-rs-derive 0.6.0", "asn1-rs-impl", @@ -1113,20 +1101,20 @@ dependencies = [ "nom 7.1.3", "num-traits", "rusticata-macros", - "thiserror 2.0.12", + "thiserror 2.0.16", "time", ] [[package]] name = "asn1-rs-derive" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1" +checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", - "synstructure 0.13.1", + "syn 2.0.106", + "synstructure 0.13.2", ] [[package]] @@ -1135,10 +1123,10 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", - "synstructure 0.13.1", + "syn 2.0.106", + "synstructure 0.13.2", ] [[package]] @@ -1147,20 +1135,21 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "assert_cmd" -version = "2.0.14" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" +checksum = "2bd389a4b2970a01282ee455294913c0a43724daedcd1a24c3eb0ec1c1320b66" dependencies = [ "anstyle", "bstr", "doc-comment", + "libc", "predicates", "predicates-core", "predicates-tree", @@ -1554,12 +1543,11 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f2776ead772134d55b62dd45e59a79e21612d85d0af729b8b7d3967d601a62a" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" dependencies = [ "concurrent-queue", - "event-listener 5.3.1", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -1567,99 +1555,69 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.5.1" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" +checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" dependencies = [ - "async-lock 2.8.0", "async-task", "concurrent-queue", - "fastrand 1.9.0", - "futures-lite 1.13.0", + "fastrand 2.3.0", + "futures-lite 2.6.1", + "pin-project-lite", "slab", ] [[package]] name = "async-fs" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" +checksum = "8034a681df4aed8b8edbd7fbe472401ecf009251c8b40556b304567052e294c5" dependencies = [ - "async-lock 3.4.0", + "async-lock", "blocking", - "futures-lite 2.3.0", + "futures-lite 2.6.1", ] [[package]] name = "async-global-executor" -version = "2.3.1" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" +checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" dependencies = [ - "async-channel 1.9.0", + "async-channel 2.5.0", "async-executor", - "async-io 1.13.0", - "async-lock 2.8.0", + "async-io", + "async-lock", "blocking", - "futures-lite 1.13.0", + "futures-lite 2.6.1", "once_cell", ] [[package]] name = "async-io" -version = "1.13.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" dependencies = [ - "async-lock 2.8.0", "autocfg", "cfg-if", "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.23", - "slab", - "socket2 0.4.9", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" -dependencies = [ - "async-lock 3.4.0", - "cfg-if", - "concurrent-queue", "futures-io", - "futures-lite 2.3.0", + "futures-lite 2.6.1", "parking", - "polling 3.4.0", - "rustix 0.38.42", + "polling 3.11.0", + "rustix 1.1.2", "slab", - "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", + "windows-sys 0.61.0", ] [[package]] name = "async-lock" -version = "3.4.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.1", "event-listener-strategy", "pin-project-lite", ] @@ -1670,65 +1628,64 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" dependencies = [ - "async-io 2.3.3", + "async-io", "blocking", - "futures-lite 2.3.0", + "futures-lite 2.6.1", ] [[package]] name = "async-process" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" +checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" dependencies = [ - "async-channel 2.3.0", - "async-io 2.3.3", - "async-lock 3.4.0", + "async-channel 2.5.0", + "async-io", + "async-lock", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener 5.3.1", - "futures-lite 2.3.0", - "rustix 0.38.42", - "tracing", + "event-listener 5.4.1", + "futures-lite 2.6.1", + "rustix 1.1.2", ] [[package]] name = "async-signal" -version = "0.2.9" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb3634b73397aa844481f814fad23bbf07fdb0eabec10f2eb95e58944b1ec32" +checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" dependencies = [ - "async-io 2.3.3", - "async-lock 3.4.0", + "async-io", + "async-lock", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.42", + "rustix 1.1.2", "signal-hook-registry", "slab", - "windows-sys 0.52.0", + "windows-sys 0.61.0", ] [[package]] name = "async-std" -version = "1.12.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" +checksum = "2c8e079a4ab67ae52b7403632e4618815d6db36d2a010cfe41b02c1b1578f93b" dependencies = [ "async-attributes", "async-channel 1.9.0", "async-global-executor", - "async-io 1.13.0", - "async-lock 2.8.0", + "async-io", + "async-lock", "crossbeam-utils", "futures-channel", "futures-core", "futures-io", - "futures-lite 1.13.0", - "gloo-timers", + "futures-lite 2.6.1", + "gloo-timers 0.3.0", "kv-log-macro", "log", "memchr", @@ -1741,9 +1698,9 @@ dependencies = [ [[package]] name = "async-stream" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" dependencies = [ "async-stream-impl", "futures-core", @@ -1752,13 +1709,13 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -1769,13 +1726,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -1821,9 +1778,9 @@ checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" [[package]] name = "atomic-waker" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "attohttpc" @@ -1831,7 +1788,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" dependencies = [ - "http 0.2.9", + "http 0.2.12", "log", "url", ] @@ -1852,16 +1809,16 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "average" @@ -1886,24 +1843,24 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.16", "instant", "rand 0.8.5", ] [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ - "addr2line 0.21.0", - "cc", + "addr2line", "cfg-if", "libc", "miniz_oxide", - "object 0.32.2", + "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -1924,12 +1881,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -1944,15 +1895,15 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" [[package]] name = "binary-merkle-tree" version = "13.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "hash-db", "log", "parity-scale-codec", @@ -1979,35 +1930,36 @@ dependencies = [ "cexpr", "clang-sys", "itertools 0.13.0", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "regex", "rustc-hash 2.1.1", "shlex", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "bip32" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa13fae8b6255872fd86f7faf4b41168661d7d78609f7bfe6771b85c6739a15b" +checksum = "db40d3dfbeab4e031d78c844642fa0caa0b0db11ce1607ac9d2986dff1405c69" dependencies = [ "bs58", "hmac 0.12.1", "k256", "rand_core 0.6.4", "ripemd", + "secp256k1 0.27.0", "sha2 0.10.9", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] [[package]] name = "bip39" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" +checksum = "43d193de1f7487df1914d3a568b772458861d33f9c54249612cc2893d6915054" dependencies = [ "bitcoin_hashes 0.13.0", "serde", @@ -2048,7 +2000,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" dependencies = [ "bitcoin-internals", - "hex-conservative 0.1.1", + "hex-conservative 0.1.2", ] [[package]] @@ -2122,37 +2074,37 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] name = "blake2s_simd" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" +checksum = "e90f7deecfac93095eb874a40febd69427776e24e1bd7f87f33ac62d6f0174df" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.2.6", + "constant_time_eq 0.3.1", ] [[package]] name = "blake3" -version = "1.5.4" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" +checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" dependencies = [ "arrayref", "arrayvec 0.7.6", "cc", "cfg-if", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -2175,17 +2127,15 @@ dependencies = [ [[package]] name = "blocking" -version = "1.3.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" dependencies = [ - "async-channel 1.9.0", - "async-lock 2.8.0", + "async-channel 2.5.0", "async-task", - "atomic-waker", - "fastrand 1.9.0", - "futures-lite 1.13.0", - "log", + "futures-io", + "futures-lite 2.6.1", + "piper", ] [[package]] @@ -2214,9 +2164,9 @@ dependencies = [ [[package]] name = "bounded-collections" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ed0a820ed50891d36358e997d27741a6142e382242df40ff01c89bcdcc7a2b" +checksum = "64ad8a0bed7827f0b07a5d23cec2e58cc02038a99e4ca81616cb2bb2025f804d" dependencies = [ "log", "parity-scale-codec", @@ -2234,7 +2184,7 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "schemars", + "schemars 1.0.4", "serde", ] @@ -2244,7 +2194,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68534a48cbf63a4b1323c433cf21238c9ec23711e0df13b08c33e5c2082663ce" dependencies = [ - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -2962,12 +2912,12 @@ dependencies = [ [[package]] name = "bstr" -version = "1.6.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", - "regex-automata 0.3.6", + "regex-automata", "serde", ] @@ -3003,9 +2953,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.13.1" +version = "1.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" [[package]] name = "byteorder" @@ -3024,12 +2974,11 @@ dependencies = [ [[package]] name = "bzip2-sys" -version = "0.1.11+1.0.8" +version = "0.1.13+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" dependencies = [ "cc", - "libc", "pkg-config", ] @@ -3060,18 +3009,18 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.6" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +checksum = "e1de8bc0aa9e9385ceb3bf0c152e3a9b9544f6c4a912c8ae504e80c1f0368603" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "cargo-platform" -version = "0.1.3" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] @@ -3084,10 +3033,10 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.18", + "semver 1.0.27", "serde", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -3104,9 +3053,9 @@ checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6" [[package]] name = "cc" -version = "1.2.35" +version = "1.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "590f9024a68a8c40351881787f1934dc11afd69090f5edb6831464694d836ea3" +checksum = "65193589c6404eb80b450d618eaf9a2cafaaafd57ecce47370519ef674a7bd44" dependencies = [ "find-msvc-tools", "jobserver", @@ -3131,18 +3080,18 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.5" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ "smallvec", ] [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "cfg_aliases" @@ -3213,24 +3162,23 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.40" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ - "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link", + "windows-link 0.2.0", ] [[package]] name = "ciborium" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" dependencies = [ "ciborium-io", "ciborium-ll", @@ -3239,15 +3187,15 @@ dependencies = [ [[package]] name = "ciborium-io" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" [[package]] name = "ciborium-ll" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" dependencies = [ "ciborium-io", "half", @@ -3274,7 +3222,7 @@ checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a" dependencies = [ "core2", "multibase", - "multihash 0.19.1", + "multihash 0.19.3", "unsigned-varint 0.8.0", ] @@ -3300,9 +3248,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.6.1" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", @@ -3310,9 +3258,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.13" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" dependencies = [ "clap_builder", "clap_derive", @@ -3320,9 +3268,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.13" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" dependencies = [ "anstream", "anstyle", @@ -3333,39 +3281,39 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.13" +version = "4.5.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa3c596da3cf0983427b0df0dba359df9182c13bd5b519b585a482b0c351f4e8" +checksum = "75bf0b32ad2e152de789bb635ea4d3078f6b838ad7974143e99b99f45a04af4a" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "cmd_lib" -version = "1.9.5" +version = "1.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "371c15a3c178d0117091bd84414545309ca979555b1aad573ef591ad58818d41" +checksum = "1af0f9b65935ff457da75535a6b6ff117ac858f03f71191188b3b696f90aec5a" dependencies = [ "cmd_lib_macros", - "env_logger 0.10.1", + "env_logger 0.10.2", "faccess", "lazy_static", "log", @@ -3374,25 +3322,24 @@ dependencies = [ [[package]] name = "cmd_lib_macros" -version = "1.9.5" +version = "1.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb844bd05be34d91eb67101329aeba9d3337094c04fd8507d821db7ebb488eaf" +checksum = "1e69eee115667ccda8b9ed7010bcf13356ad45269fc92aa78534890b42809a64" dependencies = [ "proc-macro-error2", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "coarsetime" -version = "0.1.23" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90d114103adbc625300f346d4d09dfb4ab1c4a8df6868435dd903392ecf4354" +checksum = "91849686042de1b41cd81490edc83afbcb0abe5a9b6f2c4114f23ce8cca1bcf4" dependencies = [ "libc", - "once_cell", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasix", "wasm-bindgen", ] @@ -3402,17 +3349,18 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "codespan-reporting" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ + "serde", "termcolor", - "unicode-width 0.1.10", + "unicode-width", ] [[package]] @@ -3536,9 +3484,9 @@ dependencies = [ [[package]] name = "color-eyre" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" +checksum = "e5920befb47832a6d61ee3a3a846565cfa39b331331e68a3b1d1116630f2f26d" dependencies = [ "backtrace", "eyre", @@ -3549,47 +3497,46 @@ dependencies = [ [[package]] name = "color-print" -version = "0.3.4" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2a5e6504ed8648554968650feecea00557a3476bc040d0ffc33080e66b646d0" +checksum = "3aa954171903797d5623e047d9ab69d91b493657917bdfb8c2c80ecaf9cdb6f4" dependencies = [ "color-print-proc-macro", ] [[package]] name = "color-print-proc-macro" -version = "0.3.4" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51beaa537d73d2d1ff34ee70bc095f170420ab2ec5d687ecd3ec2b0d092514b" +checksum = "692186b5ebe54007e45a59aea47ece9eb4108e141326c304cdc91699a7118a22" dependencies = [ "nom 7.1.3", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 1.0.109", + "syn 2.0.106", ] [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "colored" -version = "2.0.4" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" +checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ - "is-terminal", "lazy_static", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] name = "combine" -version = "4.6.6" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" dependencies = [ "bytes", "memchr", @@ -3597,12 +3544,12 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.1.4" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" +checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" dependencies = [ "unicode-segmentation", - "unicode-width 0.2.0", + "unicode-width", ] [[package]] @@ -3622,15 +3569,15 @@ dependencies = [ [[package]] name = "console" -version = "0.15.8" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" dependencies = [ "encode_unicode", - "lazy_static", "libc", - "unicode-width 0.1.10", - "windows-sys 0.52.0", + "once_cell", + "unicode-width", + "windows-sys 0.59.0", ] [[package]] @@ -3645,42 +3592,39 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.14.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" +checksum = "b6407bff74dea37e0fa3dc1c1c974e5d46405f0c987bf9997a0762adce71eda6" dependencies = [ "cfg-if", "cpufeatures", - "hex", "proptest", - "serde", + "serde_core", ] [[package]] name = "const-oid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-random" -version = "0.1.15" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" dependencies = [ "const-random-macro", - "proc-macro-hack", ] [[package]] name = "const-random-macro" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.16", "once_cell", - "proc-macro-hack", "tiny-keccak", ] @@ -3699,9 +3643,9 @@ version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "unicode-xid 0.2.4", + "unicode-xid 0.2.6", ] [[package]] @@ -3712,15 +3656,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" - -[[package]] -name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" @@ -3747,11 +3685,21 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core2" @@ -3961,9 +3909,9 @@ dependencies = [ [[package]] name = "cpp_demangle" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8227005286ec39567949b33df9896bcadfa6051bccca2488129f108ca23119" +checksum = "96e58d342ad113c2b878f16d5d034c03be492ae460cdbc02b7f0f2284d310c7d" dependencies = [ "cfg-if", ] @@ -3980,9 +3928,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -4039,8 +3987,8 @@ dependencies = [ "cranelift-control", "cranelift-entity", "cranelift-isle", - "gimli 0.31.1", - "hashbrown 0.15.3", + "gimli", + "hashbrown 0.15.5", "log", "pulley-interpreter", "regalloc2 0.12.2", @@ -4126,9 +4074,9 @@ checksum = "b530783809a55cb68d070e0de60cfbb3db0dc94c8850dd5725411422bedcf6bb" [[package]] name = "crc" -version = "3.2.1" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" dependencies = [ "crc-catalog", ] @@ -4141,9 +4089,9 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -4203,58 +4151,53 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", - "memoffset", - "scopeguard", ] [[package]] name = "crossbeam-queue" -version = "0.3.11" +version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-bigint" -version = "0.5.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.7", "rand_core 0.6.4", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] @@ -4286,7 +4229,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.7", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -4300,7 +4243,7 @@ dependencies = [ "generic-array 0.14.7", "poly1305", "salsa20", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] @@ -4315,19 +4258,20 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.4.5" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" +checksum = "881c5d0a13b2f1498e2306e82cbada78390e152d4b1378fb28a84f4dcd0dc4f3" dependencies = [ - "nix 0.29.0", - "windows-sys 0.59.0", + "dispatch", + "nix 0.30.1", + "windows-sys 0.61.0", ] [[package]] name = "cumulus-client-bootnodes" version = "0.1.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-channel 1.9.0", "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -4376,7 +4320,7 @@ dependencies = [ "cumulus-test-runtime", "futures", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", @@ -4409,7 +4353,7 @@ dependencies = [ "cumulus-test-relay-sproof-builder", "futures", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -4496,7 +4440,7 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -4508,7 +4452,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "futures", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-consensus", "sp-api", "sp-block-builder", @@ -4533,7 +4477,7 @@ dependencies = [ "futures", "futures-timer", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-parachain-primitives", @@ -4706,7 +4650,7 @@ dependencies = [ "frame-support", "frame-system", "futures", - "hashbrown 0.15.3", + "hashbrown 0.15.5", "hex-literal", "impl-trait-for-tuples", "log", @@ -4743,10 +4687,10 @@ dependencies = [ name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -4864,7 +4808,7 @@ dependencies = [ "sp-io", "sp-maybe-compressed-blob", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.20", ] [[package]] @@ -5006,14 +4950,14 @@ dependencies = [ "sp-blockchain", "sp-state-machine", "sp-version", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.7.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "cumulus-client-bootnodes", @@ -5277,7 +5221,7 @@ version = "0.1.0" dependencies = [ "anyhow", "cumulus-zombienet-sdk-helpers", - "env_logger 0.11.3", + "env_logger 0.11.8", "futures", "log", "polkadot-primitives", @@ -5294,24 +5238,24 @@ dependencies = [ [[package]] name = "curl" -version = "0.4.46" +version = "0.4.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6" +checksum = "79fc3b6dd0b87ba36e565715bf9a2ced221311db47bd18011676f24a6066edbc" dependencies = [ "curl-sys", "libc", "openssl-probe", "openssl-sys", "schannel", - "socket2 0.5.9", - "windows-sys 0.52.0", + "socket2 0.6.0", + "windows-sys 0.59.0", ] [[package]] name = "curl-sys" -version = "0.4.72+curl-8.6.0" +version = "0.4.83+curl-8.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea" +checksum = "5830daf304027db10c82632a464879d46a3f7c4ba17a31592657ad16c719b483" dependencies = [ "cc", "libc", @@ -5320,7 +5264,7 @@ dependencies = [ "openssl-sys", "pkg-config", "vcpkg", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5334,20 +5278,20 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version 0.4.0", - "subtle 2.5.0", + "rustc_version 0.4.1", + "subtle 2.6.1", "zeroize", ] [[package]] name = "curve25519-dalek-derive" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -5365,56 +5309,75 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.106" +version = "1.0.184" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28403c86fc49e3401fdf45499ba37fad6493d9329449d6449d7f0e10f4654d28" +checksum = "be4a0beb369d20d0de6aa7084ee523e4c9a31d7d8c61ba357b119bb574d7f368" dependencies = [ "cc", + "cxx-build", + "cxxbridge-cmd", "cxxbridge-flags", "cxxbridge-macro", + "foldhash 0.2.0", "link-cplusplus", ] [[package]] name = "cxx-build" -version = "1.0.106" +version = "1.0.184" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78da94fef01786dc3e0c76eafcd187abcaa9972c78e05ff4041e24fdf059c285" +checksum = "27d955b93e56a8e45cbc34df0ae920d8b5ad01541a4571222c78527c00e1a40a" dependencies = [ "cc", "codespan-reporting", - "once_cell", - "proc-macro2 1.0.95", + "indexmap 2.11.3", + "proc-macro2 1.0.101", "quote 1.0.40", "scratch", - "syn 2.0.98", + "syn 2.0.106", +] + +[[package]] +name = "cxxbridge-cmd" +version = "1.0.184" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "052f6c468d9dabdc2b8b228bcb2d7843b2bea0f3fb9c4e2c6ba5852574ec0150" +dependencies = [ + "clap", + "codespan-reporting", + "indexmap 2.11.3", + "proc-macro2 1.0.101", + "quote 1.0.40", + "syn 2.0.106", ] [[package]] name = "cxxbridge-flags" -version = "1.0.106" +version = "1.0.184" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2a6f5e1dfb4b34292ad4ea1facbfdaa1824705b231610087b00b17008641809" +checksum = "0fd145fa180986cb8002c63217d03b2c782fdcd5fa323adcd1f62d2d6ece6144" [[package]] name = "cxxbridge-macro" -version = "1.0.106" +version = "1.0.184" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c49547d73ba8dcfd4ad7325d64c6d5391ff4224d498fc39a6f3f49825a530d" +checksum = "02ac4a3bc4484a2daa0a8421c9588bd26522be9682a2fe02c7087bc4e8bc3c60" dependencies = [ - "proc-macro2 1.0.95", + "indexmap 2.11.3", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "rustversion", + "syn 2.0.106", ] [[package]] name = "darling" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "darling_core 0.20.10", - "darling_macro 0.20.10", + "darling_core 0.20.11", + "darling_macro 0.20.11", ] [[package]] @@ -5429,16 +5392,16 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "strsim", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -5449,21 +5412,21 @@ checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "strsim", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "darling_macro" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "darling_core 0.20.10", + "darling_core 0.20.11", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -5474,33 +5437,33 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "dashmap" -version = "5.5.1" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd72493923899c6f10c641bdbdeddc7183d6396641d99c1a0d1597f37f92e28" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", "hashbrown 0.14.5", "lock_api", "once_cell", - "parking_lot_core 0.9.8", + "parking_lot_core 0.9.11", ] [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "data-encoding-macro" -version = "0.1.13" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" +checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -5508,12 +5471,12 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.11" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" +checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 1.0.109", + "syn 2.0.106", ] [[package]] @@ -5527,9 +5490,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" dependencies = [ "const-oid", "pem-rfc7468", @@ -5542,7 +5505,7 @@ version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" dependencies = [ - "asn1-rs 0.6.1", + "asn1-rs 0.6.2", "displaydoc", "nom 7.1.3", "num-bigint", @@ -5556,7 +5519,7 @@ version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" dependencies = [ - "asn1-rs 0.7.0", + "asn1-rs 0.7.1", "displaydoc", "nom 7.1.3", "num-bigint", @@ -5566,9 +5529,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.11" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" dependencies = [ "powerfmt", "serde", @@ -5580,7 +5543,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "syn 1.0.109", ] @@ -5591,9 +5554,9 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -5602,33 +5565,33 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "derive_arbitrary" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" dependencies = [ "convert_case 0.4.0", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "rustc_version 0.4.0", - "syn 1.0.109", + "rustc_version 0.4.1", + "syn 2.0.106", ] [[package]] @@ -5655,9 +5618,9 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -5667,10 +5630,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ "convert_case 0.7.1", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", - "unicode-xid 0.2.4", + "syn 2.0.106", + "unicode-xid 0.2.6", ] [[package]] @@ -5712,7 +5675,7 @@ dependencies = [ "block-buffer 0.10.4", "const-oid", "crypto-common", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -5767,29 +5730,37 @@ dependencies = [ ] [[package]] -name = "displaydoc" -version = "0.2.4" +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "displaydoc" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "dissimilar" -version = "1.0.7" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632" +checksum = "8975ffdaa0ef3661bfe02dbdcc06c9f829dfafe6a3c474de366a8d5e44276921" [[package]] name = "dlmalloc" -version = "0.2.4" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "203540e710bfadb90e5e29930baf5d10270cec1f43ab34f46f78b147b2de715a" +checksum = "06cdfe340b16dd990c54cce79743613fa09fbb16774f33a77c9fd196f8f3fa30" dependencies = [ + "cfg-if", "libc", + "windows-sys 0.60.2", ] [[package]] @@ -5816,12 +5787,12 @@ dependencies = [ "common-path", "derive-syn-parse", "once_cell", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "regex", - "syn 2.0.98", + "syn 2.0.106", "termcolor", - "toml", + "toml 0.8.23", "walkdir", ] @@ -5839,9 +5810,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "drawille" @@ -5855,21 +5826,21 @@ dependencies = [ [[package]] name = "dtoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" +checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" [[package]] name = "dunce" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clonable" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" +checksum = "a36efbb9bfd58e1723780aa04b61aba95ace6a05d9ffabfdb0b43672552f0805" dependencies = [ "dyn-clonable-impl", "dyn-clone", @@ -5877,20 +5848,20 @@ dependencies = [ [[package]] name = "dyn-clonable-impl" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" +checksum = "7e8671d54058979a37a26f3511fbf8d198ba1aa35ffb202c42587d918d77213a" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 1.0.109", + "syn 2.0.106", ] [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "easy-cast" @@ -5903,9 +5874,9 @@ dependencies = [ [[package]] name = "ecdsa" -version = "0.16.8" +version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ "der", "digest 0.10.7", @@ -5918,9 +5889,9 @@ dependencies = [ [[package]] name = "ed25519" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ "pkcs8", "signature", @@ -5928,31 +5899,32 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ "curve25519-dalek", "ed25519", "rand_core 0.6.4", "serde", "sha2 0.10.9", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] [[package]] name = "ed25519-zebra" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +checksum = "0017d969298eec91e3db7a2985a8cab4df6341d86e6f3a6f5878b13fb7846bc9" dependencies = [ "curve25519-dalek", "ed25519", - "hashbrown 0.14.5", - "hex", + "hashbrown 0.15.5", + "pkcs8", "rand_core 0.6.4", "sha2 0.10.9", + "subtle 2.6.1", "zeroize", ] @@ -5963,9 +5935,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" dependencies = [ "enum-ordinalize", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -5993,7 +5965,7 @@ dependencies = [ "rand_core 0.6.4", "sec1", "serdect", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] @@ -6053,29 +6025,29 @@ dependencies = [ [[package]] name = "encode_unicode" -version = "0.3.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] [[package]] name = "enum-as-inner" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" dependencies = [ - "heck 0.4.1", - "proc-macro2 1.0.95", + "heck 0.5.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -6093,40 +6065,40 @@ version = "4.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "enumflags2" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" +checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" +checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "enumn" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" +checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -6151,9 +6123,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" dependencies = [ "humantime", "is-terminal", @@ -6164,14 +6136,14 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.3" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" +checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" dependencies = [ "anstream", "anstyle", "env_filter", - "humantime", + "jiff", "log", ] @@ -6183,9 +6155,9 @@ checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "equivocation-detector" @@ -6203,11 +6175,13 @@ dependencies = [ [[package]] name = "erased-serde" -version = "0.4.4" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b73807008a3c7f171cc40312f37d95ef0396e048b5848d775f54b1a4dd4a0d3" +checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" dependencies = [ "serde", + "serde_core", + "typeid", ] [[package]] @@ -6222,12 +6196,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.10" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -6297,9 +6271,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "5.3.1" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", @@ -6308,11 +6282,11 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" dependencies = [ - "event-listener 5.3.1", + "event-listener 5.4.1", "pin-project-lite", ] @@ -6335,16 +6309,16 @@ dependencies = [ "file-guard", "fs-err", "prettyplease", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "eyre" -version = "0.6.8" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" dependencies = [ "indenter", "once_cell", @@ -6374,8 +6348,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" dependencies = [ "bit-set", - "regex-automata 0.4.8", - "regex-syntax 0.8.5", + "regex-automata", + "regex-syntax", ] [[package]] @@ -6422,7 +6396,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec6f82451ff7f0568c6181287189126d492b5654e30a788add08027b6363d019" dependencies = [ "fatality-proc-macro", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -6432,11 +6406,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" dependencies = [ "expander", - "indexmap 2.9.0", - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "indexmap 2.11.3", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -6446,7 +6420,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" dependencies = [ "libc", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -6467,19 +6441,19 @@ dependencies = [ [[package]] name = "ff" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "rand_core 0.6.4", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] name = "fiat-crypto" -version = "0.2.5" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "file-guard" @@ -6493,14 +6467,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.22" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", - "windows-sys 0.48.0", + "libredox", + "windows-sys 0.60.2", ] [[package]] @@ -6515,7 +6489,7 @@ dependencies = [ "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "scale-info", ] @@ -6531,15 +6505,15 @@ dependencies = [ "futures", "log", "num-traits", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "relay-utils", ] [[package]] name = "find-msvc-tools" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e178e4fba8a2726903f6ba98a6d221e76f9c12c650d5dc0e6afdc50677b49650" +checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" [[package]] name = "findshlibs" @@ -6581,11 +6555,17 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" -version = "1.0.27" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", "miniz_oxide", @@ -6620,6 +6600,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "foreign-types" version = "0.3.2" @@ -6644,9 +6630,9 @@ dependencies = [ [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -6658,7 +6644,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" dependencies = [ "nonempty", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -6673,15 +6659,15 @@ dependencies = [ [[package]] name = "fragile" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" +checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" version = "28.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "frame-support", "frame-support-procedural", "frame-system", @@ -6711,7 +6697,7 @@ name = "frame-benchmarking-cli" version = "32.0.0" dependencies = [ "Inflector", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "chrono", "clap", "comfy-table", @@ -6768,7 +6754,7 @@ dependencies = [ "substrate-test-runtime", "subxt 0.43.0", "subxt-signer 0.43.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "thousands", "westend-runtime", ] @@ -6792,7 +6778,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7cb8796f93fa038f979a014234d632e9688a120e745f936e2635123c77537f7" dependencies = [ - "frame-metadata 20.0.0", + "frame-metadata 21.0.0", "parity-scale-codec", "scale-decode", "scale-info", @@ -6821,12 +6807,12 @@ dependencies = [ "frame-election-provider-support", "frame-support", "parity-scale-codec", - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", "scale-info", "sp-arithmetic", - "syn 2.0.98", + "syn 2.0.106", "trybuild", ] @@ -6866,7 +6852,7 @@ name = "frame-executive" version = "28.0.0" dependencies = [ "aquamarine", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "frame-support", "frame-system", "frame-try-runtime", @@ -6896,6 +6882,17 @@ dependencies = [ "serde", ] +[[package]] +name = "frame-metadata" +version = "21.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20dfd1d7eae1d94e32e869e2fb272d81f52dd8db57820a373adb83ea24d7d862" +dependencies = [ + "cfg-if", + "parity-scale-codec", + "scale-info", +] + [[package]] name = "frame-metadata" version = "23.0.0" @@ -6912,7 +6909,7 @@ dependencies = [ name = "frame-metadata-hash-extension" version = "0.1.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "const-hex", "docify", "frame-metadata 23.0.0", @@ -6945,7 +6942,7 @@ dependencies = [ "sp-runtime", "sp-statement-store", "tempfile", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.20", ] [[package]] @@ -6989,7 +6986,7 @@ version = "28.0.0" dependencies = [ "Inflector", "aquamarine", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "binary-merkle-tree", "bitflags 1.3.2", "docify", @@ -7046,7 +7043,7 @@ dependencies = [ "parity-scale-codec", "pretty_assertions", "proc-macro-warning", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "regex", "scale-info", @@ -7054,7 +7051,7 @@ dependencies = [ "sp-io", "sp-metadata-ir", "sp-runtime", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -7062,19 +7059,19 @@ name = "frame-support-procedural-tools" version = "10.0.0" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "frame-support-procedural-tools-derive" version = "11.0.0" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -7196,9 +7193,12 @@ dependencies = [ [[package]] name = "fs-err" -version = "2.9.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541" +checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" +dependencies = [ + "autocfg", +] [[package]] name = "fs2" @@ -7216,7 +7216,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.42", + "rustix 0.38.44", "windows-sys 0.48.0", ] @@ -7293,7 +7293,7 @@ checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", "lock_api", - "parking_lot 0.12.3", + "parking_lot 0.12.4", ] [[package]] @@ -7319,9 +7319,9 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.3.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ "fastrand 2.3.0", "futures-core", @@ -7336,9 +7336,9 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -7348,7 +7348,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.23.18", + "rustls 0.23.31", "rustls-pki-types", ] @@ -7370,7 +7370,7 @@ version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ - "gloo-timers", + "gloo-timers 0.2.6", "send_wrapper", ] @@ -7407,15 +7407,16 @@ dependencies = [ [[package]] name = "generator" -version = "0.8.4" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" dependencies = [ + "cc", "cfg-if", "libc", "log", "rustversion", - "windows 0.58.0", + "windows 0.61.3", ] [[package]] @@ -7450,25 +7451,29 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.13.3+wasi-0.2.2", - "windows-targets 0.52.6", + "r-efi", + "wasi 0.14.7+wasi-0.2.4", + "wasm-bindgen", ] [[package]] @@ -7483,20 +7488,14 @@ dependencies = [ [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "polyval", ] -[[package]] -name = "gimli" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" - [[package]] name = "gimli" version = "0.31.1" @@ -7504,15 +7503,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" dependencies = [ "fallible-iterator", - "indexmap 2.9.0", + "indexmap 2.11.3", "stable_deref_trait", ] [[package]] name = "git2" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fda788993cc341f69012feba8bf45c0ba4f3291fcc08e214b4d5a7332d88aff" +checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" dependencies = [ "bitflags 2.9.4", "libc", @@ -7523,9 +7522,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "glob-match" @@ -7543,12 +7542,12 @@ dependencies = [ "futures-core", "futures-sink", "gloo-utils", - "http 1.1.0", + "http 1.3.1", "js-sys", "pin-project", "serde", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -7566,6 +7565,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "gloo-utils" version = "0.2.0" @@ -7627,9 +7638,9 @@ dependencies = [ [[package]] name = "gmp-mpfr-sys" -version = "1.6.7" +version = "1.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a636fb6a653382a379ee1e5593dacdc628667994167024c143214cafd40c1a86" +checksum = "60f8970a75c006bb2f8ae79c6768a116dd215fa8346a87aed99bf9d82ca43394" dependencies = [ "libc", "windows-sys 0.60.2", @@ -7657,9 +7668,9 @@ dependencies = [ [[package]] name = "governor" -version = "0.6.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "821239e5672ff23e2a7060901fa622950bbd80b649cdaadd78d1c1767ed14eb4" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" dependencies = [ "cfg-if", "dashmap", @@ -7667,10 +7678,12 @@ dependencies = [ "futures-timer", "no-std-compat", "nonzero_ext", - "parking_lot 0.12.3", + "parking_lot 0.12.4", + "portable-atomic", "quanta", "rand 0.8.5", "smallvec", + "spinning_top", ] [[package]] @@ -7681,22 +7694,22 @@ checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", "rand_core 0.6.4", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] name = "h2" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" dependencies = [ "bytes", "fnv", "futures-core", "futures-sink", "futures-util", - "http 0.2.9", - "indexmap 2.9.0", + "http 0.2.12", + "indexmap 2.11.3", "slab", "tokio", "tokio-util", @@ -7705,17 +7718,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.5" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.1.0", - "indexmap 2.9.0", + "http 1.3.1", + "indexmap 2.11.3", "slab", "tokio", "tokio-util", @@ -7724,22 +7737,26 @@ dependencies = [ [[package]] name = "half" -version = "1.8.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" +checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" +dependencies = [ + "cfg-if", + "crunchy", +] [[package]] name = "handlebars" -version = "5.1.0" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab283476b99e66691dee3f1640fea91487a8d81f50fb5ecc75538f8f8879a1e4" +checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" dependencies = [ "log", "pest", "pest_derive", "serde", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -7785,13 +7802,13 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.5", "serde", ] @@ -7806,11 +7823,11 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" +checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.5", ] [[package]] @@ -7827,24 +7844,21 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.9" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] [[package]] name = "hex-conservative" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed443af458ccb6d81c1e7e661545f94d3176752fb1df2f543b902a1e0f51e2" +checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" [[package]] name = "hex-conservative" @@ -7863,9 +7877,9 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "hickory-proto" -version = "0.24.1" +version = "0.24.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512" +checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248" dependencies = [ "async-trait", "cfg-if", @@ -7874,12 +7888,12 @@ dependencies = [ "futures-channel", "futures-io", "futures-util", - "idna 0.4.0", + "idna", "ipnet", "once_cell", "rand 0.8.5", - "socket2 0.5.9", - "thiserror 1.0.65", + "socket2 0.5.10", + "thiserror 1.0.69", "tinyvec", "tokio", "tracing", @@ -7899,12 +7913,12 @@ dependencies = [ "futures-channel", "futures-io", "futures-util", - "idna 1.0.3", + "idna", "ipnet", "once_cell", - "rand 0.9.0", - "ring 0.17.8", - "thiserror 2.0.12", + "rand 0.9.2", + "ring 0.17.14", + "thiserror 2.0.16", "tinyvec", "tokio", "tracing", @@ -7913,21 +7927,21 @@ dependencies = [ [[package]] name = "hickory-resolver" -version = "0.24.2" +version = "0.24.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2e2aba9c389ce5267d31cf1e4dace82390ae276b0b364ea55630b1fa1b44b4" +checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e" dependencies = [ "cfg-if", "futures-util", - "hickory-proto 0.24.1", + "hickory-proto 0.24.4", "ipconfig", "lru-cache", "once_cell", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "resolv-conf", "smallvec", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -7944,11 +7958,11 @@ dependencies = [ "ipconfig", "moka", "once_cell", - "parking_lot 0.12.3", - "rand 0.9.0", + "parking_lot 0.12.4", + "rand 0.9.2", "resolv-conf", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", ] @@ -7994,41 +8008,31 @@ dependencies = [ [[package]] name = "home" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "honggfuzz" -version = "0.5.55" +version = "0.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "848e9c511092e0daa0a35a63e8e6e475a3e8f870741448b9f6028d69b142f18e" +checksum = "fc563d4f41b17364d5c48ded509f2bcf1c3f6ae9c7f203055b4a5c325072d57e" dependencies = [ "arbitrary", "lazy_static", - "memmap2 0.5.10", - "rustc_version 0.4.0", -] - -[[package]] -name = "hostname" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" -dependencies = [ - "libc", - "match_cfg", - "winapi", + "memmap2 0.9.8", + "rustc_version 0.4.1", + "semver 1.0.27", ] [[package]] name = "http" -version = "0.2.9" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -8037,9 +8041,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -8048,35 +8052,35 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http 0.2.9", + "http 0.2.12", "pin-project-lite", ] [[package]] name = "http-body" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http 1.3.1", ] [[package]] name = "http-body-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "futures-util", - "http 1.1.0", - "http-body 1.0.0", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", "pin-project-lite", ] @@ -8088,9 +8092,9 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "httparse" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -8100,9 +8104,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.1.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "humantime-serde" @@ -8116,22 +8120,22 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.29" +version = "0.14.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" dependencies = [ "bytes", "futures-channel", "futures-core", "futures-util", - "h2 0.3.26", - "http 0.2.9", - "http-body 0.4.5", + "h2 0.3.27", + "http 0.2.12", + "http-body 0.4.6", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.9", + "socket2 0.5.10", "tokio", "tower-service", "tracing", @@ -8140,20 +8144,22 @@ dependencies = [ [[package]] name = "hyper" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", - "h2 0.4.5", - "http 1.1.0", - "http-body 1.0.0", + "futures-core", + "h2 0.4.12", + "http 1.3.1", + "http-body 1.0.1", "httparse", "httpdate", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -8166,10 +8172,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http 0.2.9", - "hyper 0.14.29", + "http 0.2.12", + "hyper 0.14.32", "log", - "rustls 0.21.7", + "rustls 0.21.12", "rustls-native-certs 0.6.3", "tokio", "tokio-rustls 0.24.1", @@ -8177,22 +8183,21 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "futures-util", - "http 1.1.0", - "hyper 1.6.0", + "http 1.3.1", + "hyper 1.7.0", "hyper-util", "log", - "rustls 0.23.18", - "rustls-native-certs 0.8.0", + "rustls 0.23.31", + "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.3", "tower-service", - "webpki-roots 0.26.3", + "webpki-roots 1.0.2", ] [[package]] @@ -8201,7 +8206,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper 0.14.29", + "hyper 0.14.32", "pin-project-lite", "tokio", "tokio-io-timeout", @@ -8215,7 +8220,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "native-tls", "tokio", @@ -8225,35 +8230,43 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ + "base64 0.22.1", "bytes", "futures-channel", + "futures-core", "futures-util", - "http 1.1.0", - "http-body 1.0.0", - "hyper 1.6.0", + "http 1.3.1", + "http-body 1.0.1", + "hyper 1.7.0", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", - "socket2 0.5.9", + "socket2 0.6.0", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry", ] [[package]] name = "iana-time-zone" -version = "0.1.57" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", - "windows 0.48.0", + "windows-core 0.62.0", ] [[package]] @@ -8267,21 +8280,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -8290,31 +8304,11 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", "icu_collections", @@ -8322,67 +8316,54 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "potential_utf", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", + "icu_locale_core", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2 1.0.95", - "quote 1.0.40", - "syn 2.0.98", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -8391,19 +8372,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -8412,9 +8383,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -8432,21 +8403,25 @@ dependencies = [ [[package]] name = "if-watch" -version = "3.2.0" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" +checksum = "cdf9d64cfcf380606e64f9a0bcf493616b65331199f984151a6fa11a7b3cde38" dependencies = [ - "async-io 2.3.3", - "core-foundation", + "async-io", + "core-foundation 0.9.4", "fnv", "futures", "if-addrs", "ipnet", "log", + "netlink-packet-core", + "netlink-packet-route", + "netlink-proto", + "netlink-sys", "rtnetlink", - "system-configuration 0.5.1", + "system-configuration", "tokio", - "windows 0.51.1", + "windows 0.53.0", ] [[package]] @@ -8459,8 +8434,8 @@ dependencies = [ "attohttpc", "bytes", "futures", - "http 0.2.9", - "hyper 0.14.29", + "http 0.2.12", + "hyper 0.14.32", "log", "rand 0.8.5", "tokio", @@ -8521,35 +8496,35 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "include_dir" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" dependencies = [ "include_dir_macros", ] [[package]] name = "include_dir_macros" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", ] [[package]] name = "indenter" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" +checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" [[package]] name = "indexmap" @@ -8564,13 +8539,14 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.9.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "92119844f513ffa41556430369ab02c295a3578af21cf945caa3e9e0c2481ac3" dependencies = [ "equivalent", - "hashbrown 0.15.3", + "hashbrown 0.15.5", "serde", + "serde_core", ] [[package]] @@ -8581,22 +8557,22 @@ checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" [[package]] name = "indicatif" -version = "0.17.7" +version = "0.17.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" dependencies = [ "console", - "instant", "number_prefix", "portable-atomic", - "unicode-width 0.1.10", + "unicode-width", + "web-time", ] [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "generic-array 0.14.7", ] @@ -8620,14 +8596,14 @@ dependencies = [ ] [[package]] -name = "io-lifetimes" -version = "1.0.11" +name = "io-uring" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "hermit-abi", + "bitflags 2.9.4", + "cfg-if", "libc", - "windows-sys 0.48.0", ] [[package]] @@ -8642,7 +8618,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.9", + "socket2 0.5.10", "widestring", "windows-sys 0.48.0", "winreg", @@ -8650,30 +8626,46 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.8.0" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] [[package]] name = "is-terminal" -version = "0.4.9" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ "hermit-abi", - "rustix 0.38.42", - "windows-sys 0.48.0", + "libc", + "windows-sys 0.59.0", ] [[package]] name = "is_executable" -version = "1.0.1" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" +checksum = "baabb8b4867b26294d818bf3f651a454b6901431711abb96e296245888d6e8c4" dependencies = [ - "winapi", + "windows-sys 0.60.2", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "isahc" version = "1.7.2" @@ -8688,7 +8680,7 @@ dependencies = [ "encoding_rs", "event-listener 2.5.3", "futures-lite 1.13.0", - "http 0.2.9", + "http 0.2.12", "log", "mime", "once_cell", @@ -8748,15 +8740,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jam-codec" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d72f2fb8cfd27f6c52ea7d0528df594f7f2ed006feac153e9393ec567aafea98" +checksum = "cb948eace373d99de60501a02fb17125d30ac632570de20dccc74370cdd611b9" dependencies = [ "arrayvec 0.7.6", "bitvec", @@ -8770,28 +8762,54 @@ dependencies = [ [[package]] name = "jam-codec-derive" -version = "0.1.0" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319af585c4c8a6b5552a52b7787a1ab3e4d59df7614190b1f85b9b842488789d" +dependencies = [ + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", + "quote 1.0.40", + "syn 2.0.106", +] + +[[package]] +name = "jiff" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", +] + +[[package]] +name = "jiff-static" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09985146f40378e13af626964ac9c206d9d9b67c40c70805898d9954f709bcf5" +checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "jni" -version = "0.19.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", + "cfg-if", "combine", "jni-sys", "log", - "thiserror 1.0.65", + "thiserror 1.0.69", "walkdir", + "windows-sys 0.45.0", ] [[package]] @@ -8802,19 +8820,21 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ + "getrandom 0.3.3", "libc", ] [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "852f13bec5eba4ba9afbeb93fd7c13fe56147f055939ae21c43a29a0ecb2702e" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -8826,7 +8846,7 @@ checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" dependencies = [ "serde", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -8839,7 +8859,7 @@ dependencies = [ "pest_derive", "regex", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -8855,9 +8875,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.24.8" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "834af00800e962dee8f7bfc0f60601de215e73e78e5497d733a2919da837d3c8" +checksum = "37b26c20e2178756451cfeb0661fb74c47dd5988cb7e3939de7e9241fd604d42" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -8873,24 +8893,24 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "548125b159ba1314104f5bb5f38519e03a41862786aa3925cf349aae9cdd546e" +checksum = "bacb85abf4117092455e1573625e21b8f8ef4dec8aff13361140b2dc266cdff2" dependencies = [ "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", - "http 1.1.0", + "http 1.3.1", "jsonrpsee-core", "pin-project", - "rustls 0.23.18", + "rustls 0.23.31", "rustls-pki-types", "rustls-platform-verifier", "soketto", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.3", "tokio-util", "tracing", "url", @@ -8898,25 +8918,25 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2882f6f8acb9fdaec7cefc4fd607119a9bd709831df7d7672a1d3b644628280" +checksum = "456196007ca3a14db478346f58c7238028d55ee15c1df15115596e411ff27925" dependencies = [ "async-trait", "bytes", "futures-timer", "futures-util", - "http 1.1.0", - "http-body 1.0.0", + "http 1.3.1", + "http-body 1.0.1", "http-body-util", "jsonrpsee-types", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tokio-stream", "tracing", @@ -8925,53 +8945,53 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3638bc4617f96675973253b3a45006933bde93c2fd8a6170b33c777cc389e5b" +checksum = "c872b6c9961a4ccc543e321bb5b89f6b2d2c7fe8b61906918273a3333c95400c" dependencies = [ "async-trait", "base64 0.22.1", - "http-body 1.0.0", - "hyper 1.6.0", - "hyper-rustls 0.27.3", + "http-body 1.0.1", + "hyper 1.7.0", + "hyper-rustls 0.27.7", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", - "rustls 0.23.18", + "rustls 0.23.31", "rustls-platform-verifier", "serde", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", - "tower", + "tower 0.4.13", "tracing", "url", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06c01ae0007548e73412c08e2285ffe5d723195bf268bce67b1b77c3bb2a14d" +checksum = "5e65763c942dfc9358146571911b0cd1c361c2d63e2d2305622d40d36376ca80" dependencies = [ "heck 0.5.0", - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "jsonrpsee-server" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82ad8ddc14be1d4290cd68046e7d1d37acd408efed6d3ca08aefcc3ad6da069c" +checksum = "55e363146da18e50ad2b51a0a7925fc423137a0b1371af8235b1c231a0647328" dependencies = [ "futures-util", - "http 1.1.0", - "http-body 1.0.0", + "http 1.3.1", + "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", @@ -8980,31 +9000,31 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tokio-stream", "tokio-util", - "tower", + "tower 0.4.13", "tracing", ] [[package]] name = "jsonrpsee-types" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a178c60086f24cc35bb82f57c651d0d25d99c4742b4d335de04e97fa1f08a8a1" +checksum = "08a8e70baf945b6b5752fc8eb38c918a48f1234daf11355e07106d963f860089" dependencies = [ - "http 1.1.0", + "http 1.3.1", "serde", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] name = "jsonrpsee-wasm-client" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a01cd500915d24ab28ca17527e23901ef1be6d659a2322451e1045532516c25" +checksum = "e6558a9586cad43019dafd0b6311d0938f46efc116b34b28c74778bc11a2edf6" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -9013,11 +9033,11 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.24.7" +version = "0.24.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe322e0896d0955a3ebdd5bf813571c53fea29edd713bc315b76620b327e86d" +checksum = "01b3323d890aa384f12148e8d2a1fd18eb66e9e7e825f9de4fa53bcc19b93eef" dependencies = [ - "http 1.1.0", + "http 1.3.1", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", @@ -9054,9 +9074,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ "cpufeatures", ] @@ -9108,7 +9128,7 @@ checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" name = "kitchensink-runtime" version = "3.0.0-dev" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "log", "node-primitives", "pallet-example-mbm", @@ -9147,9 +9167,9 @@ dependencies = [ "either", "futures", "home", - "http 0.2.9", - "http-body 0.4.5", - "hyper 0.14.29", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", "hyper-rustls 0.24.2", "hyper-timeout", "jsonpath-rust", @@ -9158,17 +9178,17 @@ dependencies = [ "pem", "pin-project", "rand 0.8.5", - "rustls 0.21.7", - "rustls-pemfile 1.0.3", + "rustls 0.21.12", + "rustls-pemfile", "secrecy 0.8.0", "serde", "serde_json", "serde_yaml", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tokio-tungstenite 0.20.1", "tokio-util", - "tower", + "tower 0.4.13", "tower-http 0.4.4", "tracing", ] @@ -9181,13 +9201,13 @@ checksum = "b5bba93d054786eba7994d03ce522f368ef7d48c88a1826faa28478d85fb63ae" dependencies = [ "chrono", "form_urlencoded", - "http 0.2.9", + "http 0.2.12", "json-patch", "k8s-openapi", "once_cell", "serde", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -9205,12 +9225,12 @@ dependencies = [ "json-patch", "k8s-openapi", "kube-client", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "serde", "serde_json", "smallvec", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tokio-util", "tracing", @@ -9241,7 +9261,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parking_lot 0.12.3", + "parking_lot 0.12.4", ] [[package]] @@ -9252,7 +9272,7 @@ checksum = "e8beb5ce840610e5a945f0306f6e7a2d5b3e68ea3e64e9a4f081fa4ee5aa6525" dependencies = [ "kvdb", "num_cpus", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "regex", "rocksdb", ] @@ -9268,13 +9288,13 @@ dependencies = [ [[package]] name = "landlock" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1530c5b973eeed4ac216af7e24baf5737645a6272e361f1fb95710678b67d9cc" +checksum = "9baa9eeb6e315942429397e617a190f4fdc696ef1ee0342939d641029cbb4ea7" dependencies = [ "enumflags2", "libc", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -9286,12 +9306,6 @@ dependencies = [ "spin 0.9.8", ] -[[package]] -name = "leb128" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" - [[package]] name = "leb128fmt" version = "0.1.0" @@ -9300,9 +9314,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.172" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libflate" @@ -9326,20 +9340,19 @@ dependencies = [ [[package]] name = "libfuzzer-sys" -version = "0.4.7" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7" +checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" dependencies = [ "arbitrary", "cc", - "once_cell", ] [[package]] name = "libgit2-sys" -version = "0.18.0+1.9.0" +version = "0.18.2+1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1a117465e7e1597e8febea8bb0c410f1c7fb93b1e1cddf34363f8390367ffec" +checksum = "1c42fe03df2bd3c53a3a9c7317ad91d80c81cd1fb0caec8d7cc4cd2bfa10c222" dependencies = [ "cc", "libc", @@ -9349,15 +9362,15 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.8" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libnghttp2-sys" -version = "0.1.9+1.58.0" +version = "0.1.11+1.64.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b57e858af2798e167e709b9d969325b6d8e9d50232fcbc494d7d54f976854a64" +checksum = "1b6c24e48a7167cffa7119da39d577fa482e66c688a4aac016bee862e1a713c4" dependencies = [ "cc", "libc", @@ -9373,7 +9386,7 @@ dependencies = [ "either", "futures", "futures-timer", - "getrandom 0.2.10", + "getrandom 0.2.16", "libp2p-allow-block-list", "libp2p-connection-limits", "libp2p-core", @@ -9392,10 +9405,10 @@ dependencies = [ "libp2p-upnp", "libp2p-websocket", "libp2p-yamux", - "multiaddr 0.18.1", + "multiaddr 0.18.2", "pin-project", "rw-stream-sink", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -9433,17 +9446,17 @@ dependencies = [ "futures", "futures-timer", "libp2p-identity", - "multiaddr 0.18.1", - "multihash 0.19.1", + "multiaddr 0.18.2", + "multihash 0.19.3", "multistream-select", "once_cell", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "quick-protobuf", "rand 0.8.5", "rw-stream-sink", "smallvec", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", "unsigned-varint 0.8.0", "void", @@ -9458,10 +9471,10 @@ checksum = "97f37f30d5c7275db282ecd86e54f29dd2176bd3ac656f06abf43bedb21eb8bd" dependencies = [ "async-trait", "futures", - "hickory-resolver 0.24.2", + "hickory-resolver 0.24.4", "libp2p-core", "libp2p-identity", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "smallvec", "tracing", ] @@ -9484,25 +9497,25 @@ dependencies = [ "quick-protobuf", "quick-protobuf-codec", "smallvec", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", "void", ] [[package]] name = "libp2p-identity" -version = "0.2.9" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cca1eb2bc1fd29f099f3daaab7effd01e1a54b7c577d0ed082521034d912e8" +checksum = "3104e13b51e4711ff5738caa1fb54467c8604c2e94d607e27745bcf709068774" dependencies = [ "bs58", "ed25519-dalek", "hkdf", - "multihash 0.19.1", + "multihash 0.19.3", "quick-protobuf", "rand 0.8.5", "sha2 0.10.9", - "thiserror 1.0.65", + "thiserror 2.0.16", "tracing", "zeroize", ] @@ -9529,7 +9542,7 @@ dependencies = [ "rand 0.8.5", "sha2 0.10.9", "smallvec", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", "uint 0.9.5", "void", @@ -9544,14 +9557,14 @@ checksum = "14b8546b6644032565eb29046b42744aee1e9f261ed99671b2c93fb140dba417" dependencies = [ "data-encoding", "futures", - "hickory-proto 0.24.1", + "hickory-proto 0.24.4", "if-watch", "libp2p-core", "libp2p-identity", "libp2p-swarm", "rand 0.8.5", "smallvec", - "socket2 0.5.9", + "socket2 0.5.10", "tokio", "tracing", "void", @@ -9587,15 +9600,15 @@ dependencies = [ "futures", "libp2p-core", "libp2p-identity", - "multiaddr 0.18.1", - "multihash 0.19.1", + "multiaddr 0.18.2", + "multihash 0.19.3", "once_cell", "quick-protobuf", "rand 0.8.5", "sha2 0.10.9", "snow", "static_assertions", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", "x25519-dalek", "zeroize", @@ -9632,13 +9645,13 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-tls", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "quinn", "rand 0.8.5", - "ring 0.17.8", - "rustls 0.23.18", - "socket2 0.5.9", - "thiserror 1.0.65", + "ring 0.17.14", + "rustls 0.23.31", + "socket2 0.5.10", + "thiserror 1.0.69", "tokio", "tracing", ] @@ -9694,9 +9707,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "206e0aa0ebe004d778d79fb0966aa0de996c19894e2c0605ba2f8524dd4443d8" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -9711,7 +9724,7 @@ dependencies = [ "libc", "libp2p-core", "libp2p-identity", - "socket2 0.5.9", + "socket2 0.5.10", "tokio", "tracing", ] @@ -9727,10 +9740,10 @@ dependencies = [ "libp2p-core", "libp2p-identity", "rcgen", - "ring 0.17.8", - "rustls 0.23.18", - "rustls-webpki 0.101.4", - "thiserror 1.0.65", + "ring 0.17.14", + "rustls 0.23.31", + "rustls-webpki 0.101.7", + "thiserror 1.0.69", "x509-parser 0.16.0", "yasna", ] @@ -9762,14 +9775,14 @@ dependencies = [ "futures-rustls", "libp2p-core", "libp2p-identity", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project-lite", "rw-stream-sink", "soketto", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", "url", - "webpki-roots 0.25.2", + "webpki-roots 0.25.4", ] [[package]] @@ -9781,10 +9794,21 @@ dependencies = [ "either", "futures", "libp2p-core", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", "yamux 0.12.1", - "yamux 0.13.5", + "yamux 0.13.6", +] + +[[package]] +name = "libredox" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" +dependencies = [ + "bitflags 2.9.4", + "libc", + "redox_syscall 0.5.17", ] [[package]] @@ -9803,12 +9827,12 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" dependencies = [ "arrayref", - "base64 0.13.1", + "base64 0.22.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -9828,7 +9852,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -9862,9 +9886,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.12" +version = "1.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" dependencies = [ "cc", "libc", @@ -9874,9 +9898,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" +checksum = "7f78c730aaa7d0b9336a299029ea49f9ee53b0ed06e9202e8cb7db9bae7b8c82" dependencies = [ "cc", ] @@ -9889,39 +9913,33 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linked_hash_set" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +checksum = "bae85b5be22d9843c80e5fc80e9b64c8a3b1f98f867c709956eca3efff4e92e2" dependencies = [ "linked-hash-map", ] [[package]] name = "linregress" -version = "0.5.2" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de0b5f52a9f84544d268f5fabb71b38962d6aa3c6600b8bcd27d44ccf9c9c45" +checksum = "a9eda9dcf4f2a99787827661f312ac3219292549c2ee992bf9a6248ffb066bf7" dependencies = [ "nalgebra", ] [[package]] name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "lioness" @@ -9955,9 +9973,9 @@ dependencies = [ [[package]] name = "litemap" -version = "0.7.4" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "litep2p" @@ -9973,13 +9991,13 @@ dependencies = [ "futures", "futures-timer", "hickory-resolver 0.25.2", - "indexmap 2.9.0", + "indexmap 2.11.3", "libc", "mockall", "multiaddr 0.17.1", "multihash 0.17.0", "network-interface", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "prost 0.13.5", "prost-build", @@ -9989,8 +10007,8 @@ dependencies = [ "simple-dns", "smallvec", "snow", - "socket2 0.5.9", - "thiserror 2.0.12", + "socket2 0.5.10", + "thiserror 2.0.16", "tokio", "tokio-stream", "tokio-tungstenite 0.27.0", @@ -10001,16 +10019,16 @@ dependencies = [ "url", "x25519-dalek", "x509-parser 0.17.0", - "yamux 0.13.5", + "yamux 0.13.6", "yasna", "zeroize", ] [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -10018,9 +10036,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" dependencies = [ "serde", "value-bag", @@ -10036,16 +10054,16 @@ dependencies = [ "generator", "scoped-tls", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.20", ] [[package]] name = "lru" -version = "0.12.3" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.5", ] [[package]] @@ -10057,21 +10075,26 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "lz4" -version = "1.24.0" +version = "1.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" +checksum = "a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4" dependencies = [ - "libc", "lz4-sys", ] [[package]] name = "lz4-sys" -version = "1.9.4" +version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" dependencies = [ "cc", "libc", @@ -10079,9 +10102,9 @@ dependencies = [ [[package]] name = "mach2" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" dependencies = [ "libc", ] @@ -10092,9 +10115,9 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -10106,7 +10129,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -10118,9 +10141,9 @@ dependencies = [ "const-random", "derive-syn-parse", "macro_magic_core_macros", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -10129,9 +10152,9 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -10142,7 +10165,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -10151,26 +10174,20 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" -[[package]] -name = "match_cfg" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" - [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] name = "matrixmultiply" -version = "0.3.7" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08" dependencies = [ "autocfg", "rawpointer", @@ -10188,17 +10205,17 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memfd" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" +checksum = "ad38eb12aea514a0466ea40a80fd8cc83637065948eb4a426e4aa46261175227" dependencies = [ - "rustix 0.37.23", + "rustix 1.1.2", ] [[package]] @@ -10212,31 +10229,22 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.3" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92" +checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - [[package]] name = "memory-db" version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e300c54e3239a86f9c61cc63ab0f03862eb40b1c6e065dc6fd6ceaeff6da93d" dependencies = [ - "foldhash", + "foldhash 0.1.5", "hash-db", - "hashbrown 0.15.3", + "hashbrown 0.15.5", ] [[package]] @@ -10245,7 +10253,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3e3e3f549d27d2dc054372f320ddf68045a833fab490563ff70d4cf1b9d91ea" dependencies = [ - "array-bytes 9.1.2", + "array-bytes 9.3.0", "blake3", "frame-metadata 23.0.0", "parity-scale-codec", @@ -10277,7 +10285,7 @@ dependencies = [ "hex", "log", "num-traits", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "relay-utils", "sp-arithmetic", "sp-core 28.0.0", @@ -10321,23 +10329,22 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ - "adler", + "adler2", ] [[package]] name = "mio" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ - "hermit-abi", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", ] [[package]] @@ -10356,12 +10363,12 @@ dependencies = [ "hashlink 0.8.4", "lioness", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "rand_chacha 0.3.1", "rand_distr", - "subtle 2.5.0", - "thiserror 1.0.65", + "subtle 2.6.1", + "thiserror 1.0.69", "zeroize", ] @@ -10372,7 +10379,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-block-builder", "sc-client-api", "sc-offchain", @@ -10424,9 +10431,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" dependencies = [ "cfg-if", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -10439,12 +10446,12 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "loom", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "portable-atomic", - "rustc_version 0.4.0", + "rustc_version 0.4.1", "smallvec", "tagptr", - "thiserror 1.0.65", + "thiserror 1.0.69", "uuid", ] @@ -10475,20 +10482,20 @@ dependencies = [ [[package]] name = "multiaddr" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b852bc02a2da5feed68cd14fa50d0774b92790a5bdbfa932a813926c8472070" +checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" dependencies = [ "arrayref", "byteorder", "data-encoding", "libp2p-identity", "multibase", - "multihash 0.19.1", + "multihash 0.19.3", "percent-encoding", "serde", "static_assertions", - "unsigned-varint 0.7.2", + "unsigned-varint 0.8.0", "url", ] @@ -10522,23 +10529,23 @@ dependencies = [ [[package]] name = "multihash" -version = "0.19.1" +version = "0.19.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" dependencies = [ "core2", - "unsigned-varint 0.7.2", + "unsigned-varint 0.8.0", ] [[package]] name = "multihash-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 1.1.3", "proc-macro-error", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "syn 1.0.109", "synstructure 0.12.6", @@ -10546,9 +10553,9 @@ dependencies = [ [[package]] name = "multimap" -version = "0.8.3" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "multistream-select" @@ -10566,13 +10573,12 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.32.3" +version = "0.33.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" +checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" dependencies = [ "approx", "matrixmultiply", - "nalgebra-macros", "num-complex", "num-rational", "num-traits", @@ -10580,17 +10586,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "nalgebra-macros" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" -dependencies = [ - "proc-macro2 1.0.95", - "quote 1.0.40", - "syn 1.0.109", -] - [[package]] name = "names" version = "0.14.0" @@ -10608,9 +10603,9 @@ checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" [[package]] name = "native-tls" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ "libc", "log", @@ -10618,28 +10613,27 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] [[package]] name = "netlink-packet-core" -version = "0.4.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345b8ab5bd4e71a2986663e88c56856699d060e78e152e6e9d7966fcd5491297" +checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" dependencies = [ "anyhow", "byteorder", - "libc", "netlink-packet-utils", ] [[package]] name = "netlink-packet-route" -version = "0.12.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" +checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66" dependencies = [ "anyhow", "bitflags 1.3.2", @@ -10658,29 +10652,28 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] name = "netlink-proto" -version = "0.10.0" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" +checksum = "72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60" dependencies = [ "bytes", "futures", "log", "netlink-packet-core", "netlink-sys", - "thiserror 1.0.65", - "tokio", + "thiserror 2.0.16", ] [[package]] name = "netlink-sys" -version = "0.8.5" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" +checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" dependencies = [ "bytes", "futures", @@ -10691,21 +10684,21 @@ dependencies = [ [[package]] name = "network-interface" -version = "2.0.1" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3329f515506e4a2de3aa6e07027a6758e22e0f0e8eaf64fa47261cec2282602" +checksum = "07709a6d4eba90ab10ec170a0530b3aafc81cb8a2d380e4423ae41fc55fe5745" dependencies = [ "cc", "libc", - "thiserror 1.0.65", + "thiserror 2.0.16", "winapi", ] [[package]] name = "nix" -version = "0.24.3" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ "bitflags 1.3.2", "cfg-if", @@ -10735,6 +10728,18 @@ dependencies = [ "libc", ] +[[package]] +name = "nix" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" +dependencies = [ + "bitflags 2.9.4", + "cfg-if", + "cfg_aliases 0.2.1", + "libc", +] + [[package]] name = "no-std-compat" version = "0.4.1" @@ -10745,10 +10750,10 @@ checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" name = "node-bench" version = "0.9.0-dev" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-trait", "clap", - "derive_more 0.99.17", + "derive_more 0.99.20", "fs_extra", "futures", "hash-db", @@ -10932,19 +10937,18 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ - "overload", - "winapi", + "windows-sys 0.52.0", ] [[package]] name = "num" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ "num-bigint", "num-complex", @@ -10983,9 +10987,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", ] @@ -11002,9 +11006,9 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -11028,9 +11032,9 @@ dependencies = [ [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", @@ -11039,11 +11043,10 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", "num-bigint", "num-integer", "num-traits", @@ -11061,9 +11064,9 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ "hermit-abi", "libc", @@ -11085,10 +11088,10 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -11108,9 +11111,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "nybbles" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0418987d1aaed324d95b4beffc93635e19be965ed5d63ec07a35980fe3b71a4" +checksum = "bfa11e84403164a9f12982ab728f3c67c6fd4ab5b5f0254ffc217bdbd3b28ab0" dependencies = [ "alloy-rlp", "cfg-if", @@ -11120,15 +11123,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "object" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "memchr", -] - [[package]] name = "object" version = "0.36.7" @@ -11136,18 +11130,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "crc32fast", - "hashbrown 0.15.3", - "indexmap 2.9.0", + "hashbrown 0.15.5", + "indexmap 2.11.3", "memchr", ] [[package]] name = "oid-registry" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d" +checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" dependencies = [ - "asn1-rs 0.6.1", + "asn1-rs 0.6.2", ] [[package]] @@ -11156,7 +11150,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" dependencies = [ - "asn1-rs 0.7.0", + "asn1-rs 0.7.1", ] [[package]] @@ -11169,11 +11163,17 @@ dependencies = [ "portable-atomic", ] +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "oorandom" -version = "11.1.3" +version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] name = "opaque-debug" @@ -11183,15 +11183,15 @@ checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl" -version = "0.10.72" +version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ "bitflags 2.9.4", "cfg-if", @@ -11208,22 +11208,22 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.107" +version = "0.9.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" dependencies = [ "cc", "libc", @@ -11250,7 +11250,7 @@ dependencies = [ "orchestra-proc-macro", "pin-project", "prioritized-metered-channel", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", ] @@ -11261,11 +11261,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43dfaf083aef571385fccfdc3a2f8ede8d0a1863160455d4f2b014d8f7d04a3f" dependencies = [ "expander", - "indexmap 2.9.0", + "indexmap 2.11.3", "itertools 0.11.0", - "petgraph", - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "petgraph 0.6.5", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", "syn 1.0.109", ] @@ -11281,25 +11281,19 @@ dependencies = [ [[package]] name = "os_pipe" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" +checksum = "db335f4760b14ead6290116f2427bf33a14d4f0617d49f78a246de10c1831224" dependencies = [ "libc", "windows-sys 0.59.0", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "owo-colors" -version = "3.5.0" +version = "4.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" +checksum = "48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e" [[package]] name = "p256" @@ -11364,7 +11358,7 @@ dependencies = [ name = "pallet-alliance" version = "27.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "frame-benchmarking", "frame-support", "frame-system", @@ -11719,7 +11713,7 @@ dependencies = [ name = "pallet-beefy-mmr" version = "28.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "binary-merkle-tree", "frame-benchmarking", "frame-support", @@ -11972,7 +11966,7 @@ dependencies = [ name = "pallet-contracts" version = "27.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "assert_matches", "environmental", "frame-benchmarking", @@ -12018,7 +12012,7 @@ dependencies = [ "parity-wasm", "sp-runtime", "tempfile", - "toml", + "toml 0.8.23", "twox-hash 1.6.3", ] @@ -12057,9 +12051,9 @@ dependencies = [ name = "pallet-contracts-proc-macro" version = "18.0.0" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -12231,7 +12225,7 @@ dependencies = [ "pallet-staking", "pallet-timestamp", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "scale-info", "sp-core 28.0.0", "sp-io", @@ -12252,7 +12246,7 @@ dependencies = [ "log", "pallet-balances", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "scale-info", "sp-arithmetic", @@ -12277,7 +12271,7 @@ dependencies = [ "log", "pallet-balances", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "scale-info", "sp-arithmetic", @@ -13139,9 +13133,9 @@ dependencies = [ "alloy-consensus", "alloy-core", "alloy-trie", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "assert_matches", - "derive_more 0.99.17", + "derive_more 0.99.20", "environmental", "ethereum-standards", "ethereum-types", @@ -13151,6 +13145,7 @@ dependencies = [ "hex-literal", "humantime-serde", "impl-trait-for-tuples", + "k256", "log", "num-bigint", "num-integer", @@ -13196,9 +13191,11 @@ dependencies = [ name = "pallet-revive-eth-rpc" version = "0.1.0" dependencies = [ + "alloy-consensus", + "alloy-core", "anyhow", "clap", - "env_logger 0.11.3", + "env_logger 0.11.8", "futures", "git2", "hex", @@ -13213,6 +13210,7 @@ dependencies = [ "sc-rpc", "sc-rpc-api", "sc-service", + "serde", "serde_json", "sp-arithmetic", "sp-core 28.0.0", @@ -13226,7 +13224,7 @@ dependencies = [ "substrate-prometheus-endpoint", "subxt 0.43.0", "subxt-signer 0.43.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -13243,16 +13241,16 @@ dependencies = [ "serde_json", "sp-core 28.0.0", "sp-io", - "toml", + "toml 0.8.23", ] [[package]] name = "pallet-revive-proc-macro" version = "0.1.0" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -13329,7 +13327,7 @@ dependencies = [ name = "pallet-sassafras" version = "0.3.5-dev" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "frame-benchmarking", "frame-support", "frame-system", @@ -13482,7 +13480,7 @@ name = "pallet-staking-async" version = "0.1.0" dependencies = [ "anyhow", - "env_logger 0.11.3", + "env_logger 0.11.8", "frame-benchmarking", "frame-election-provider-support", "frame-support", @@ -13810,11 +13808,11 @@ dependencies = [ name = "pallet-staking-reward-curve" version = "11.0.0" dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", "sp-runtime", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -13985,7 +13983,7 @@ dependencies = [ name = "pallet-transaction-storage" version = "27.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "frame-benchmarking", "frame-support", "frame-system", @@ -14336,9 +14334,9 @@ checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67" [[package]] name = "parity-db" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e9ab494af9e6e813c72170f0d3c1de1500990d62c97cc05cc7576f91aa402f" +checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" dependencies = [ "blake2 0.10.6", "crc32fast", @@ -14348,10 +14346,11 @@ dependencies = [ "log", "lz4", "memmap2 0.5.10", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "siphasher 0.3.11", "snap", + "winapi", ] [[package]] @@ -14377,10 +14376,10 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -14408,12 +14407,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", - "parking_lot_core 0.9.8", + "parking_lot_core 0.9.11", ] [[package]] @@ -14432,15 +14431,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", + "redox_syscall 0.5.17", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -14457,7 +14456,7 @@ checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" dependencies = [ "base64ct", "rand_core 0.6.4", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -14479,9 +14478,9 @@ dependencies = [ [[package]] name = "pem" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" dependencies = [ "base64 0.22.1", "serde", @@ -14781,25 +14780,26 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.7.2" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" +checksum = "21e0a3a33733faeaf8651dfee72dd0f388f0c8e5ad496a3478fa5a922f49cfa8" dependencies = [ - "thiserror 1.0.65", + "memchr", + "thiserror 2.0.16", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.2" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853" +checksum = "bc58706f770acb1dbd0973e6530a3cff4746fb721207feb3a8a6064cd0b6c663" dependencies = [ "pest", "pest_generator", @@ -14807,36 +14807,45 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.2" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929" +checksum = "6d4f36811dfe07f7b8573462465d5cb8965fffc2e71ae377a33aecf14c2c9a2f" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "pest_meta" -version = "2.7.2" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48" +checksum = "42919b05089acbd0a5dcd5405fb304d17d1053847b81163d09c4ad18ce8e8420" dependencies = [ - "once_cell", "pest", "sha2 0.10.9", ] [[package]] name = "petgraph" -version = "0.6.4" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset 0.4.2", + "indexmap 2.11.3", +] + +[[package]] +name = "petgraph" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ - "fixedbitset", - "indexmap 2.9.0", + "fixedbitset 0.5.7", + "indexmap 2.11.3", ] [[package]] @@ -14867,9 +14876,9 @@ checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" dependencies = [ "phf_generator", "phf_shared", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -14896,16 +14905,16 @@ version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -14913,6 +14922,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand 2.3.0", + "futures-io", +] + [[package]] name = "pkcs1" version = "0.7.5" @@ -14942,9 +14962,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plotters" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" +checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" dependencies = [ "num-traits", "plotters-backend", @@ -14955,15 +14975,15 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" +checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" [[package]] name = "plotters-svg" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" +checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" dependencies = [ "plotters-backend", ] @@ -15009,7 +15029,7 @@ dependencies = [ "rand_chacha 0.3.1", "rand_core 0.6.4", "sc-keystore", - "schnorrkel 0.11.4", + "schnorrkel 0.11.5", "sp-application-crypto", "sp-authority-discovery", "sp-core 28.0.0", @@ -15068,7 +15088,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15098,7 +15118,7 @@ dependencies = [ "sp-core 28.0.0", "sp-keyring", "sp-tracing 16.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tracing-gum", ] @@ -15135,7 +15155,7 @@ dependencies = [ "sp-keyring", "sp-runtime", "substrate-build-script-utils", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -15165,7 +15185,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-tracing 16.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tokio-util", "tracing-gum", @@ -15191,7 +15211,7 @@ dependencies = [ "fatality", "futures", "futures-timer", - "indexmap 2.9.0", + "indexmap 2.11.3", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -15206,7 +15226,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15222,7 +15242,7 @@ dependencies = [ "reed-solomon-novelpoly", "sp-core 28.0.0", "sp-trie", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -15233,7 +15253,7 @@ dependencies = [ "async-trait", "futures", "futures-timer", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", @@ -15266,7 +15286,7 @@ dependencies = [ "futures", "futures-timer", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -15279,7 +15299,7 @@ dependencies = [ "sp-consensus", "sp-core 28.0.0", "sp-keyring", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15301,7 +15321,7 @@ dependencies = [ "schnellru", "sp-core 28.0.0", "sp-keyring", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15312,14 +15332,14 @@ dependencies = [ "assert_matches", "async-trait", "bitvec", - "derive_more 0.99.17", + "derive_more 0.99.20", "futures", "futures-timer", "itertools 0.11.0", "kvdb-memorydb", "merlin", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", @@ -15333,7 +15353,7 @@ dependencies = [ "rand_core 0.6.4", "sc-keystore", "schnellru", - "schnorrkel 0.11.4", + "schnorrkel 0.11.5", "sp-application-crypto", "sp-consensus", "sp-consensus-babe", @@ -15343,7 +15363,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-tracing 16.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15369,7 +15389,7 @@ dependencies = [ "rand 0.8.5", "rand_core 0.6.4", "sc-keystore", - "schnorrkel 0.11.4", + "schnorrkel 0.11.5", "sp-consensus", "sp-consensus-babe", "sp-core 28.0.0", @@ -15388,7 +15408,7 @@ dependencies = [ "futures-timer", "kvdb-memorydb", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -15400,7 +15420,7 @@ dependencies = [ "sp-core 28.0.0", "sp-keyring", "sp-tracing 16.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15428,7 +15448,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15443,7 +15463,7 @@ dependencies = [ "polkadot-primitives", "polkadot-primitives-test-helpers", "sp-keystore", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", "wasm-timer", ] @@ -15505,14 +15525,14 @@ dependencies = [ "futures-timer", "kvdb-memorydb", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", "polkadot-node-subsystem-util", "polkadot-primitives", "sp-core 28.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15540,7 +15560,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15556,7 +15576,7 @@ dependencies = [ "polkadot-primitives", "sp-blockchain", "sp-inherents", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15576,7 +15596,7 @@ dependencies = [ "rstest", "sp-core 28.0.0", "sp-tracing 16.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15596,7 +15616,7 @@ dependencies = [ "polkadot-primitives-test-helpers", "sp-application-crypto", "sp-keystore", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15605,7 +15625,7 @@ name = "polkadot-node-core-pvf" version = "7.0.0" dependencies = [ "always-assert", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "assert_matches", "criterion", "futures", @@ -15637,7 +15657,7 @@ dependencies = [ "tempfile", "test-parachain-adder", "test-parachain-halt", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tracing-gum", ] @@ -15686,7 +15706,7 @@ dependencies = [ "sp-io", "sp-tracing 16.0.0", "tempfile", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15755,7 +15775,7 @@ dependencies = [ "futures", "futures-timer", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "parity-scale-codec", "polkadot-primitives", @@ -15777,7 +15797,7 @@ dependencies = [ "async-channel 1.9.0", "async-trait", "bitvec", - "derive_more 0.99.17", + "derive_more 0.99.20", "fatality", "futures", "hex", @@ -15791,7 +15811,7 @@ dependencies = [ "sc-network-types", "sp-runtime", "strum 0.26.3", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -15807,14 +15827,14 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-primitives", "sc-keystore", - "schnorrkel 0.11.4", + "schnorrkel 0.11.5", "serde", "sp-application-crypto", "sp-consensus-babe", "sp-consensus-slots", "sp-keystore", "sp-maybe-compressed-blob", - "thiserror 1.0.65", + "thiserror 1.0.69", "zstd 0.12.4", ] @@ -15832,7 +15852,7 @@ version = "1.0.0" dependencies = [ "async-trait", "futures", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -15852,7 +15872,7 @@ name = "polkadot-node-subsystem-types" version = "7.0.0" dependencies = [ "async-trait", - "derive_more 0.99.17", + "derive_more 0.99.20", "fatality", "futures", "orchestra", @@ -15871,7 +15891,7 @@ dependencies = [ "sp-consensus-babe", "sp-runtime", "substrate-prometheus-endpoint", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -15886,7 +15906,7 @@ dependencies = [ "kvdb-shared-tests", "parity-db", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-erasure-coding", "polkadot-node-metrics", "polkadot-node-network-protocol", @@ -15904,7 +15924,7 @@ dependencies = [ "sp-core 28.0.0", "sp-keystore", "tempfile", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -16073,9 +16093,9 @@ dependencies = [ name = "polkadot-parachain-primitives" version = "6.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "bounded-collections 0.3.2", - "derive_more 0.99.17", + "derive_more 0.99.20", "parity-scale-codec", "polkadot-core-primitives", "scale-info", @@ -16110,7 +16130,7 @@ dependencies = [ "sp-runtime", "sp-staking", "sp-std 14.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -16845,7 +16865,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "parity-db", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -16933,7 +16953,7 @@ dependencies = [ "staging-xcm", "substrate-prometheus-endpoint", "tempfile", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", "westend-runtime", "westend-runtime-constants", @@ -16969,7 +16989,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing-gum", ] @@ -17214,7 +17234,7 @@ version = "0.1.0" dependencies = [ "anyhow", "cumulus-zombienet-sdk-helpers", - "env_logger 0.11.3", + "env_logger 0.11.8", "log", "parity-scale-codec", "polkadot-primitives", @@ -17336,9 +17356,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f2116a92e6e96220a398930f4c8a6cda1264206f3e2034fc9982bfd93f261f7" dependencies = [ "polkavm-common 0.18.0", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -17348,9 +17368,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6069dc7995cde6e612b868a02ce48b54397c6d2582bd1b97b63aabbe962cd779" dependencies = [ "polkavm-common 0.26.0", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -17360,9 +17380,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8abdd1210d96b1dda9ac21199ec469448fd628cea102e2ff0e0df1667c4c3b5f" dependencies = [ "polkavm-common 0.27.0", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -17372,7 +17392,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c16669ddc7433e34c1007d31080b80901e3e8e523cb9d4b441c3910cf9294b" dependencies = [ "polkavm-derive-impl 0.18.1", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -17382,7 +17402,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581d34cafec741dc5ffafbb341933c205b6457f3d76257a9d99fb56687219c91" dependencies = [ "polkavm-derive-impl 0.26.0", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -17392,7 +17412,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a45173d70138aa1879892c50777ed0d8b0c8556f7678372f09fa1d89bbbddb4" dependencies = [ "polkavm-derive-impl 0.27.0", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -17402,10 +17422,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "beb896023e5bd89bba40311797d8d42490fa4a1fd5256c74820753c5722d1e67" dependencies = [ "dirs", - "gimli 0.31.1", + "gimli", "hashbrown 0.14.5", "log", - "object 0.36.7", + "object", "polkavm-common 0.26.0", "regalloc2 0.9.3", "rustc-demangle", @@ -17418,10 +17438,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99fe3704d21e96c5d1e6a1b1a43ac57f9dce110d3331fbf8299e9f57d5884066" dependencies = [ "dirs", - "gimli 0.31.1", + "gimli", "hashbrown 0.14.5", "log", - "object 0.36.7", + "object", "polkavm-common 0.27.0", "regalloc2 0.9.3", "rustc-demangle", @@ -17457,16 +17477,16 @@ dependencies = [ [[package]] name = "polling" -version = "3.4.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14" +checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" dependencies = [ "cfg-if", "concurrent-queue", + "hermit-abi", "pin-project-lite", - "rustix 0.38.42", - "tracing", - "windows-sys 0.52.0", + "rustix 1.1.2", + "windows-sys 0.61.0", ] [[package]] @@ -17476,27 +17496,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", "universal-hash", ] [[package]] name = "portable-atomic" -version = "1.11.0" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] [[package]] name = "portpicker" @@ -17520,11 +17549,20 @@ dependencies = [ ] [[package]] -name = "powerfmt" -version = "0.2.0" +name = "potential_utf" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "pprof2" version = "0.13.1" @@ -17538,42 +17576,44 @@ dependencies = [ "log", "nix 0.27.1", "once_cell", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "smallvec", "symbolic-demangle", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] [[package]] name = "predicates" -version = "3.0.3" +version = "3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9" +checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" dependencies = [ "anstyle", "difflib", - "itertools 0.10.5", "predicates-core", ] [[package]] name = "predicates-core" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" +checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" [[package]] name = "predicates-tree" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" dependencies = [ "predicates-core", "termtree", @@ -17581,9 +17621,9 @@ dependencies = [ [[package]] name = "pretty_assertions" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" dependencies = [ "diff", "yansi", @@ -17591,12 +17631,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.12" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ - "proc-macro2 1.0.95", - "syn 2.0.98", + "proc-macro2 1.0.101", + "syn 2.0.106", ] [[package]] @@ -17642,31 +17682,31 @@ checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" dependencies = [ "coarsetime", "crossbeam-queue", - "derive_more 0.99.17", + "derive_more 0.99.20", "futures", "futures-timer", "nanorand", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", ] [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" dependencies = [ - "once_cell", - "toml_edit 0.19.15", + "thiserror 1.0.69", + "toml 0.5.11", ] [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" dependencies = [ - "toml_edit 0.21.0", + "toml_edit 0.23.5", ] [[package]] @@ -17676,7 +17716,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "syn 1.0.109", "version_check", @@ -17688,7 +17728,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "version_check", ] @@ -17699,7 +17739,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", ] @@ -17710,26 +17750,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ "proc-macro-error-attr2", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - [[package]] name = "proc-macro-warning" -version = "1.0.0" +version = "1.84.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c" +checksum = "75eea531cfcd120e0851a3f8aed42c4841f78c889eefafd96339c72677ae42c3" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -17743,9 +17777,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -17762,7 +17796,7 @@ dependencies = [ "hex", "lazy_static", "procfs-core", - "rustix 0.38.42", + "rustix 0.38.44", ] [[package]] @@ -17778,16 +17812,16 @@ dependencies = [ [[package]] name = "prometheus" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ "cfg-if", "fnv", "lazy_static", "memchr", - "parking_lot 0.12.3", - "thiserror 1.0.65", + "parking_lot 0.12.4", + "thiserror 1.0.69", ] [[package]] @@ -17798,7 +17832,7 @@ checksum = "504ee9ff529add891127c4827eb481bd69dc0ebc72e9a682e187db4caa60c3ca" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "prometheus-client-derive-encode", ] @@ -17808,38 +17842,38 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "prometheus-parse" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2aa5feb83bf4b2c8919eaf563f51dbab41183de73ba2353c0e03cd7b6bd892" +checksum = "811031bea65e5a401fb2e1f37d802cca6601e204ac463809a3189352d13b78a5" dependencies = [ "chrono", - "itertools 0.10.5", + "itertools 0.12.1", "once_cell", "regex", ] [[package]] name = "proptest" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" +checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" dependencies = [ "bit-set", "bit-vec", "bitflags 2.9.4", "lazy_static", "num-traits", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand 0.9.2", + "rand_chacha 0.9.0", "rand_xorshift", - "regex-syntax 0.8.5", + "regex-syntax", "rusty-fork", "tempfile", "unarray", @@ -17877,22 +17911,21 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.13.2" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8650aabb6c35b860610e9cff5dc1af886c9e25073b7b1712a68972af4281302" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "bytes", "heck 0.5.0", - "itertools 0.13.0", + "itertools 0.14.0", "log", "multimap", "once_cell", - "petgraph", + "petgraph 0.7.1", "prettyplease", "prost 0.13.5", "prost-types", "regex", - "syn 2.0.98", + "syn 2.0.106", "tempfile", ] @@ -17904,7 +17937,7 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools 0.10.5", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "syn 1.0.109", ] @@ -17917,9 +17950,9 @@ checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", "itertools 0.12.1", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -17930,16 +17963,16 @@ checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", "itertools 0.14.0", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "prost-types" -version = "0.13.2" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60caa6738c7369b940c3d49246a8d1749323674c65cb13010134f5c9bad5b519" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" dependencies = [ "prost 0.13.5", ] @@ -17962,9 +17995,9 @@ version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "938543690519c20c3a480d20a8efcc8e69abeb44093ab1df4e7c1f81f26c677a" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -17980,35 +18013,33 @@ dependencies = [ "prost 0.11.9", "reqwest", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", "url", "winapi", ] [[package]] name = "pyroscope_pprofrs" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614a25777053da6bdca9d84a67892490b5a57590248dbdee3d7bf0716252af70" +checksum = "50da7a8950c542357de489aa9ee628f46322b1beaac1f4fa3313bcdebe85b4ea" dependencies = [ "log", "pprof2", "pyroscope", - "thiserror 1.0.65", ] [[package]] name = "quanta" -version = "0.11.1" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab" +checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" dependencies = [ "crossbeam-utils", "libc", - "mach2", "once_cell", "raw-cpuid", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", "web-sys", "winapi", ] @@ -18037,7 +18068,7 @@ dependencies = [ "asynchronous-codec 0.7.0", "bytes", "quick-protobuf", - "thiserror 1.0.65", + "thiserror 1.0.69", "unsigned-varint 0.8.0", ] @@ -18049,7 +18080,7 @@ checksum = "5253a3a0d56548d5b0be25414171dc780cc6870727746d05bd2bde352eee96c5" dependencies = [ "ahash", "hashbrown 0.13.2", - "parking_lot 0.12.3", + "parking_lot 0.12.4", ] [[package]] @@ -18065,51 +18096,58 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.5" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", + "cfg_aliases 0.2.1", "futures-io", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.18", - "socket2 0.5.9", - "thiserror 1.0.65", + "rustls 0.23.31", + "socket2 0.6.0", + "thiserror 2.0.16", "tokio", "tracing", + "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.8" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", - "rand 0.8.5", - "ring 0.17.8", + "getrandom 0.3.3", + "lru-slab", + "rand 0.9.2", + "ring 0.17.14", "rustc-hash 2.1.1", - "rustls 0.23.18", + "rustls 0.23.31", + "rustls-pki-types", "slab", - "thiserror 1.0.65", + "thiserror 2.0.16", "tinyvec", "tracing", + "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.4" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ + "cfg_aliases 0.2.1", "libc", "once_cell", - "socket2 0.5.9", + "socket2 0.6.0", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -18127,9 +18165,15 @@ version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "radium" version = "0.7.0" @@ -18149,14 +18193,13 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.1", + "rand_core 0.9.3", "serde", - "zerocopy 0.8.20", ] [[package]] @@ -18176,7 +18219,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.1", + "rand_core 0.9.3", ] [[package]] @@ -18185,18 +18228,17 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.16", ] [[package]] name = "rand_core" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88e0da7a2c97baa202165137c158d0a2e824ac465d13d81046727b34cb247d3" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.1", + "getrandom 0.3.3", "serde", - "zerocopy 0.8.20", ] [[package]] @@ -18220,20 +18262,20 @@ dependencies = [ [[package]] name = "rand_xorshift" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "rand_core 0.6.4", + "rand_core 0.9.3", ] [[package]] name = "raw-cpuid" -version = "10.7.0" +version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.9.4", ] [[package]] @@ -18244,9 +18286,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -18254,9 +18296,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -18305,31 +18347,22 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.8" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ "bitflags 2.9.4", ] [[package]] name = "redox_users" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ - "getrandom 0.2.10", - "redox_syscall 0.2.16", - "thiserror 1.0.65", + "getrandom 0.2.16", + "libredox", + "thiserror 1.0.69", ] [[package]] @@ -18338,30 +18371,30 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87413ebb313323d431e85d0afc5a68222aaed972843537cbfe5f061cf1b4bcab" dependencies = [ - "derive_more 0.99.17", + "derive_more 0.99.20", "fs-err", "static_init", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] name = "ref-cast" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -18385,7 +18418,7 @@ checksum = "5216b1837de2149f8bc8e6d5f88a9326b63b8c836ed58ce4a0a29ec736a59734" dependencies = [ "allocator-api2", "bumpalo", - "hashbrown 0.15.3", + "hashbrown 0.15.5", "log", "rustc-hash 2.1.1", "smallvec", @@ -18393,59 +18426,38 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" - -[[package]] -name = "regex-automata" -version = "0.4.8" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "relative-path" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc" +checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "relay-substrate-client" @@ -18483,7 +18495,7 @@ dependencies = [ "sp-trie", "sp-version", "staging-xcm", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -18501,13 +18513,13 @@ dependencies = [ "jsonpath_lib", "log", "num-traits", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "serde_json", "sp-runtime", "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "sysinfo", - "thiserror 1.0.65", + "thiserror 1.0.69", "time", "tokio", ] @@ -18529,9 +18541,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.9" +version = "0.12.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" dependencies = [ "base64 0.22.1", "bytes", @@ -18539,52 +18551,45 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.5", - "http 1.1.0", - "http-body 1.0.0", + "h2 0.4.12", + "http 1.3.1", + "http-body 1.0.1", "http-body-util", - "hyper 1.6.0", - "hyper-rustls 0.27.3", + "hyper 1.7.0", + "hyper-rustls 0.27.7", "hyper-tls", "hyper-util", - "ipnet", "js-sys", "log", "mime", "native-tls", - "once_cell", "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.18", - "rustls-pemfile 2.0.0", + "rustls 0.23.31", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", - "system-configuration 0.6.1", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.3", + "tower 0.5.2", + "tower-http 0.6.6", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.26.3", - "windows-registry", + "webpki-roots 1.0.2", ] [[package]] name = "resolv-conf" -version = "0.7.0" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" -dependencies = [ - "hostname", - "quick-error", -] +checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" [[package]] name = "revive-dev-node" @@ -18603,7 +18608,7 @@ dependencies = [ name = "revive-dev-runtime" version = "0.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "parity-scale-codec", "polkadot-sdk", "scale-info", @@ -18806,7 +18811,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ "hmac 0.12.1", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -18826,15 +18831,14 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.8" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.10", + "getrandom 0.2.16", "libc", - "spin 0.9.8", "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -19103,20 +19107,20 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "rpassword" -version = "7.2.0" +version = "7.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" +checksum = "66d4c8b64f049c6721ec8ccec37ddfc3d641c4a7fca57e8f2a89de509c73df39" dependencies = [ "libc", "rtoolbox", - "winapi", + "windows-sys 0.59.0", ] [[package]] name = "rsa" -version = "0.9.5" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af6c4b23d99685a1408194da11270ef8e9809aff951cc70ec9b17350b087e474" +checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" dependencies = [ "const-oid", "digest 0.10.7", @@ -19128,7 +19132,7 @@ dependencies = [ "rand_core 0.6.4", "signature", "spki", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] @@ -19141,7 +19145,7 @@ dependencies = [ "futures", "futures-timer", "rstest_macros", - "rustc_version 0.4.0", + "rustc_version 0.4.1", ] [[package]] @@ -19152,38 +19156,41 @@ checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605" dependencies = [ "cfg-if", "glob", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "regex", "relative-path", - "rustc_version 0.4.0", - "syn 2.0.98", + "rustc_version 0.4.1", + "syn 2.0.106", "unicode-ident", ] [[package]] name = "rtnetlink" -version = "0.10.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" +checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0" dependencies = [ "futures", "log", + "netlink-packet-core", "netlink-packet-route", + "netlink-packet-utils", "netlink-proto", - "nix 0.24.3", - "thiserror 1.0.65", + "netlink-sys", + "nix 0.26.4", + "thiserror 1.0.69", "tokio", ] [[package]] name = "rtoolbox" -version = "0.0.1" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" +checksum = "a7cc970b249fbe527d6e02e0a227762c9108b2f49d81094fe357ffc6d14d7f6f" dependencies = [ "libc", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -19200,9 +19207,9 @@ dependencies = [ [[package]] name = "ruint" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11256b5fe8c68f56ac6f39ef0720e592f33d2367a4782740d9c9142e889c7fb4" +checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", @@ -19217,7 +19224,7 @@ dependencies = [ "primitive-types 0.12.2", "proptest", "rand 0.8.5", - "rand 0.9.0", + "rand 0.9.2", "rlp 0.5.2", "ruint-macro", "serde", @@ -19233,9 +19240,9 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -19275,11 +19282,11 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ - "semver 1.0.18", + "semver 1.0.27", ] [[package]] @@ -19293,68 +19300,54 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.42" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ "bitflags 2.9.4", "errno", "libc", - "linux-raw-sys 0.4.14", + "linux-raw-sys 0.4.15", "windows-sys 0.59.0", ] [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ "bitflags 2.9.4", "errno", "libc", - "linux-raw-sys 0.9.4", - "windows-sys 0.60.2", + "linux-raw-sys 0.11.0", + "windows-sys 0.61.0", ] [[package]] name = "rustls" -version = "0.21.7" +version = "0.21.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring 0.16.20", - "rustls-webpki 0.101.4", + "ring 0.17.14", + "rustls-webpki 0.101.7", "sct", ] [[package]] name = "rustls" -version = "0.23.18" +version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9cc1d47e243d655ace55ed38201c19ae02c148ae56412ab8750e8f0166ab7f" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ "log", "once_cell", - "ring 0.17.8", + "ring 0.17.14", "rustls-pki-types", - "rustls-webpki 0.102.8", - "subtle 2.5.0", + "rustls-webpki 0.103.6", + "subtle 2.6.1", "zeroize", ] @@ -19365,115 +19358,95 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile 1.0.3", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-native-certs" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" -dependencies = [ - "openssl-probe", - "rustls-pemfile 2.0.0", - "rustls-pki-types", + "rustls-pemfile", "schannel", - "security-framework", + "security-framework 2.11.1", ] [[package]] name = "rustls-native-certs" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ "openssl-probe", - "rustls-pemfile 2.0.0", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 3.4.0", ] [[package]] name = "rustls-pemfile" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ "base64 0.21.7", ] [[package]] -name = "rustls-pemfile" -version = "2.0.0" +name = "rustls-pki-types" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" dependencies = [ - "base64 0.21.7", - "rustls-pki-types", + "web-time", + "zeroize", ] -[[package]] -name = "rustls-pki-types" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" - [[package]] name = "rustls-platform-verifier" -version = "0.3.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5f0d26fa1ce3c790f9590868f0109289a044acb954525f933e2aa3b871c157d" +checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" dependencies = [ - "core-foundation", + "core-foundation 0.10.1", "core-foundation-sys", "jni", "log", "once_cell", - "rustls 0.23.18", - "rustls-native-certs 0.7.0", + "rustls 0.23.31", + "rustls-native-certs 0.8.1", "rustls-platform-verifier-android", - "rustls-webpki 0.102.8", - "security-framework", + "rustls-webpki 0.103.6", + "security-framework 3.4.0", "security-framework-sys", - "webpki-roots 0.26.3", - "winapi", + "webpki-root-certs 0.26.11", + "windows-sys 0.59.0", ] [[package]] name = "rustls-platform-verifier-android" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84e217e7fdc8466b5b35d30f8c0a30febd29173df4a3a0c2115d306b9c4117ad" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.101.4" +version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.16.20", - "untrusted 0.7.1", + "ring 0.17.14", + "untrusted 0.9.0", ] [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.103.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +checksum = "8572f3c2cb9934231157b45499fc41e1f58c589fdfb81a844ba873265e80f8eb" dependencies = [ - "ring 0.17.8", + "ring 0.17.14", "rustls-pki-types", "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rusty-fork" @@ -19494,7 +19467,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5174a470eeb535a721ae9fdd6e291c2411a906b96592182d05217591d5c5cf7b" dependencies = [ "byteorder", - "derive_more 0.99.17", + "derive_more 0.99.20", ] [[package]] @@ -19516,9 +19489,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "safe-mix" @@ -19531,9 +19504,9 @@ dependencies = [ [[package]] name = "safe_arch" -version = "0.7.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" +checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" dependencies = [ "bytemuck", ] @@ -19563,7 +19536,7 @@ dependencies = [ "log", "sp-core 28.0.0", "sp-wasm-interface 20.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -19598,7 +19571,7 @@ dependencies = [ "substrate-prometheus-endpoint", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -19609,7 +19582,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-block-builder", "sc-client-api", "sc-proposer-metrics", @@ -19647,10 +19620,10 @@ dependencies = [ name = "sc-chain-spec" version = "28.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "clap", "docify", - "memmap2 0.9.3", + "memmap2 0.9.8", "parity-scale-codec", "pretty_assertions", "regex", @@ -19679,17 +19652,17 @@ dependencies = [ name = "sc-chain-spec-derive" version = "11.0.0" dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "sc-cli" version = "0.36.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "chrono", "clap", "fdlimit", @@ -19725,7 +19698,7 @@ dependencies = [ "sp-tracing 16.0.0", "sp-version", "tempfile", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -19737,7 +19710,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-executor", "sc-transaction-pool-api", "sc-utils", @@ -19759,7 +19732,7 @@ dependencies = [ name = "sc-client-db" version = "0.35.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "criterion", "hash-db", "kitchensink-runtime", @@ -19770,7 +19743,7 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "sc-client-api", "sc-state-db", @@ -19797,7 +19770,7 @@ dependencies = [ "futures", "log", "mockall", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-network-types", "sc-utils", @@ -19809,7 +19782,7 @@ dependencies = [ "sp-state-machine", "sp-test-primitives", "substrate-prometheus-endpoint", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -19821,7 +19794,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-block-builder", "sc-client-api", "sc-consensus", @@ -19847,7 +19820,7 @@ dependencies = [ "substrate-prometheus-endpoint", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -19863,7 +19836,7 @@ dependencies = [ "num-rational", "num-traits", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-block-builder", "sc-client-api", "sc-consensus", @@ -19889,7 +19862,7 @@ dependencies = [ "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "substrate-test-runtime-client", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -19915,7 +19888,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "substrate-test-runtime-client", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -19923,13 +19896,13 @@ dependencies = [ name = "sc-consensus-beefy" version = "13.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-block-builder", "sc-client-api", "sc-consensus", @@ -19953,7 +19926,7 @@ dependencies = [ "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "substrate-test-runtime-client", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "wasm-timer", ] @@ -19966,7 +19939,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-consensus-beefy", "sc-rpc", "serde", @@ -19975,7 +19948,7 @@ dependencies = [ "sp-core 28.0.0", "sp-runtime", "substrate-test-runtime-client", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -19996,7 +19969,7 @@ name = "sc-consensus-grandpa" version = "0.19.0" dependencies = [ "ahash", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "assert_matches", "async-trait", "dyn-clone", @@ -20006,7 +19979,7 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "sc-block-builder", "sc-chain-spec", @@ -20036,7 +20009,7 @@ dependencies = [ "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "substrate-test-runtime-client", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -20060,7 +20033,7 @@ dependencies = [ "sp-keyring", "sp-runtime", "substrate-test-runtime-client", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -20098,7 +20071,7 @@ dependencies = [ "substrate-prometheus-endpoint", "substrate-test-runtime-client", "substrate-test-runtime-transaction-pool", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -20111,7 +20084,7 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-consensus", "sp-api", @@ -20123,7 +20096,7 @@ dependencies = [ "sp-inherents", "sp-runtime", "substrate-prometheus-endpoint", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -20153,12 +20126,12 @@ dependencies = [ name = "sc-executor" version = "0.32.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "assert_matches", "criterion", "num_cpus", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "paste", "sc-executor-common", "sc-executor-polkavm", @@ -20183,7 +20156,7 @@ dependencies = [ "substrate-test-runtime", "tempfile", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.20", "wat", ] @@ -20195,7 +20168,7 @@ dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface 20.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "wasm-instrument", ] @@ -20217,9 +20190,9 @@ dependencies = [ "cargo_metadata", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "paste", - "rustix 1.0.8", + "rustix 1.1.2", "sc-allocator", "sc-executor-common", "sc-runtime-test", @@ -20250,21 +20223,21 @@ dependencies = [ name = "sc-keystore" version = "25.0.0" dependencies = [ - "array-bytes 6.2.2", - "parking_lot 0.12.3", + "array-bytes 6.2.3", + "parking_lot 0.12.4", "serde_json", "sp-application-crypto", "sp-core 28.0.0", "sp-keystore", "tempfile", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] name = "sc-mixnet" version = "0.4.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "arrayvec 0.7.6", "blake2 0.10.6", "bytes", @@ -20273,7 +20246,7 @@ dependencies = [ "log", "mixnet", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-network", "sc-network-types", @@ -20284,14 +20257,14 @@ dependencies = [ "sp-keystore", "sp-mixnet", "sp-runtime", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] name = "sc-network" version = "0.34.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "assert_matches", "async-channel 1.9.0", "async-trait", @@ -20311,7 +20284,7 @@ dependencies = [ "mockall", "multistream-select", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "partial_sort", "pin-project", "prost 0.12.6", @@ -20337,7 +20310,7 @@ dependencies = [ "substrate-test-runtime", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tokio-stream", "tokio-util", @@ -20383,7 +20356,7 @@ dependencies = [ name = "sc-network-light" version = "0.33.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-channel 1.9.0", "futures", "log", @@ -20396,14 +20369,14 @@ dependencies = [ "sp-blockchain", "sp-core 28.0.0", "sp-runtime", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] name = "sc-network-statement" version = "0.16.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-channel 1.9.0", "futures", "log", @@ -20422,7 +20395,7 @@ dependencies = [ name = "sc-network-sync" version = "0.33.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "fork-tree", @@ -20452,7 +20425,7 @@ dependencies = [ "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "substrate-test-runtime-client", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tokio-stream", ] @@ -20467,7 +20440,7 @@ dependencies = [ "futures-timer", "libp2p", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "sc-block-builder", "sc-client-api", @@ -20493,7 +20466,7 @@ dependencies = [ name = "sc-network-transactions" version = "0.33.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "futures", "log", "parity-scale-codec", @@ -20518,13 +20491,13 @@ dependencies = [ "libp2p-kad", "litep2p", "log", - "multiaddr 0.18.1", - "multihash 0.19.1", + "multiaddr 0.18.2", + "multihash 0.19.3", "quickcheck", "rand 0.8.5", "serde", "serde_with", - "thiserror 1.0.65", + "thiserror 1.0.69", "zeroize", ] @@ -20538,15 +20511,15 @@ dependencies = [ "futures", "futures-timer", "http-body-util", - "hyper 1.6.0", - "hyper-rustls 0.27.3", + "hyper 1.7.0", + "hyper-rustls 0.27.7", "hyper-util", "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", - "rustls 0.23.18", + "rustls 0.23.31", "sc-block-builder", "sc-client-api", "sc-client-db", @@ -20586,7 +20559,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pretty_assertions", "sc-block-builder", "sc-chain-spec", @@ -20631,7 +20604,7 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-version", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -20642,9 +20615,9 @@ dependencies = [ "forwarded-header-value", "futures", "governor", - "http 1.1.0", + "http 1.3.1", "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "ip_network", "jsonrpsee", "log", @@ -20653,7 +20626,7 @@ dependencies = [ "serde_json", "substrate-prometheus-endpoint", "tokio", - "tower", + "tower 0.4.13", "tower-http 0.5.2", ] @@ -20661,7 +20634,7 @@ dependencies = [ name = "sc-rpc-spec-v2" version = "0.34.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "assert_matches", "async-trait", "futures", @@ -20671,7 +20644,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pretty_assertions", "rand 0.8.5", "sc-block-builder", @@ -20698,7 +20671,7 @@ dependencies = [ "substrate-test-runtime", "substrate-test-runtime-client", "substrate-test-runtime-transaction-pool", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tokio-stream", ] @@ -20730,7 +20703,7 @@ dependencies = [ "sp-version", "sp-wasm-interface 20.0.0", "subxt 0.43.0", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -20745,7 +20718,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "sc-chain-spec", @@ -20792,7 +20765,7 @@ dependencies = [ "substrate-test-runtime", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tracing", "tracing-futures", @@ -20802,13 +20775,13 @@ dependencies = [ name = "sc-service-test" version = "2.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-channel 1.9.0", "fdlimit", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-block-builder", "sc-client-api", "sc-client-db", @@ -20839,7 +20812,7 @@ version = "0.30.0" dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sp-core 28.0.0", ] @@ -20849,7 +20822,7 @@ version = "10.0.0" dependencies = [ "log", "parity-db", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-client-api", "sc-keystore", "sp-api", @@ -20871,7 +20844,7 @@ dependencies = [ "fs4", "log", "sp-core 28.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -20890,14 +20863,14 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-runtime", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] name = "sc-sysinfo" version = "27.0.0" dependencies = [ - "derive_more 0.99.17", + "derive_more 0.99.20", "futures", "libc", "log", @@ -20921,13 +20894,13 @@ dependencies = [ "futures", "libp2p", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "sc-utils", "serde", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", "wasm-timer", ] @@ -20942,7 +20915,7 @@ dependencies = [ "libc", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "regex", "rustc-hash 1.1.0", "sc-client-api", @@ -20954,20 +20927,20 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-tracing 16.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", "tracing-log", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.20", ] [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -20980,14 +20953,14 @@ dependencies = [ "chrono", "criterion", "cumulus-zombienet-sdk-helpers", - "env_logger 0.11.3", + "env_logger 0.11.8", "futures", "futures-timer", - "indexmap 2.9.0", + "indexmap 2.11.3", "itertools 0.11.0", "linked-hash-map", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rstest", "sc-block-builder", "sc-client-api", @@ -21008,11 +20981,11 @@ dependencies = [ "substrate-test-runtime-client", "substrate-test-runtime-transaction-pool", "substrate-txtesttool", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tokio-stream", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.20", "zombienet-configuration", "zombienet-sdk", ] @@ -21023,7 +20996,7 @@ version = "28.0.0" dependencies = [ "async-trait", "futures", - "indexmap 2.9.0", + "indexmap 2.11.3", "log", "parity-scale-codec", "serde", @@ -21031,7 +21004,7 @@ dependencies = [ "sp-blockchain", "sp-core 28.0.0", "sp-runtime", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -21042,7 +21015,7 @@ dependencies = [ "futures", "futures-timer", "log", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "prometheus", "sp-arithmetic", "tokio-test", @@ -21072,7 +21045,7 @@ dependencies = [ "scale-decode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -21081,10 +21054,10 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f4b54a1211260718b92832b661025d1f1a4b6930fbadd6908e00edd265fa5f7" dependencies = [ - "darling 0.20.10", - "proc-macro2 1.0.95", + "darling 0.20.11", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -21099,7 +21072,7 @@ dependencies = [ "scale-encode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -21108,11 +21081,11 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78a3993a13b4eafa89350604672c8757b7ea84c7c5947d4b3691e3169c96379b" dependencies = [ - "darling 0.20.10", - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "darling 0.20.11", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -21135,10 +21108,10 @@ version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -21157,11 +21130,11 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05c61b6b706a3eaad63b506ab50a1d2319f817ae01cf753adcc3f055f9f0fcd6" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "scale-info", - "syn 2.0.98", - "thiserror 2.0.12", + "syn 2.0.106", + "thiserror 2.0.16", ] [[package]] @@ -21179,48 +21152,85 @@ dependencies = [ "scale-encode", "scale-type-resolver", "serde", - "thiserror 2.0.12", + "thiserror 2.0.16", "yap", ] [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.61.0", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "schemars_derive 0.8.22", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", ] [[package]] name = "schemars" -version = "0.8.13" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763f8cd0d4c71ed8389c90cb8100cba87e763bd01a8e614d4f0af97bcd50a161" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" dependencies = [ "dyn-clone", - "schemars_derive", + "ref-cast", + "schemars_derive 1.0.4", "serde", "serde_json", ] [[package]] name = "schemars_derive" -version = "0.8.13" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "serde_derive_internals", - "syn 1.0.109", + "syn 2.0.106", +] + +[[package]] +name = "schemars_derive" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d020396d1d138dc19f1165df7545479dcd58d93810dc5d646a16e55abefa80" +dependencies = [ + "proc-macro2 1.0.101", + "quote 1.0.40", + "serde_derive_internals", + "syn 2.0.106", ] [[package]] name = "schnellru" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" +checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649" dependencies = [ "ahash", "cfg-if", @@ -21246,9 +21256,9 @@ dependencies = [ [[package]] name = "schnorrkel" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" +checksum = "6e9fcb6c2e176e86ec703e22560d99d65a5ee9056ae45a08e13e84ebf796296f" dependencies = [ "aead", "arrayref", @@ -21259,7 +21269,7 @@ dependencies = [ "rand_core 0.6.4", "serde_bytes", "sha2 0.10.9", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] @@ -21277,9 +21287,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scratch" -version = "1.0.7" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" +checksum = "d68f2ec51b097e4c1a75b681a8bec621909b5e91f15bb7b840c4f2f7b01148b2" [[package]] name = "scrypt" @@ -21295,12 +21305,12 @@ dependencies = [ [[package]] name = "sct" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.16.20", - "untrusted 0.7.1", + "ring 0.17.14", + "untrusted 0.9.0", ] [[package]] @@ -21314,7 +21324,7 @@ dependencies = [ "generic-array 0.14.7", "pkcs8", "serdect", - "subtle 2.5.0", + "subtle 2.6.1", "zeroize", ] @@ -21327,6 +21337,15 @@ dependencies = [ "libc", ] +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "secp256k1-sys 0.8.2", +] + [[package]] name = "secp256k1" version = "0.28.2" @@ -21354,10 +21373,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" dependencies = [ "bitcoin_hashes 0.14.0", - "rand 0.9.0", + "rand 0.9.2", "secp256k1-sys 0.11.0", ] +[[package]] +name = "secp256k1-sys" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4473013577ec77b4ee3668179ef1186df3146e2cf2d927bd200974c6fe60fd99" +dependencies = [ + "cc", +] + [[package]] name = "secp256k1-sys" version = "0.9.2" @@ -21406,23 +21434,35 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.9.4", - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "libc", - "num-bigint", "security-framework-sys", ] [[package]] -name = "security-framework-sys" -version = "2.11.0" +name = "security-framework" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640" +dependencies = [ + "bitflags 2.9.4", + "core-foundation 0.10.1", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -21452,16 +21492,17 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ - "semver-parser 0.10.2", + "semver-parser 0.10.3", ] [[package]] name = "semver" -version = "1.0.18" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" dependencies = [ "serde", + "serde_core", ] [[package]] @@ -21472,9 +21513,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "semver-parser" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" dependencies = [ "pest", ] @@ -21487,10 +21528,11 @@ checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.225" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "fd6c24dee235d0da097043389623fb913daddf92c76e9f5a1db88607a0bcbd1d" dependencies = [ + "serde_core", "serde_derive", ] @@ -21515,33 +21557,43 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.12" +version = "0.11.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" dependencies = [ "serde", + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.225" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "659356f9a0cb1e529b24c01e43ad2bdf520ec4ceaf83047b83ddcc2251f96383" +dependencies = [ + "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.225" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "0ea936adf78b1f766949a4977b91d2f5595825bd6ec079aa9543ad2685fc4516" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "serde_derive_internals" -version = "0.26.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 1.0.109", + "syn 2.0.106", ] [[package]] @@ -21555,26 +21607,36 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.132" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.11.3", "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2789234a13a53fc4be1b51ea1bab45a3c338bdb884862a257d10e5a74ae009e6" +dependencies = [ + "serde_core", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -21589,15 +21651,17 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" +checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.9.0", + "indexmap 2.11.3", + "schemars 0.9.0", + "schemars 1.0.4", "serde", "serde_derive", "serde_json", @@ -21607,14 +21671,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ - "darling 0.20.10", - "proc-macro2 1.0.95", + "darling 0.20.11", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -21623,7 +21687,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.11.3", "itoa", "ryu", "serde", @@ -21661,7 +21725,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] @@ -21703,9 +21767,9 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] @@ -21718,18 +21782,18 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] [[package]] name = "signature" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest 0.10.7", "rand_core 0.6.4", @@ -21737,9 +21801,9 @@ dependencies = [ [[package]] name = "simba" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +checksum = "c99284beb21666094ba2b75bbceda012e610f5479dfcc2d6e2426f53197ffd95" dependencies = [ "approx", "num-complex", @@ -21777,12 +21841,9 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "slice-group-by" @@ -21802,9 +21863,9 @@ dependencies = [ [[package]] name = "slotmap" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" dependencies = [ "version_check", ] @@ -21822,9 +21883,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" dependencies = [ "serde", ] @@ -21835,15 +21896,15 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a33bd3e260892199c3ccfc487c88b2da2265080acb316cd920da72fdfd7c599f" dependencies = [ - "async-channel 2.3.0", + "async-channel 2.5.0", "async-executor", "async-fs", - "async-io 2.3.3", - "async-lock 3.4.0", + "async-io", + "async-lock", "async-net", "async-process", "blocking", - "futures-lite 2.3.0", + "futures-lite 2.6.1", ] [[package]] @@ -21853,7 +21914,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "966e72d77a3b2171bb7461d0cb91f43670c63558c62d7cf42809cae6c8b6b818" dependencies = [ "arrayvec 0.7.6", - "async-lock 3.4.0", + "async-lock", "atomic-take", "base64 0.22.1", "bip39", @@ -21861,12 +21922,12 @@ dependencies = [ "bs58", "chacha20", "crossbeam-queue", - "derive_more 0.99.17", + "derive_more 0.99.20", "ed25519-zebra", "either", - "event-listener 5.3.1", + "event-listener 5.4.1", "fnv", - "futures-lite 2.3.0", + "futures-lite 2.6.1", "futures-util", "hashbrown 0.14.5", "hex", @@ -21885,7 +21946,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "ruzstd 0.6.0", - "schnorrkel 0.11.4", + "schnorrkel 0.11.5", "serde", "serde_json", "sha2 0.10.9", @@ -21907,7 +21968,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e16e5723359f0048bf64bfdfba64e5732a56847d42c4fd3fe56f18280c813413" dependencies = [ "arrayvec 0.7.6", - "async-lock 3.4.0", + "async-lock", "atomic-take", "base64 0.22.1", "bip39", @@ -21918,11 +21979,11 @@ dependencies = [ "derive_more 2.0.1", "ed25519-zebra", "either", - "event-listener 5.3.1", + "event-listener 5.4.1", "fnv", - "futures-lite 2.3.0", + "futures-lite 2.6.1", "futures-util", - "hashbrown 0.15.3", + "hashbrown 0.15.5", "hex", "hmac 0.12.1", "itertools 0.14.0", @@ -21939,7 +22000,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "ruzstd 0.8.1", - "schnorrkel 0.11.4", + "schnorrkel 0.11.5", "serde", "serde_json", "sha2 0.10.9", @@ -21948,7 +22009,7 @@ dependencies = [ "slab", "smallvec", "soketto", - "twox-hash 2.1.1", + "twox-hash 2.1.2", "wasmi 0.40.0", "x25519-dalek", "zeroize", @@ -21960,24 +22021,24 @@ version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a33b06891f687909632ce6a4e3fd7677b24df930365af3d0bcb078310129f3f" dependencies = [ - "async-channel 2.3.0", - "async-lock 3.4.0", + "async-channel 2.5.0", + "async-lock", "base64 0.22.1", "blake2-rfc", "bs58", - "derive_more 0.99.17", + "derive_more 0.99.20", "either", - "event-listener 5.3.1", + "event-listener 5.4.1", "fnv", "futures-channel", - "futures-lite 2.3.0", + "futures-lite 2.6.1", "futures-util", "hashbrown 0.14.5", "hex", "itertools 0.13.0", "log", "lru", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", @@ -21996,24 +22057,24 @@ version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bba9e591716567d704a8252feeb2f1261a286e1e2cbdd4e49e9197c34a14e2" dependencies = [ - "async-channel 2.3.0", - "async-lock 3.4.0", + "async-channel 2.5.0", + "async-lock", "base64 0.22.1", "blake2-rfc", "bs58", "derive_more 2.0.1", "either", - "event-listener 5.3.1", + "event-listener 5.4.1", "fnv", "futures-channel", - "futures-lite 2.3.0", + "futures-lite 2.6.1", "futures-util", - "hashbrown 0.15.3", + "hashbrown 0.15.5", "hex", "itertools 0.14.0", "log", "lru", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", @@ -22028,9 +22089,9 @@ dependencies = [ [[package]] name = "snap" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "snow" @@ -22043,10 +22104,10 @@ dependencies = [ "chacha20poly1305", "curve25519-dalek", "rand_core 0.6.4", - "ring 0.17.8", - "rustc_version 0.4.0", + "ring 0.17.14", + "rustc_version 0.4.1", "sha2 0.10.9", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -22151,7 +22212,7 @@ dependencies = [ name = "snowbridge-merkle-tree" version = "0.2.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "hex", "hex-literal", "parity-scale-codec", @@ -22580,34 +22641,34 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", - "winapi", + "windows-sys 0.52.0", ] [[package]] name = "socket2" -version = "0.5.9" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "soketto" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" +checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" dependencies = [ "base64 0.22.1", "bytes", "futures", - "http 1.1.0", + "http 1.3.1", "httparse", "log", "rand 0.8.5", @@ -22714,7 +22775,7 @@ dependencies = [ "sp-test-primitives", "sp-trie", "sp-version", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -22725,10 +22786,10 @@ dependencies = [ "assert_matches", "blake2 0.10.6", "expander", - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -22832,7 +22893,7 @@ version = "28.0.0" dependencies = [ "futures", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "schnellru", "sp-api", "sp-consensus", @@ -22840,7 +22901,7 @@ dependencies = [ "sp-database", "sp-runtime", "sp-state-machine", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", ] @@ -22854,7 +22915,7 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -22893,7 +22954,7 @@ dependencies = [ name = "sp-consensus-beefy" version = "13.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "parity-scale-codec", "scale-info", "serde", @@ -22965,7 +23026,7 @@ name = "sp-core" version = "28.0.0" dependencies = [ "ark-vrf", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections 0.3.2", @@ -22984,13 +23045,13 @@ dependencies = [ "merlin", "parity-bip39", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "paste", "primitive-types 0.13.1", "rand 0.8.5", "regex", "scale-info", - "schnorrkel 0.11.4", + "schnorrkel 0.11.5", "secp256k1 0.28.2", "secrecy 0.8.0", "serde", @@ -23003,7 +23064,7 @@ dependencies = [ "sp-storage 19.0.0", "ss58-registry", "substrate-bip39 0.4.7", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", "w3f-bls", "zeroize", @@ -23016,10 +23077,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cdbb58c21e6b27f2aadf3ff0c8b20a8ead13b9dfe63f46717fd59334517f3b4" dependencies = [ "ark-vrf", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "bitflags 1.3.2", "blake2 0.10.6", - "bounded-collections 0.2.3", + "bounded-collections 0.2.4", "bs58", "dyn-clonable", "ed25519-zebra", @@ -23034,12 +23095,12 @@ dependencies = [ "merlin", "parity-bip39", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "paste", "primitive-types 0.13.1", "rand 0.8.5", "scale-info", - "schnorrkel 0.11.4", + "schnorrkel 0.11.5", "secp256k1 0.28.2", "secrecy 0.8.0", "serde", @@ -23051,7 +23112,7 @@ dependencies = [ "sp-storage 22.0.0", "ss58-registry", "substrate-bip39 0.6.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", "w3f-bls", "zeroize", @@ -23133,7 +23194,7 @@ version = "0.1.0" dependencies = [ "quote 1.0.40", "sp-crypto-hashing 0.1.0", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -23141,16 +23202,16 @@ name = "sp-database" version = "10.0.0" dependencies = [ "kvdb", - "parking_lot 0.12.3", + "parking_lot 0.12.4", ] [[package]] name = "sp-debug-derive" version = "14.0.0" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -23159,9 +23220,9 @@ version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -23205,7 +23266,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -23247,7 +23308,7 @@ name = "sp-keystore" version = "0.34.0" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sp-core 28.0.0", "sp-externalities 0.25.0", ] @@ -23256,7 +23317,7 @@ dependencies = [ name = "sp-maybe-compressed-blob" version = "11.0.0" dependencies = [ - "thiserror 1.0.65", + "thiserror 1.0.69", "zstd 0.12.4", ] @@ -23283,7 +23344,7 @@ dependencies = [ name = "sp-mmr-primitives" version = "26.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "log", "parity-scale-codec", "polkadot-ckb-merkle-mountain-range", @@ -23293,7 +23354,7 @@ dependencies = [ "sp-core 28.0.0", "sp-debug-derive 14.0.0", "sp-runtime", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -23429,10 +23490,10 @@ version = "17.0.0" dependencies = [ "Inflector", "expander", - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -23443,10 +23504,10 @@ checksum = "0195f32c628fee3ce1dfbbf2e7e52a30ea85f3589da9fe62a8b816d70fc06294" dependencies = [ "Inflector", "expander", - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -23516,12 +23577,12 @@ name = "sp-state-machine" version = "0.35.0" dependencies = [ "arbitrary", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "assert_matches", "hash-db", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pretty_assertions", "rand 0.8.5", "smallvec", @@ -23530,7 +23591,7 @@ dependencies = [ "sp-panic-handler", "sp-runtime", "sp-trie", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", "trie-db", ] @@ -23554,7 +23615,7 @@ dependencies = [ "sp-externalities 0.25.0", "sp-runtime", "sp-runtime-interface 24.0.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "x25519-dalek", ] @@ -23612,7 +23673,7 @@ dependencies = [ "parity-scale-codec", "sp-inherents", "sp-runtime", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -23623,7 +23684,7 @@ dependencies = [ "regex", "tracing", "tracing-core", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.20", ] [[package]] @@ -23635,7 +23696,7 @@ dependencies = [ "parity-scale-codec", "tracing", "tracing-core", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.20", ] [[package]] @@ -23664,15 +23725,15 @@ name = "sp-trie" version = "29.0.0" dependencies = [ "ahash", - "array-bytes 6.2.2", + "array-bytes 6.2.3", "criterion", - "foldhash", + "foldhash 0.1.5", "hash-db", - "hashbrown 0.15.3", + "hashbrown 0.15.5", "memory-db", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "rand 0.8.5", "scale-info", "schnellru", @@ -23680,7 +23741,7 @@ dependencies = [ "sp-externalities 0.25.0", "sp-runtime", "substrate-prometheus-endpoint", - "thiserror 1.0.65", + "thiserror 1.0.69", "tracing", "trie-bench", "trie-db", @@ -23701,7 +23762,7 @@ dependencies = [ "sp-runtime", "sp-std 14.0.0", "sp-version-proc-macro", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -23710,10 +23771,10 @@ version = "13.0.0" dependencies = [ "parity-scale-codec", "proc-macro-warning", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "sp-version", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -23746,7 +23807,7 @@ dependencies = [ "bounded-collections 0.3.2", "parity-scale-codec", "scale-info", - "schemars", + "schemars 0.8.22", "serde", "smallvec", "sp-arithmetic", @@ -23780,30 +23841,29 @@ dependencies = [ ] [[package]] -name = "spki" -version = "0.7.2" +name = "spinning_top" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" dependencies = [ - "base64ct", - "der", + "lock_api", ] [[package]] -name = "sqlformat" -version = "0.2.6" +name = "spki" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ - "nom 7.1.3", - "unicode_categories", + "base64ct", + "der", ] [[package]] name = "sqlx" -version = "0.8.2" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e" +checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc" dependencies = [ "sqlx-core", "sqlx-macros", @@ -23814,37 +23874,32 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.2" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e" +checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" dependencies = [ - "atoi", - "byteorder", + "base64 0.22.1", "bytes", "crc", "crossbeam-queue", "either", - "event-listener 5.3.1", - "futures-channel", + "event-listener 5.4.1", "futures-core", "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.14.5", - "hashlink 0.9.1", - "hex", - "indexmap 2.9.0", + "hashbrown 0.15.5", + "hashlink 0.10.0", + "indexmap 2.11.3", "log", "memchr", "once_cell", - "paste", "percent-encoding", "serde", "serde_json", "sha2 0.10.9", "smallvec", - "sqlformat", - "thiserror 1.0.65", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -23853,29 +23908,29 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.8.2" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657" +checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "sqlx-core", "sqlx-macros-core", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "sqlx-macros-core" -version = "0.8.2" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1804e8a7c7865599c9c79be146dc8a9fd8cc86935fa641d3ea58e5f0688abaa5" +checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" dependencies = [ "dotenvy", "either", "heck 0.5.0", "hex", "once_cell", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "serde", "serde_json", @@ -23884,17 +23939,16 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.98", - "tempfile", + "syn 2.0.106", "tokio", "url", ] [[package]] name = "sqlx-mysql" -version = "0.8.2" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64bb4714269afa44aef2755150a0fc19d756fb580a67db8885608cf02f47d06a" +checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" dependencies = [ "atoi", "base64 0.22.1", @@ -23927,16 +23981,16 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 1.0.65", + "thiserror 2.0.16", "tracing", "whoami", ] [[package]] name = "sqlx-postgres" -version = "0.8.2" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8" +checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" dependencies = [ "atoi", "base64 0.22.1", @@ -23947,7 +24001,6 @@ dependencies = [ "etcetera", "futures-channel", "futures-core", - "futures-io", "futures-util", "hex", "hkdf", @@ -23965,16 +24018,16 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 1.0.65", + "thiserror 2.0.16", "tracing", "whoami", ] [[package]] name = "sqlx-sqlite" -version = "0.8.2" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5b2cf34a45953bfd3daaf3db0f7a7878ab9b7a6b91b422d24a7a9e4c857b680" +checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea" dependencies = [ "atoi", "flume", @@ -23989,23 +24042,24 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", + "thiserror 2.0.16", "tracing", "url", ] [[package]] name = "ss58-registry" -version = "1.43.0" +version = "1.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6915280e2d0db8911e5032a5c275571af6bdded2916abd691a659be25d3439" +checksum = "19409f13998e55816d1c728395af0b52ec066206341d939e22e7766df9b494b8" dependencies = [ "Inflector", "num-format", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "serde", "serde_json", - "unicode-xid 0.2.4", + "unicode-xid 0.2.6", ] [[package]] @@ -24026,7 +24080,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "syn 1.0.109", ] @@ -24056,7 +24110,7 @@ dependencies = [ name = "staging-node-cli" version = "3.0.0-dev" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "assert_cmd", "clap", "clap_complete", @@ -24103,7 +24157,7 @@ dependencies = [ "sp-io", "sp-runtime", "sp-statement-store", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -24126,7 +24180,7 @@ version = "2.0.0" name = "staging-xcm" version = "7.0.1" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "bounded-collections 0.3.2", "derive-where", "environmental", @@ -24135,7 +24189,7 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "schemars", + "schemars 0.8.22", "serde", "sp-io", "sp-runtime", @@ -24204,28 +24258,28 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "static_init" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" +checksum = "8bae1df58c5fea7502e8e352ec26b5579f6178e1fdb311e088580c980dee25ed" dependencies = [ "bitflags 1.3.2", - "cfg_aliases 0.1.1", + "cfg_aliases 0.2.1", "libc", - "parking_lot 0.11.2", - "parking_lot_core 0.8.6", + "parking_lot 0.12.4", + "parking_lot_core 0.9.11", "static_init_macro", "winapi", ] [[package]] name = "static_init_macro" -version = "1.0.2" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf" +checksum = "1389c88ddd739ec6d3f8f83343764a0e944cd23cfbf126a9796a714b0b6edd6f" dependencies = [ "cfg_aliases 0.1.1", "memchr", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "syn 1.0.109", ] @@ -24283,7 +24337,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "rustversion", "syn 1.0.109", @@ -24296,10 +24350,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "rustversion", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -24318,7 +24372,7 @@ dependencies = [ "parity-bip39", "pbkdf2", "rustc-hex", - "schnorrkel 0.11.4", + "schnorrkel 0.11.5", "sha2 0.10.9", "zeroize", ] @@ -24331,7 +24385,7 @@ checksum = "ca58ffd742f693dc13d69bdbb2e642ae239e0053f6aab3b104252892f856700a" dependencies = [ "hmac 0.12.1", "pbkdf2", - "schnorrkel 0.11.4", + "schnorrkel 0.11.5", "sha2 0.10.9", "zeroize", ] @@ -24416,11 +24470,11 @@ name = "substrate-prometheus-endpoint" version = "0.17.0" dependencies = [ "http-body-util", - "hyper 1.6.0", + "hyper 1.7.0", "hyper-util", "log", "prometheus", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", ] @@ -24463,7 +24517,7 @@ dependencies = [ "sp-runtime", "sp-trie", "strum 0.26.3", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -24500,7 +24554,7 @@ dependencies = [ name = "substrate-test-client" version = "2.0.1" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "async-trait", "futures", "parity-scale-codec", @@ -24524,7 +24578,7 @@ dependencies = [ name = "substrate-test-runtime" version = "2.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "frame-executive", "frame-metadata-hash-extension", "frame-support", @@ -24600,13 +24654,13 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "sc-transaction-pool", "sc-transaction-pool-api", "sp-blockchain", "sp-runtime", "substrate-test-runtime-client", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -24630,8 +24684,8 @@ dependencies = [ "hex", "jsonrpsee", "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.9.0", + "parking_lot 0.12.4", + "rand 0.9.2", "serde", "serde_json", "subxt 0.41.0", @@ -24639,19 +24693,19 @@ dependencies = [ "subxt-rpcs 0.41.0", "subxt-signer 0.41.0", "termplot", - "thiserror 2.0.12", + "thiserror 2.0.16", "time", "tokio", "tokio-util", "tracing", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.20", ] [[package]] name = "substrate-wasm-builder" version = "17.0.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "build-helper", "cargo_metadata", "console", @@ -24671,7 +24725,7 @@ dependencies = [ "sp-version", "strum 0.26.3", "tempfile", - "toml", + "toml 0.8.23", "walkdir", "wasm-opt", ] @@ -24684,9 +24738,9 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "subtle-ng" @@ -24722,7 +24776,7 @@ dependencies = [ "subxt-macro 0.41.0", "subxt-metadata 0.41.0", "subxt-rpcs 0.41.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-util", "tracing", @@ -24759,7 +24813,7 @@ dependencies = [ "subxt-macro 0.43.0", "subxt-metadata 0.43.0", "subxt-rpcs 0.43.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-util", "tracing", @@ -24776,13 +24830,13 @@ checksum = "324c52c09919fec8c22a4b572a466878322e99fe14a9e3d50d6c3700a226ec25" dependencies = [ "heck 0.5.0", "parity-scale-codec", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "scale-info", "scale-typegen", "subxt-metadata 0.41.0", - "syn 2.0.98", - "thiserror 2.0.12", + "syn 2.0.106", + "thiserror 2.0.16", ] [[package]] @@ -24793,13 +24847,13 @@ checksum = "1728caecd9700391e78cc30dc298221d6f5ca0ea28258a452aa76b0b7c229842" dependencies = [ "heck 0.5.0", "parity-scale-codec", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "scale-info", "scale-typegen", "subxt-metadata 0.43.0", - "syn 2.0.98", - "thiserror 2.0.12", + "syn 2.0.106", + "thiserror 2.0.16", ] [[package]] @@ -24828,7 +24882,7 @@ dependencies = [ "serde_json", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-metadata 0.41.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] @@ -24858,7 +24912,7 @@ dependencies = [ "serde_json", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-metadata 0.43.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "tracing", ] @@ -24873,7 +24927,7 @@ dependencies = [ "serde", "serde_json", "smoldot-light 0.16.2", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -24890,7 +24944,7 @@ dependencies = [ "serde", "serde_json", "smoldot-light 0.17.2", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-stream", "tracing", @@ -24902,14 +24956,14 @@ version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c2c8da275a620dd676381d72395dfea91f0a6cd849665b4f1d0919371850701" dependencies = [ - "darling 0.20.10", + "darling 0.20.11", "parity-scale-codec", "proc-macro-error2", "quote 1.0.40", "scale-typegen", "subxt-codegen 0.41.0", "subxt-utils-fetchmetadata 0.41.0", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -24918,7 +24972,7 @@ version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69516e8ff0e9340a0f21b8398da7f997571af4734ee81deada5150a2668c8443" dependencies = [ - "darling 0.20.10", + "darling 0.20.11", "parity-scale-codec", "proc-macro-error2", "quote 1.0.40", @@ -24926,7 +24980,7 @@ dependencies = [ "subxt-codegen 0.43.0", "subxt-metadata 0.43.0", "subxt-utils-fetchmetadata 0.43.0", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -24941,7 +24995,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -24956,7 +25010,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -24977,7 +25031,7 @@ dependencies = [ "serde_json", "subxt-core 0.41.0", "subxt-lightclient 0.41.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio-util", "tracing", "url", @@ -25002,7 +25056,7 @@ dependencies = [ "serde_json", "subxt-core 0.43.0", "subxt-lightclient 0.43.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tokio-util", "tracing", @@ -25026,7 +25080,7 @@ dependencies = [ "parity-scale-codec", "pbkdf2", "regex", - "schnorrkel 0.11.4", + "schnorrkel 0.11.5", "scrypt", "secp256k1 0.30.0", "secrecy 0.10.3", @@ -25035,7 +25089,7 @@ dependencies = [ "sha2 0.10.9", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-core 0.41.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "zeroize", ] @@ -25056,7 +25110,7 @@ dependencies = [ "parity-scale-codec", "pbkdf2", "regex", - "schnorrkel 0.11.4", + "schnorrkel 0.11.5", "scrypt", "secp256k1 0.30.0", "secrecy 0.10.3", @@ -25065,7 +25119,7 @@ dependencies = [ "sha2 0.10.9", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-core 0.43.0", - "thiserror 2.0.12", + "thiserror 2.0.16", "zeroize", ] @@ -25077,7 +25131,7 @@ checksum = "fc868b55fe2303788dc7703457af390111940c3da4714b510983284501780ed5" dependencies = [ "hex", "parity-scale-codec", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -25088,20 +25142,20 @@ checksum = "8c4fb8fd6b16ecd3537a29d70699f329a68c1e47f70ed1a46d64f76719146563" dependencies = [ "hex", "parity-scale-codec", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "sval" -version = "2.6.1" +version = "2.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b031320a434d3e9477ccf9b5756d57d4272937b8d22cb88af80b7633a1b78b1" +checksum = "7cc9739f56c5d0c44a5ed45473ec868af02eb896af8c05f616673a31e1d1bb09" [[package]] name = "sval_buffer" -version = "2.6.1" +version = "2.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf7e9412af26b342f3f2cc5cc4122b0105e9d16eb76046cd14ed10106cf6028" +checksum = "f39b07436a8c271b34dad5070c634d1d3d76d6776e938ee97b4a66a5e8003d0b" dependencies = [ "sval", "sval_ref", @@ -25109,18 +25163,18 @@ dependencies = [ [[package]] name = "sval_dynamic" -version = "2.6.1" +version = "2.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0ef628e8a77a46ed3338db8d1b08af77495123cc229453084e47cd716d403cf" +checksum = "ffcb072d857431bf885580dacecf05ed987bac931230736739a79051dbf3499b" dependencies = [ "sval", ] [[package]] name = "sval_fmt" -version = "2.6.1" +version = "2.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dc09e9364c2045ab5fa38f7b04d077b3359d30c4c2b3ec4bae67a358bd64326" +checksum = "3f214f427ad94a553e5ca5514c95c6be84667cbc5568cce957f03f3477d03d5c" dependencies = [ "itoa", "ryu", @@ -25129,53 +25183,63 @@ dependencies = [ [[package]] name = "sval_json" -version = "2.6.1" +version = "2.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ada6f627e38cbb8860283649509d87bc4a5771141daa41c78fd31f2b9485888d" +checksum = "389ed34b32e638dec9a99c8ac92d0aa1220d40041026b625474c2b6a4d6f4feb" dependencies = [ "itoa", "ryu", "sval", ] +[[package]] +name = "sval_nested" +version = "2.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14bae8fcb2f24fee2c42c1f19037707f7c9a29a0cda936d2188d48a961c4bb2a" +dependencies = [ + "sval", + "sval_buffer", + "sval_ref", +] + [[package]] name = "sval_ref" -version = "2.6.1" +version = "2.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703ca1942a984bd0d9b5a4c0a65ab8b4b794038d080af4eb303c71bc6bf22d7c" +checksum = "2a4eaea3821d3046dcba81d4b8489421da42961889902342691fb7eab491d79e" dependencies = [ "sval", ] [[package]] name = "sval_serde" -version = "2.6.1" +version = "2.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830926cd0581f7c3e5d51efae4d35c6b6fc4db583842652891ba2f1bed8db046" +checksum = "172dd4aa8cb3b45c8ac8f3b4111d644cd26938b0643ede8f93070812b87fb339" dependencies = [ "serde", "sval", - "sval_buffer", - "sval_fmt", + "sval_nested", ] [[package]] name = "symbolic-common" -version = "12.14.1" +version = "12.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66135c8273581acaab470356f808a1c74a707fe7ec24728af019d7247e089e71" +checksum = "9da12f8fecbbeaa1ee62c1d50dc656407e007c3ee7b2a41afce4b5089eaef15e" dependencies = [ "debugid", - "memmap2 0.9.3", + "memmap2 0.9.8", "stable_deref_trait", "uuid", ] [[package]] name = "symbolic-demangle" -version = "12.14.1" +version = "12.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42bcacd080282a72e795864660b148392af7babd75691d5ae9a3b77e29c98c77" +checksum = "6fd35afe0ef9d35d3dcd41c67ddf882fc832a387221338153b7cd685a105495c" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -25199,39 +25263,39 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.98" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "unicode-ident", ] [[package]] name = "syn-solidity" -version = "1.1.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5d879005cc1b5ba4e18665be9e9501d9da3a9b95f625497c4cb7ee082b532e" +checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" dependencies = [ "paste", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] @@ -25242,28 +25306,28 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "syn 1.0.109", - "unicode-xid 0.2.4", + "unicode-xid 0.2.6", ] [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "sysinfo" -version = "0.30.5" +version = "0.30.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2" +checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" dependencies = [ "cfg-if", "core-foundation-sys", @@ -25274,17 +25338,6 @@ dependencies = [ "windows 0.52.0", ] -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys 0.5.0", -] - [[package]] name = "system-configuration" version = "0.6.1" @@ -25292,18 +25345,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.9.4", - "core-foundation", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "core-foundation 0.9.4", + "system-configuration-sys", ] [[package]] @@ -25330,9 +25373,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.40" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" +checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" dependencies = [ "filetime", "libc", @@ -25341,27 +25384,27 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" +checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c" [[package]] name = "target-triple" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a4d50cdb458045afc8131fd91b64904da29548bcb63c7236e0844936c13078" +checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" [[package]] name = "tempfile" -version = "3.14.0" +version = "3.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" +checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" dependencies = [ - "cfg-if", "fastrand 2.3.0", + "getrandom 0.3.3", "once_cell", - "rustix 0.38.42", - "windows-sys 0.59.0", + "rustix 1.1.2", + "windows-sys 0.61.0", ] [[package]] @@ -25369,28 +25412,28 @@ name = "template-zombienet-tests" version = "0.0.0" dependencies = [ "anyhow", - "env_logger 0.11.3", + "env_logger 0.11.8", "tokio", "zombienet-sdk", ] [[package]] name = "termcolor" -version = "1.2.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] [[package]] name = "terminal_size" -version = "0.3.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" dependencies = [ - "rustix 0.38.42", - "windows-sys 0.48.0", + "rustix 1.1.2", + "windows-sys 0.60.2", ] [[package]] @@ -25404,9 +25447,9 @@ dependencies = [ [[package]] name = "termtree" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" +checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" [[package]] name = "test-log" @@ -25414,9 +25457,9 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e33b98a582ea0be1168eba097538ee8dd4bbe0f2b01b22ac92ea30054e5be7b" dependencies = [ - "env_logger 0.11.3", + "env_logger 0.11.8", "test-log-macros", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.3.20", ] [[package]] @@ -25425,9 +25468,9 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "451b374529930d7601b1eef8d32bc79ae870b6079b069401709c2a8bf9e75f36" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -25542,42 +25585,42 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl 1.0.65", + "thiserror-impl 1.0.69", ] [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.16", ] [[package]] name = "thiserror-impl" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -25588,12 +25631,11 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] @@ -25638,12 +25680,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" dependencies = [ "deranged", - "itoa", "libc", "num-conv", "num_threads", @@ -25655,15 +25696,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" dependencies = [ "num-conv", "time-core", @@ -25680,9 +25721,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -25700,9 +25741,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -25715,27 +25756,29 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.0" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.9", + "slab", + "socket2 0.6.0", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "tokio-io-timeout" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +checksum = "0bd86198d9ee903fedd2f9a2e72014287c0d9167e4ae43b5853007205dda1b76" dependencies = [ "pin-project-lite", "tokio", @@ -25747,9 +25790,9 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -25779,26 +25822,25 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.7", + "rustls 0.21.12", "tokio", ] [[package]] name = "tokio-rustls" -version = "0.26.0" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +checksum = "05f63835928ca123f1bef57abbcd23bb2ba0ac9ae1235f1e65bda0d06e7786bd" dependencies = [ - "rustls 0.23.18", - "rustls-pki-types", + "rustls 0.23.31", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" dependencies = [ "futures-core", "pin-project-lite", @@ -25851,19 +25893,19 @@ checksum = "489a59b6730eda1b0171fcfda8b121f4bee2b35cba8645ca35c5f7ba3eb736c1" dependencies = [ "futures-util", "log", - "rustls 0.23.18", - "rustls-native-certs 0.8.0", + "rustls 0.23.31", + "rustls-native-certs 0.8.1", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls 0.26.3", "tungstenite 0.27.0", ] [[package]] name = "tokio-util" -version = "0.7.15" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -25876,60 +25918,116 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.22", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", +] + +[[package]] +name = "toml" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae2a4cf385da23d1d53bc15cdfa5c2109e93d8d362393c801e87da2f72f0e201" +dependencies = [ + "indexmap 2.11.3", + "serde_core", + "serde_spanned 1.0.1", + "toml_datetime 0.7.1", + "toml_parser", + "toml_writer", + "winnow 0.7.13", ] [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a197c0ec7d131bfc6f7e82c8442ba1595aeab35da7adbf05b6b73cd06a16b6be" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.9.0", - "toml_datetime", - "winnow 0.5.15", + "indexmap 2.11.3", + "toml_datetime 0.6.11", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.21.0" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.9.0", - "toml_datetime", - "winnow 0.5.15", + "indexmap 2.11.3", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_write", + "winnow 0.7.13", ] [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.23.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "c2ad0b7ae9cfeef5605163839cb9221f453399f15cfb5c10be9885fcf56611f9" dependencies = [ - "indexmap 2.9.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.6.18", + "indexmap 2.11.3", + "toml_datetime 0.7.1", + "toml_parser", + "winnow 0.7.13", +] + +[[package]] +name = "toml_parser" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" +dependencies = [ + "winnow 0.7.13", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + +[[package]] +name = "toml_writer" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" + [[package]] name = "tower" version = "0.4.13" @@ -25947,6 +26045,21 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-http" version = "0.4.4" @@ -25958,8 +26071,8 @@ dependencies = [ "bytes", "futures-core", "futures-util", - "http 0.2.9", - "http-body 0.4.5", + "http 0.2.12", + "http-body 0.4.6", "http-range-header", "mime", "pin-project-lite", @@ -25976,31 +26089,49 @@ checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ "bitflags 2.9.4", "bytes", - "http 1.1.0", - "http-body 1.0.0", + "http 1.3.1", + "http-body 1.0.1", "http-body-util", "pin-project-lite", "tower-layer", "tower-service", ] +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.4", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "iri-string", + "pin-project-lite", + "tower 0.5.2", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -26010,20 +26141,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -26055,10 +26186,10 @@ version = "5.0.0" dependencies = [ "assert_matches", "expander", - "proc-macro-crate 3.1.0", - "proc-macro2 1.0.95", + "proc-macro-crate 3.4.0", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -26083,16 +26214,16 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "chrono", "matchers", "nu-ansi-term", "once_cell", - "parking_lot 0.12.3", - "regex", + "parking_lot 0.12.4", + "regex-automata", "sharded-slab", "smallvec", "thread_local", @@ -26151,15 +26282,15 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "trybuild" -version = "1.0.103" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b812699e0c4f813b872b373a4471717d9eb550da14b311058a4d9cf4173cbca6" +checksum = "0ded9fdb81f30a5708920310bfcd9ea7482ff9cba5f54601f7a19a877d5c2392" dependencies = [ "dissimilar", "glob", @@ -26168,7 +26299,7 @@ dependencies = [ "serde_json", "target-triple", "termcolor", - "toml", + "toml 0.9.6", ] [[package]] @@ -26186,12 +26317,12 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 0.2.9", + "http 0.2.12", "httparse", "log", "rand 0.8.5", "sha1", - "thiserror 1.0.65", + "thiserror 1.0.69", "url", "utf-8", ] @@ -26204,12 +26335,12 @@ checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" dependencies = [ "bytes", "data-encoding", - "http 1.1.0", + "http 1.3.1", "httparse", "log", - "rand 0.9.0", + "rand 0.9.2", "sha1", - "thiserror 2.0.12", + "thiserror 2.0.16", "utf-8", ] @@ -26221,14 +26352,14 @@ checksum = "eadc29d668c91fcc564941132e17b28a7ceb2f3ebf0b9dae3e03fd7a6748eb0d" dependencies = [ "bytes", "data-encoding", - "http 1.1.0", + "http 1.3.1", "httparse", "log", - "rand 0.9.0", - "rustls 0.23.18", + "rand 0.9.2", + "rustls 0.23.31", "rustls-pki-types", "sha1", - "thiserror 2.0.12", + "thiserror 2.0.16", "url", "utf-8", ] @@ -26253,21 +26384,27 @@ dependencies = [ [[package]] name = "twox-hash" -version = "2.1.1" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" + +[[package]] +name = "typeid" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b907da542cbced5261bd3256de1b3a1bf340a3d37f93425a07362a1d687de56" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" -version = "1.16.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uint" @@ -26301,15 +26438,15 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.11" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" [[package]] name = "unicode-normalization" @@ -26328,21 +26465,15 @@ checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" [[package]] name = "unicode-segmentation" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" - -[[package]] -name = "unicode-width" -version = "0.1.10" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" +checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" [[package]] name = "unicode-xid" @@ -26352,15 +26483,9 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "unicode_categories" -version = "0.1.1" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -26369,7 +26494,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", - "subtle 2.5.0", + "subtle 2.6.1", ] [[package]] @@ -26414,12 +26539,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", - "idna 1.0.3", + "idna", "percent-encoding", "serde", ] @@ -26430,12 +26555,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -26444,30 +26563,32 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.4.1" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.3.3", + "js-sys", + "wasm-bindgen", ] [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "value-bag" -version = "1.8.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec26a25bd6fca441cdd0f769fd7f891bae119f996de31f86a5eddccef54c1d" +checksum = "943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5" dependencies = [ "value-bag-serde1", "value-bag-sval2", @@ -26475,9 +26596,9 @@ dependencies = [ [[package]] name = "value-bag-serde1" -version = "1.8.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ead5b693d906686203f19a49e88c477fb8c15798b68cf72f60b4b5521b4ad891" +checksum = "35540706617d373b118d550d41f5dfe0b78a0c195dc13c6815e92e2638432306" dependencies = [ "erased-serde", "serde", @@ -26486,9 +26607,9 @@ dependencies = [ [[package]] name = "value-bag-sval2" -version = "1.8.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9d0f4a816370c3a0d7d82d603b62198af17675b12fe5e91de6b47ceb505882" +checksum = "6fe7e140a2658cc16f7ee7a86e413e803fc8f9b5127adc8755c19f9fefa63a52" dependencies = [ "sval", "sval_buffer", @@ -26524,9 +26645,9 @@ dependencies = [ [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "void" @@ -26607,18 +26728,18 @@ dependencies = [ [[package]] name = "wait-timeout" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" dependencies = [ "libc", ] [[package]] name = "waker-fn" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" [[package]] name = "walkdir" @@ -26641,17 +26762,26 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.13.3+wasi-0.2.2" +version = "0.14.7+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" dependencies = [ - "wit-bindgen-rt", + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +dependencies = [ + "wit-bindgen", ] [[package]] @@ -26660,51 +26790,62 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" +[[package]] +name = "wasix" +version = "0.12.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d" +dependencies = [ + "wasi 0.11.1+wasi-snapshot-preview1", +] + [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "ab10a69fbd0a177f5f649ad4d8d3305499c42bab9aef2f7ff592d0ec8f833819" dependencies = [ "cfg-if", "once_cell", + "rustversion", "serde", "serde_json", "wasm-bindgen-macro", + "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "0bb702423545a6007bbc368fde243ba47ca275e549c8a28617f56f6ba53b1d1c" dependencies = [ "bumpalo", "log", - "once_cell", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "a0b221ff421256839509adbb55998214a70d829d3a28c69b4a6672e9d2a42f67" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "fc65f4f411d91494355917b605e1480033152658d71f722a90647f56a70c88a0" dependencies = [ "quote 1.0.40", "wasm-bindgen-macro-support", @@ -26712,40 +26853,44 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "ffc003a991398a8ee604a401e194b6b3a39677b3173d6e74495eb51b82e99a32" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "293c37f4efa430ca14db3721dfbe48d8c33308096bd44d80ebaa775ab71ba1cf" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-encoder" -version = "0.31.1" +version = "0.235.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41763f20eafed1399fff1afb466496d3a959f58241436cfdc17e3f5ca954de16" +checksum = "b3bc393c395cb621367ff02d854179882b9a351b4e0c93d1397e6090b53a5c2a" dependencies = [ - "leb128", + "leb128fmt", + "wasmparser 0.235.0", ] [[package]] name = "wasm-encoder" -version = "0.235.0" +version = "0.239.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3bc393c395cb621367ff02d854179882b9a351b4e0c93d1397e6090b53a5c2a" +checksum = "5be00faa2b4950c76fe618c409d2c3ea5a3c9422013e079482d78544bb2d184c" dependencies = [ "leb128fmt", - "wasmparser 0.235.0", + "wasmparser 0.239.0", ] [[package]] @@ -26759,16 +26904,16 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.116.0" +version = "0.116.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc942673e7684671f0c5708fc18993569d184265fd5223bb51fc8e5b9b6cfd52" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" dependencies = [ "anyhow", "libc", "strum 0.24.1", "strum_macros 0.24.3", "tempfile", - "thiserror 1.0.65", + "thiserror 1.0.69", "wasm-opt-cxx-sys", "wasm-opt-sys", ] @@ -26909,12 +27054,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "161296c618fa2d63f6ed5fffd1112937e803cb9ec71b32b01a76321555660917" dependencies = [ "bitflags 2.9.4", - "hashbrown 0.15.3", - "indexmap 2.9.0", - "semver 1.0.18", + "hashbrown 0.15.5", + "indexmap 2.11.3", + "semver 1.0.27", "serde", ] +[[package]] +name = "wasmparser" +version = "0.239.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9d90bb93e764f6beabf1d02028c70a2156a6583e63ac4218dd07ef733368b0" +dependencies = [ + "bitflags 2.9.4", + "indexmap 2.11.3", + "semver 1.0.27", +] + [[package]] name = "wasmparser-nostd" version = "0.100.2" @@ -26941,25 +27097,25 @@ version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe976922a16af3b0d67172c473d1fd4f1aa5d0af9c8ba6538c741f3af686f4" dependencies = [ - "addr2line 0.24.2", + "addr2line", "anyhow", "bitflags 2.9.4", "bumpalo", "cc", "cfg-if", - "gimli 0.31.1", - "hashbrown 0.15.3", - "indexmap 2.9.0", + "gimli", + "hashbrown 0.15.5", + "indexmap 2.11.3", "libc", "log", "mach2", "memfd", - "object 0.36.7", + "object", "once_cell", "postcard", "pulley-interpreter", "rayon", - "rustix 1.0.8", + "rustix 1.1.2", "serde", "serde_derive", "smallvec", @@ -26989,10 +27145,10 @@ dependencies = [ "cpp_demangle", "cranelift-bitset", "cranelift-entity", - "gimli 0.31.1", - "indexmap 2.9.0", + "gimli", + "indexmap 2.11.3", "log", - "object 0.36.7", + "object", "postcard", "rustc-demangle", "serde", @@ -27024,11 +27180,11 @@ dependencies = [ "directories-next", "log", "postcard", - "rustix 1.0.8", + "rustix 1.1.2", "serde", "serde_derive", "sha2 0.10.9", - "toml", + "toml 0.8.23", "windows-sys 0.59.0", "zstd 0.13.3", ] @@ -27046,14 +27202,14 @@ dependencies = [ "cranelift-entity", "cranelift-frontend", "cranelift-native", - "gimli 0.31.1", + "gimli", "itertools 0.14.0", "log", - "object 0.36.7", + "object", "pulley-interpreter", "smallvec", "target-lexicon", - "thiserror 2.0.12", + "thiserror 2.0.16", "wasmparser 0.235.0", "wasmtime-environ", "wasmtime-internal-math", @@ -27070,7 +27226,7 @@ dependencies = [ "cc", "cfg-if", "libc", - "rustix 1.0.8", + "rustix 1.1.2", "wasmtime-internal-asm-macros", "wasmtime-internal-versioned-export-macros", "windows-sys 0.59.0", @@ -27113,7 +27269,7 @@ dependencies = [ "cfg-if", "cranelift-codegen", "log", - "object 0.36.7", + "object", ] [[package]] @@ -27122,9 +27278,9 @@ version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "342b0466f92b7217a4de9e114175fedee1907028567d2548bcd42f71a8b5b016" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -27135,8 +27291,8 @@ checksum = "2012e7384c25b91aab2f1b6a1e1cbab9d0f199bbea06cc873597a3f047f05730" dependencies = [ "anyhow", "cranelift-codegen", - "gimli 0.31.1", - "object 0.36.7", + "gimli", + "object", "target-lexicon", "wasmparser 0.235.0", "wasmtime-environ", @@ -27146,30 +27302,31 @@ dependencies = [ [[package]] name = "wast" -version = "63.0.0" +version = "239.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2560471f60a48b77fccefaf40796fda61c97ce1e790b59dfcec9dc3995c9f63a" +checksum = "9139176fe8a2590e0fb174cdcaf373b224cb93c3dde08e4297c1361d2ba1ea5d" dependencies = [ - "leb128", + "bumpalo", + "leb128fmt", "memchr", - "unicode-width 0.1.10", - "wasm-encoder 0.31.1", + "unicode-width", + "wasm-encoder 0.239.0", ] [[package]] name = "wat" -version = "1.0.70" +version = "1.239.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bdc306c2c4c2f2bf2ba69e083731d0d2a77437fc6a350a19db139636e7e416c" +checksum = "3e1c941927d34709f255558166f8901a2005f8ab4a9650432e9281b7cc6f3b75" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.64" +version = "0.3.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +checksum = "fbe734895e869dc429d78c4b433f8d17d95f8d05317440b4fad5ab2d33e596dc" dependencies = [ "js-sys", "wasm-bindgen", @@ -27185,17 +27342,35 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" +dependencies = [ + "webpki-root-certs 1.0.2", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" -version = "0.25.2" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" dependencies = [ "rustls-pki-types", ] @@ -27359,19 +27534,19 @@ dependencies = [ [[package]] name = "whoami" -version = "1.5.2" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" +checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" dependencies = [ - "redox_syscall 0.5.8", + "libredox", "wasite", ] [[package]] name = "wide" -version = "0.7.11" +version = "0.7.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa469ffa65ef7e0ba0f164183697b89b854253fd31aeb92358b7b6155177d62f" +checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" dependencies = [ "bytemuck", "safe_arch", @@ -27379,9 +27554,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.0.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" [[package]] name = "winapi" @@ -27401,11 +27576,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "winapi", + "windows-sys 0.61.0", ] [[package]] @@ -27423,11 +27598,11 @@ dependencies = [ "anyhow", "cranelift-assembler-x64", "cranelift-codegen", - "gimli 0.31.1", + "gimli", "regalloc2 0.12.2", "smallvec", "target-lexicon", - "thiserror 2.0.12", + "thiserror 2.0.16", "wasmparser 0.235.0", "wasmtime-environ", "wasmtime-internal-cranelift", @@ -27436,130 +27611,209 @@ dependencies = [ [[package]] name = "windows" -version = "0.48.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "windows-targets 0.48.5", + "windows-core 0.52.0", + "windows-targets 0.52.6", ] [[package]] name = "windows" -version = "0.51.1" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538" dependencies = [ - "windows-core 0.51.1", - "windows-targets 0.48.5", + "windows-core 0.53.0", + "windows-targets 0.52.6", ] [[package]] name = "windows" -version = "0.52.0" +version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.6", + "windows-collections", + "windows-core 0.61.2", + "windows-future", + "windows-link 0.1.3", + "windows-numerics", ] [[package]] -name = "windows" -version = "0.58.0" +name = "windows-collections" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", + "windows-core 0.61.2", ] [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.52.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd" dependencies = [ + "windows-result 0.1.2", "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.58.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", - "windows-result", - "windows-strings", - "windows-targets 0.52.6", + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57fe7168f7de578d2d8a05b07fd61870d2e73b4020e9f49aa00da8471723497c" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.0", + "windows-result 0.4.0", + "windows-strings 0.5.0", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core 0.61.2", + "windows-link 0.1.3", + "windows-threading", ] [[package]] name = "windows-implement" -version = "0.58.0" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "windows-interface" -version = "0.58.0" +version = "0.59.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "windows-link" -version = "0.1.0" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] -name = "windows-registry" +name = "windows-link" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" + +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ - "windows-result", - "windows-strings", - "windows-targets 0.52.6", + "windows-core 0.61.2", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-registry" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" +dependencies = [ + "windows-link 0.1.3", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] name = "windows-result" -version = "0.2.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f" +dependencies = [ + "windows-link 0.2.0", +] + [[package]] name = "windows-strings" -version = "0.1.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-result", - "windows-targets 0.52.6", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda" +dependencies = [ + "windows-link 0.2.0", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", ] [[package]] @@ -27595,7 +27849,31 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.2", + "windows-targets 0.53.3", +] + +[[package]] +name = "windows-sys" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" +dependencies = [ + "windows-link 0.2.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -27631,10 +27909,11 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.2" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ + "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -27645,6 +27924,21 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link 0.1.3", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -27663,6 +27957,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -27681,6 +27981,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -27711,6 +28017,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -27729,6 +28041,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -27747,6 +28065,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -27765,6 +28089,12 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -27785,27 +28115,18 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.6.18" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ "memchr", ] [[package]] name = "winnow" -version = "0.7.10" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] @@ -27821,25 +28142,16 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" -dependencies = [ - "bitflags 2.9.4", -] - -[[package]] -name = "write16" -version = "1.0.0" +name = "wit-bindgen" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "wyz" @@ -27868,14 +28180,14 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" dependencies = [ - "asn1-rs 0.6.1", + "asn1-rs 0.6.2", "data-encoding", "der-parser 9.0.0", "lazy_static", "nom 7.1.3", - "oid-registry 0.7.0", + "oid-registry 0.7.1", "rusticata-macros", - "thiserror 1.0.65", + "thiserror 1.0.69", "time", ] @@ -27885,24 +28197,25 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4569f339c0c402346d4a75a9e39cf8dad310e287eef1ff56d4c68e5067f53460" dependencies = [ - "asn1-rs 0.7.0", + "asn1-rs 0.7.1", "data-encoding", "der-parser 10.0.0", "lazy_static", "nom 7.1.3", "oid-registry 0.8.1", "rusticata-macros", - "thiserror 2.0.12", + "thiserror 2.0.16", "time", ] [[package]] name = "xattr" -version = "1.0.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" +checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", + "rustix 1.1.2", ] [[package]] @@ -27931,7 +28244,7 @@ dependencies = [ name = "xcm-emulator" version = "0.5.0" dependencies = [ - "array-bytes 6.2.2", + "array-bytes 6.2.3", "cumulus-pallet-parachain-system", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", @@ -27990,10 +28303,10 @@ version = "7.0.0" dependencies = [ "Inflector", "frame-support", - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", "staging-xcm", - "syn 2.0.98", + "syn 2.0.106", "trybuild", ] @@ -28094,9 +28407,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.20" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" +checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" [[package]] name = "xmltree" @@ -28116,7 +28429,7 @@ dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", "rand 0.8.5", "static_assertions", @@ -28124,25 +28437,25 @@ dependencies = [ [[package]] name = "yamux" -version = "0.13.5" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da1acad1c2dc53f0dde419115a38bd8221d8c3e47ae9aeceaf453266d29307e" +checksum = "2b2dd50a6d6115feb3e5d7d0efd45e8ca364b6c83722c1e9c602f5764e0e9597" dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.3", + "parking_lot 0.12.4", "pin-project", - "rand 0.9.0", + "rand 0.9.2", "static_assertions", "web-time", ] [[package]] name = "yansi" -version = "0.5.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" [[package]] name = "yap" @@ -28216,9 +28529,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ "serde", "stable_deref_trait", @@ -28228,75 +28541,55 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", - "synstructure 0.13.1", -] - -[[package]] -name = "zerocopy" -version = "0.7.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" -dependencies = [ - "zerocopy-derive 0.7.32", + "syn 2.0.106", + "synstructure 0.13.2", ] [[package]] name = "zerocopy" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde3bb8c68a8f3f1ed4ac9221aad6b10cece3e60a8e2ea54a6a2dec806d0084c" -dependencies = [ - "zerocopy-derive 0.8.20", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.32" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ - "proc-macro2 1.0.95", - "quote 1.0.40", - "syn 2.0.98", + "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.20" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eea57037071898bf96a6da35fd626f4f27e9cee3ead2a6c703cf09d472b2e700" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] name = "zerofrom" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", - "synstructure 0.13.1", + "syn 2.0.106", + "synstructure 0.13.2", ] [[package]] @@ -28314,16 +28607,27 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", ] [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", @@ -28332,13 +28636,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ - "proc-macro2 1.0.95", + "proc-macro2 1.0.101", "quote 1.0.40", - "syn 2.0.98", + "syn 2.0.106", ] [[package]] @@ -28349,7 +28653,7 @@ dependencies = [ "parity-scale-codec", "serde", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tokio-tungstenite 0.26.2", "tracing-gum", @@ -28363,14 +28667,14 @@ checksum = "939599296b4660c38fc4350444a80e34c241c0f0640de33dded9648082b994c8" dependencies = [ "anyhow", "lazy_static", - "multiaddr 0.18.1", + "multiaddr 0.18.2", "regex", "reqwest", "serde", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", - "toml", + "toml 0.8.23", "tracing", "url", "zombienet-support", @@ -28390,7 +28694,7 @@ dependencies = [ "hex", "libp2p", "libsecp256k1", - "multiaddr 0.18.1", + "multiaddr 0.18.2", "rand 0.8.5", "regex", "reqwest", @@ -28400,7 +28704,7 @@ dependencies = [ "sp-core 36.1.0", "subxt 0.43.0", "subxt-signer 0.43.0", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tracing", "uuid", @@ -28418,7 +28722,7 @@ checksum = "18efca2715d288088b867a00a7651ad7c0c2d958a3b8ba6c366645c622427c6d" dependencies = [ "pest", "pest_derive", - "thiserror 1.0.65", + "thiserror 1.0.69", ] [[package]] @@ -28442,7 +28746,7 @@ dependencies = [ "serde_yaml", "sha2 0.10.9", "tar", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tokio-util", "tracing", @@ -28485,7 +28789,7 @@ dependencies = [ "regex", "reqwest", "serde_json", - "thiserror 1.0.65", + "thiserror 1.0.69", "tokio", "tracing", "uuid", @@ -28530,9 +28834,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" +version = "2.0.16+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" dependencies = [ "cc", "pkg-config", diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index a9931f96b30a7..b35210d57c398 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -18,7 +18,7 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] alloy-consensus = { workspace = true, default-features = false } -alloy-core = { workspace = true, features = ["sol-types", "rlp"] } +alloy-core = { workspace = true, features = ["rlp", "sol-types"] } alloy-trie = { workspace = true, default-features = false } codec = { features = ["derive", "max-encoded-len"], workspace = true } derive_more = { workspace = true, features = ["from", "try_into"] } @@ -28,6 +28,7 @@ ethereum-types = { workspace = true, features = ["codec", "rlp", "serialize"] } hex-literal = { workspace = true } humantime-serde = { optional = true, workspace = true } impl-trait-for-tuples = { workspace = true } +k256 = { features = ["alloc", "ecdsa"], workspace = true, optional = true } log = { workspace = true } num-bigint = { workspace = true } num-integer = { workspace = true } @@ -83,7 +84,9 @@ sp-tracing = { workspace = true, default-features = true } [features] default = ["std"] std = [ + "alloy-consensus/std", "alloy-core/std", + "alloy-trie/std", "codec/std", "environmental/std", "ethereum-types/std", @@ -91,6 +94,7 @@ std = [ "frame-support/std", "frame-system/std", "humantime-serde", + "k256/std", "log/std", "num-bigint/std", "num-integer/std", @@ -119,12 +123,14 @@ std = [ "sp-io/std", "sp-keystore/std", "sp-runtime/std", + "sp-version/std", "subxt-signer", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", "frame-system/runtime-benchmarks", + "k256", "pallet-balances/runtime-benchmarks", "pallet-proxy/runtime-benchmarks", "pallet-revive-fixtures", diff --git a/substrate/frame/revive/README.md b/substrate/frame/revive/README.md index 066a0f66be4f5..b6dc3a5d77550 100644 --- a/substrate/frame/revive/README.md +++ b/substrate/frame/revive/README.md @@ -30,6 +30,42 @@ calls are reverted. Assuming correct error handling by contract A, A's other cal One `ref_time` `Weight` is defined as one picosecond of execution time on the runtime's reference machine. +#### Event-Aware Weight Accounting + +The pallet includes **event-aware weight accounting** for `finalize_block()` operations through the `OnFinalizeBlockParts` +trait. The weight model uses differential benchmarking to precisely account for the computational cost of processing +events during Ethereum block construction: + +```text +Total Weight = fixed_part + + Σ(per_tx_part(payload_i)) + + Σ(per_event_part(data_len_j)) +``` + +**High-Level Weight API (`OnFinalizeBlockParts` trait):** +The pallet exposes these weight calculation methods for runtime use: +- **Fixed cost**: `on_finalize_block_fixed()` - Base overhead regardless of transaction/event count +- **Per-transaction cost**: `on_finalize_block_per_tx(payload_size)` - Applied incrementally during each `eth_call()` +- **Per-event cost**: `on_finalize_block_per_event(data_len)` - Applied dynamically during each `deposit_event()` + +**Underlying Benchmark Functions (`WeightInfo` trait):** +These low-level benchmarks measure raw computational costs and are used to derive the high-level weights: +- **Base finalization**: `on_finalize(n, p)` - Measures cost of finalizing `n` transactions with `p` payload size +- **Per-event overhead**: `on_finalize_per_event(e)` - Measures cost scaling with `e` event count +- **Per-data overhead**: `on_finalize_per_event_data(d)` - Measures cost scaling with `d` bytes of event data + +**Weight Derivation Methodology:** +The high-level API methods use differential calculation to isolate marginal costs from benchmarks: +- Per-transaction: `on_finalize(1, payload_size) - on_finalize(0, 0)` +- Per-event base: `on_finalize_per_event(1) - on_finalize_per_event(0)` +- Per-byte of event data: `on_finalize_per_event_data(data_len) - on_finalize_per_event_data(0)` + +This comprehensive weight model ensures that: +- Transactions emitting many events are properly weighted based on event count and data size +- Resource exhaustion attacks via oversized event data are prevented through proactive weight enforcement +- Accurate block packing calculations include all processing costs (bloom filters, RLP encoding, log conversion) +- Gas limit enforcement occurs early in `eth_call()` to prevent block overruns + ### Revert Behaviour Contract call failures are not cascading. When failures occur in a sub-call, they do not "bubble up", and the call will diff --git a/substrate/frame/revive/rpc/Cargo.toml b/substrate/frame/revive/rpc/Cargo.toml index 0efdbb7d5363c..1d9cf4fcb2baf 100644 --- a/substrate/frame/revive/rpc/Cargo.toml +++ b/substrate/frame/revive/rpc/Cargo.toml @@ -17,6 +17,8 @@ name = "eth-rpc" path = "src/main.rs" [dependencies] +alloy-consensus = { workspace = true, default-features = false } +alloy-core = { workspace = true, features = ["sol-types"] } anyhow = { workspace = true } clap = { workspace = true, features = ["derive", "env"] } codec = { workspace = true, features = ["derive"] } @@ -31,6 +33,7 @@ sc-cli = { workspace = true, default-features = true } sc-rpc = { workspace = true, default-features = true } sc-rpc-api = { workspace = true, default-features = true } sc-service = { workspace = true, default-features = true } +serde = { workspace = true, default-features = false, features = ["alloc", "derive"] } serde_json = { workspace = true } sp-arithmetic = { workspace = true, default-features = true } sp-core = { workspace = true, default-features = true } diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index 40533f5896061..ee49ae1bfd4f7 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -20,7 +20,7 @@ #![cfg(feature = "runtime-benchmarks")] use crate::{ call_builder::{caller_funding, default_deposit_limit, CallSetup, Contract, VmBinaryModule}, - evm::runtime::GAS_PRICE, + evm::{runtime::GAS_PRICE, TransactionLegacyUnsigned, TransactionUnsigned}, exec::{Key, MomentOf, PrecompileExt}, limits, precompiles::{ @@ -48,13 +48,15 @@ use frame_support::{ self, assert_ok, migrations::SteppedMigration, storage::child, - traits::fungible::InspectHold, + traits::{fungible::InspectHold, Hooks}, weights::{Weight, WeightMeter}, }; use frame_system::RawOrigin; +use k256::ecdsa::SigningKey; use pallet_revive_uapi::{ pack_hi_lo, precompiles::system::ISystem, CallFlags, ReturnErrorCode, StorageFlags, }; +pub use pallet_transaction_payment; use revm::{ bytecode::{opcode::EXTCODECOPY, Bytecode}, interpreter::{ @@ -116,6 +118,10 @@ fn whitelisted_pallet_account() -> T::AccountId { BalanceOf: Into + TryFrom, T: Config, MomentOf: Into, + ::RuntimeCall: + Dispatchable, + T: pallet_transaction_payment::Config, + OnChargeTransactionBalanceOf: Into>, ::RuntimeEvent: From>, ::RuntimeCall: From>, ::Hash: frame_support::traits::IsType, @@ -2588,6 +2594,315 @@ mod benchmarks { assert_eq!(meter.consumed(), ::WeightInfo::v2_migration_step() * 2); } + /// Helper function to create a test signer for finalize_block benchmark + fn create_test_signer() -> (T::AccountId, SigningKey, H160) { + use hex_literal::hex; + // dev::alith() + let signer_account_id = hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac"); + let signer_priv_key = + hex!("5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133"); + + let signer_key = SigningKey::from_bytes(&signer_priv_key.into()).expect("valid key"); + + let signer_address = H160::from_slice(&signer_account_id); + let signer_caller = T::AddressMapper::to_fallback_account_id(&signer_address); + + (signer_caller, signer_key, signer_address) + } + + /// Helper function to create and sign a transaction for finalize_block benchmark + fn create_signed_transaction( + signer_key: &SigningKey, + target_address: H160, + value: U256, + input_data: Vec, + ) -> Vec { + let unsigned_tx: TransactionUnsigned = TransactionLegacyUnsigned { + to: Some(target_address), + value, + chain_id: Some(T::ChainId::get().into()), + input: input_data.into(), + ..Default::default() + } + .into(); + + let hashed_payload = sp_io::hashing::keccak_256(&unsigned_tx.unsigned_payload()); + let (signature, recovery_id) = + signer_key.sign_prehash_recoverable(&hashed_payload).expect("signing success"); + + let mut sig_bytes = [0u8; 65]; + sig_bytes[..64].copy_from_slice(&signature.to_bytes()); + sig_bytes[64] = recovery_id.to_byte(); + + let signed_tx = unsigned_tx.with_signature(sig_bytes); + + signed_tx.signed_payload() + } + + /// Helper function to generate common finalize_block benchmark setup + fn setup_finalize_block_benchmark() -> Result< + (Contract, T::RuntimeOrigin, BalanceOf, U256, SigningKey, BlockNumberFor), + BenchmarkError, + > + where + BalanceOf: Into + TryFrom, + T: Config, + MomentOf: Into, + ::Hash: frame_support::traits::IsType, + { + // Setup test signer + let (signer_caller, signer_key, _signer_address) = create_test_signer::(); + whitelist_account!(signer_caller); + + // Setup contract instance + let instance = + Contract::::with_caller(signer_caller.clone(), VmBinaryModule::dummy(), vec![])?; + let origin = RawOrigin::Signed(signer_caller.clone()).into(); + let storage_deposit = default_deposit_limit::(); + let value = Pallet::::min_balance(); + let evm_value = + Pallet::::convert_native_to_evm(BalanceWithDust::new_unchecked::(value, 0)); + + // Setup block + let current_block = BlockNumberFor::::from(1u32); + frame_system::Pallet::::set_block_number(current_block); + + Ok((instance, origin, storage_deposit, evm_value, signer_key, current_block)) + } + + /// Benchmark the `on_finalize` hook scaling with number of transactions + /// and payload size. + /// + /// This benchmark measures the marginal computational cost of adding transactions + /// to a block during finalization. Each transaction uses identical fixed parameters + /// to isolate the pure transaction processing overhead. + /// + /// ## Parameters: + /// - `n`: Number of transactions in the block + /// - `p`: Payload size (transaction data size in bytes) + /// + /// ## Test Setup: + /// - Creates `n` transactions with payload size `p` + /// - Pre-populates `InflightTransactions::` storage with test data + /// + /// Note: While trie root computation is theoretically O(N log N), the computational cost + /// is dominated by storage I/O operations, so linear regression approximation is adequate. + /// + /// ## Usage: + /// - Fixed cost: `on_finalize(0, 0)` - cost incurred no matter what number of transactions + /// - Per transaction: `on_finalize(1, payload_size) - fixed_cost` + #[benchmark(pov_mode = Measured)] + fn on_finalize(n: Linear<0, 200>, p: Linear<0, 1000>) -> Result<(), BenchmarkError> { + let (instance, _origin, _storage_deposit, evm_value, signer_key, current_block) = + setup_finalize_block_benchmark::()?; + + // Pre-populate InflightTransactions with n real transactions of input size p + // This isolates the on_finalize processing cost from transaction execution + if n > 0 { + // Initialize block + let _ = Pallet::::on_initialize(current_block); + + // Create input data of size p for realistic transaction payloads + let input_data = vec![0x42u8; p as usize]; + let gas_used = Weight::from_parts(1_000_000, 1000); + + for _ in 0..n { + // Create real signed transaction with input data of size p + let signed_transaction = create_signed_transaction::( + &signer_key, + instance.address, + evm_value, + input_data.clone(), + ); + + // Store transaction + let _ = eth_block_storage::with_ethereum_context(|| { + let (encoded_logs, bloom) = + eth_block_storage::get_receipt_details().unwrap_or_default(); + + let block_builder_ir = EthBlockBuilderIR::::get(); + let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); + + block_builder.process_transaction( + signed_transaction, + true, + gas_used, + encoded_logs, + bloom, + ); + + EthBlockBuilderIR::::put(block_builder.to_ir()); + }); + } + } + + #[block] + { + // Measure only the finalization cost with n transactions of size p + let _ = Pallet::::on_finalize(current_block); + } + + // Verify transaction count + assert_eq!(Pallet::::eth_block().transactions.len(), n as usize); + + Ok(()) + } + + /// Benchmark the `on_finalize` per-event costs. + /// + /// This benchmark measures the computational cost of processing events + /// within the finalization process, isolating the overhead of event count. + /// Uses a single transaction with varying numbers of minimal events. + /// + /// ## Parameters: + /// - `e`: Number of events per transaction + /// + /// ## Test Setup: + /// - Creates 1 transaction with `e` ContractEmitted events + /// - Each event contains minimal data (no topics, empty data field) + /// + /// ## Usage: + /// Measures the per-event processing overhead during finalization + /// - Fixed cost: `on_finalize_per_event(0)` - baseline finalization cost + /// - Per event: `on_finalize_per_event(e)` - linear scaling with event count + #[benchmark(pov_mode = Measured)] + fn on_finalize_per_event(e: Linear<0, 100>) -> Result<(), BenchmarkError> { + let (instance, _origin, _storage_deposit, evm_value, signer_key, current_block) = + setup_finalize_block_benchmark::()?; + + // Create a single transaction with e events, each with minimal data + let input_data = vec![0x42u8; 100]; + let signed_transaction = create_signed_transaction::( + &signer_key, + instance.address, + evm_value, + input_data.clone(), + ); + + let gas_used = Weight::from_parts(1_000_000, 1000); + + // Store transaction + let _ = eth_block_storage::with_ethereum_context(|| { + let (encoded_logs, bloom) = + eth_block_storage::get_receipt_details().unwrap_or_default(); + + let block_builder_ir = EthBlockBuilderIR::::get(); + let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); + + block_builder.process_transaction( + signed_transaction, + true, + gas_used, + encoded_logs, + bloom, + ); + + EthBlockBuilderIR::::put(block_builder.to_ir()); + }); + + // Create e events with minimal data to isolate event count overhead + for _ in 0..e { + eth_block_storage::capture_ethereum_log(&instance.address, &vec![], &vec![]); + } + + #[block] + { + // Initialize block + let _ = Pallet::::on_initialize(current_block); + + // Measure the finalization cost with e events + let _ = Pallet::::on_finalize(current_block); + } + + // Verify transaction count + assert_eq!(Pallet::::eth_block().transactions.len(), 1); + + Ok(()) + } + + /// ## Test Setup: + /// - Creates 1 transaction with 1 ContractEmitted event + /// - Event contains `d` total bytes of data across data field and topics + /// + /// ## Usage: + /// Measures the per-byte event data processing overhead during finalization + /// - Fixed cost: `on_finalize_per_event_data(0)` - baseline cost with empty event + /// - Per byte: `on_finalize_per_event_data(d)` - linear scaling with data size + #[benchmark(pov_mode = Measured)] + fn on_finalize_per_event_data(d: Linear<0, 16384>) -> Result<(), BenchmarkError> { + let (instance, _origin, _storage_deposit, evm_value, signer_key, current_block) = + setup_finalize_block_benchmark::()?; + + // Create a single transaction with one event containing d bytes of data + let input_data = vec![0x42u8; 100]; + let signed_transaction = create_signed_transaction::( + &signer_key, + instance.address, + evm_value, + input_data.clone(), + ); + + let gas_used = Weight::from_parts(1_000_000, 1000); + + // Store transaction + let _ = eth_block_storage::with_ethereum_context(|| { + let (encoded_logs, bloom) = + eth_block_storage::get_receipt_details().unwrap_or_default(); + + let block_builder_ir = EthBlockBuilderIR::::get(); + let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); + + block_builder.process_transaction( + signed_transaction, + true, + gas_used, + encoded_logs, + bloom, + ); + + EthBlockBuilderIR::::put(block_builder.to_ir()); + }); + + // Create one event with d bytes of data distributed across topics and data field + let (event_data, topics) = if d < 32 { + // If total data is less than 32 bytes, put all in data field + (vec![0x42u8; d as usize], vec![]) + } else { + // Fill topics first, then put remaining bytes in data field + let num_topics = core::cmp::min(limits::NUM_EVENT_TOPICS, d / 32); + let topic_bytes_used = num_topics * 32; + let data_bytes_remaining = d - topic_bytes_used; + + // Create topics filled with sequential data + let mut topics = Vec::new(); + for topic_index in 0..num_topics { + let topic_data = [topic_index as u8; 32]; + topics.push(H256::from(topic_data)); + } + + // Remaining bytes go to data field + let event_data = vec![0x42u8; data_bytes_remaining as usize]; + + (event_data, topics) + }; + + eth_block_storage::capture_ethereum_log(&instance.address, &event_data, &topics); + + #[block] + { + // Initialize block + let _ = Pallet::::on_initialize(current_block); + + // Measure the finalization cost with d bytes of event data + let _ = Pallet::::on_finalize(current_block); + } + + // Verify transaction count + assert_eq!(Pallet::::eth_block().transactions.len(), 1); + + Ok(()) + } + impl_benchmark_test_suite!( Contracts, crate::tests::ExtBuilder::default().build(), 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 72a42ba762785..2efe8695e148b 100644 --- a/substrate/frame/revive/src/evm/api/rpc_types_gen.rs +++ b/substrate/frame/revive/src/evm/api/rpc_types_gen.rs @@ -480,6 +480,26 @@ impl Default for HashesOrTransactionInfos { HashesOrTransactionInfos::Hashes(Default::default()) } } +impl HashesOrTransactionInfos { + pub fn push_hash(&mut self, hash: H256) { + match self { + HashesOrTransactionInfos::Hashes(hashes) => hashes.push(hash), + _ => {}, + } + } + + pub fn len(&self) -> usize { + match self { + HashesOrTransactionInfos::Hashes(v) => v.len(), + HashesOrTransactionInfos::TransactionInfos(v) => v.len(), + } + } + + pub fn is_empty(&self) -> bool { + self.len() == 0 + } +} + /// log #[derive(Debug, Default, Clone, Serialize, Deserialize, Eq, PartialEq)] #[serde(rename_all = "camelCase")] diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index 47c1378c33dd6..3445ac8ea5af0 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -422,7 +422,7 @@ pub trait EthExtra { .min(actual_fee); crate::tracing::if_tracing(|tracer| { - tracer.watch_address(&Pallet::::block_author().unwrap_or_default()); + tracer.watch_address(&Pallet::::block_author()); tracer.watch_address(&signer_addr); }); diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index d28993da1dbd5..f2804405bca6e 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -2117,7 +2117,7 @@ where } fn block_author(&self) -> Option { - Contracts::::block_author() + Some(Contracts::::block_author()) } fn gas_limit(&self) -> u64 { diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 971433cf14ba8..66cb4492cdbef 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -42,6 +42,7 @@ pub mod precompiles; pub mod test_utils; pub mod tracing; pub mod weights; +pub mod weights_utils; use crate::{ evm::{ @@ -102,6 +103,7 @@ pub use primitives::*; pub use sp_core::{keccak_256, H160, H256, U256}; pub use sp_runtime; pub use weights::WeightInfo; +pub use weights_utils::OnFinalizeBlockParts; #[cfg(doc)] pub use crate::vm::pvm::SyscallDoc; @@ -773,15 +775,14 @@ pub mod pallet { // Warm up the pallet account. System::::account_exists(&Pallet::::account_id()); - return T::DbWeight::get().reads(1) + // Account for the fixed part of the costs incurred in `on_finalize`. + ::WeightInfo::on_finalize_block_fixed() } fn on_finalize(block_number: BlockNumberFor) { // If we cannot fetch the block author there's nothing we can do. // Finding the block author traverses the digest logs. - let Some(block_author) = Self::block_author() else { - return; - }; + let block_author = Self::block_author(); // Weights are accounted for in the `on_initialize`. let eth_block_num: U256 = block_number.into(); @@ -1171,7 +1172,11 @@ pub mod pallet { /// Same as [`Self::call`], but intended to be dispatched **only** /// by an EVM transaction through the EVM compatibility layer. #[pallet::call_index(11)] - #[pallet::weight(T::WeightInfo::eth_call(Pallet::::has_dust(*value).into()).saturating_add(*gas_limit))] + #[pallet::weight( + T::WeightInfo::eth_call(Pallet::::has_dust(*value).into()) + .saturating_add(*gas_limit) + .saturating_add(T::WeightInfo::on_finalize_block_per_tx(transaction_encoded.len() as u32)) + )] pub fn eth_call( origin: OriginFor, dest: H160, @@ -1634,6 +1639,7 @@ where result.gas_required, result.storage_deposit, ); + let dispatch_call: ::RuntimeCall = crate::Call::::eth_call { dest, value, @@ -1695,6 +1701,7 @@ where result.gas_required, result.storage_deposit, ); + let dispatch_call: ::RuntimeCall = crate::Call::::eth_instantiate_with_code { value, @@ -1709,10 +1716,6 @@ where }, }; - if tx.try_into_unsigned().is_err() { - return Err(EthTransactError::Message("Invalid transaction".into())); - } - let eth_transact_call = crate::Call::::eth_transact { signed_transaction: dummy_signed }; let fee = tx_fee(eth_transact_call.into(), dispatch_call); let raw_gas = Self::evm_fee_to_gas(fee); @@ -1982,14 +1985,15 @@ impl Pallet { } /// The address of the validator that produced the current block. - pub fn block_author() -> Option { + pub fn block_author() -> H160 { use frame_support::traits::FindAuthor; let digest = >::digest(); let pre_runtime_digests = digest.logs.iter().filter_map(|d| d.as_pre_runtime()); - let account_id = T::FindAuthor::find_author(pre_runtime_digests)?; - Some(T::AddressMapper::to_address(&account_id)) + T::FindAuthor::find_author(pre_runtime_digests) + .map(|account_id| T::AddressMapper::to_address(&account_id)) + .unwrap_or_default() } /// Returns the code at `address`. @@ -2176,7 +2180,7 @@ macro_rules! impl_runtime_apis_plus_revive { } fn block_author() -> Option<$crate::H160> { - $crate::Pallet::::block_author() + Some($crate::Pallet::::block_author()) } fn block_gas_limit() -> $crate::U256 { @@ -2360,7 +2364,7 @@ macro_rules! impl_runtime_apis_plus_revive { let t = tracer.as_tracing(); t.watch_address(&tx.from.unwrap_or_default()); - t.watch_address(&$crate::Pallet::::block_author().unwrap_or_default()); + t.watch_address(&$crate::Pallet::::block_author()); let result = trace(t, || Self::eth_transact(tx)); if let Some(trace) = tracer.collect_trace() { diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 6814c5218eb45..b6f7afefc9b7d 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -141,7 +141,7 @@ fn events_are_captured() { TransactionSigned::Transaction4844Signed(Default::default()).signed_payload(), ]; let expected_tx_root = Block::compute_trie_root(&expected_payloads); - const EXPECTED_GAS: u64 = 6523515; + const EXPECTED_GAS: u64 = 7735804; let logs = vec![AlloyLog::new_unchecked( contract.0.into(), diff --git a/substrate/frame/revive/src/tests/sol/block_info.rs b/substrate/frame/revive/src/tests/sol/block_info.rs index 158100805cfe1..4082628c67d1b 100644 --- a/substrate/frame/revive/src/tests/sol/block_info.rs +++ b/substrate/frame/revive/src/tests/sol/block_info.rs @@ -70,7 +70,7 @@ fn block_author_works() { .data(BlockInfo::BlockInfoCalls::coinbase(BlockInfo::coinbaseCall {}).abi_encode()) .build_and_unwrap_result(); assert_eq!( - Contracts::block_author().unwrap(), + Contracts::block_author(), // Padding is used into the 32 bytes H160::from_slice(&result.data[12..]) ); diff --git a/substrate/frame/revive/src/vm/runtime_costs.rs b/substrate/frame/revive/src/vm/runtime_costs.rs index f96c9467e00b0..b062d3eaa86bf 100644 --- a/substrate/frame/revive/src/vm/runtime_costs.rs +++ b/substrate/frame/revive/src/vm/runtime_costs.rs @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -use crate::{gas::Token, weights::WeightInfo, Config}; +use crate::{gas::Token, weights::WeightInfo, weights_utils::OnFinalizeBlockParts, Config}; use frame_support::weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}; /// Current approximation of the gas/s consumption considering @@ -258,7 +258,8 @@ impl Token for RuntimeCosts { GasLimit => T::WeightInfo::seal_gas_limit(), WeightToFee => T::WeightInfo::seal_weight_to_fee(), Terminate { code_removed } => T::WeightInfo::seal_terminate(code_removed.into()), - DepositEvent { num_topic, len } => T::WeightInfo::seal_deposit_event(num_topic, len), + DepositEvent { num_topic, len } => T::WeightInfo::seal_deposit_event(num_topic, len) + .saturating_add(T::WeightInfo::on_finalize_block_per_event(len)), SetStorage { new_bytes, old_bytes } => { cost_storage!(write, seal_set_storage, new_bytes, old_bytes) }, diff --git a/substrate/frame/revive/src/weights.rs b/substrate/frame/revive/src/weights.rs index 1f1cdc3095691..9257f5267e625 100644 --- a/substrate/frame/revive/src/weights.rs +++ b/substrate/frame/revive/src/weights.rs @@ -164,6 +164,9 @@ pub trait WeightInfo { fn extcodecopy(n: u32, ) -> Weight; fn v1_migration_step() -> Weight; fn v2_migration_step() -> Weight; + fn on_finalize(n: u32, p: u32, ) -> Weight; + fn on_finalize_per_event(e: u32, ) -> Weight; + fn on_finalize_per_event_data(d: u32, ) -> Weight; } /// Weights for `pallet_revive` using the Substrate node and recommended hardware. @@ -1318,6 +1321,74 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } + /// Storage: `Revive::BlockHash` (r:1 w:1) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) + /// Storage: `Revive::InflightTransactions` (r:1 w:1) + /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Timestamp::Now` (r:1 w:0) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) + /// Storage: `Revive::EthereumBlock` (r:0 w:1) + /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) + /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `n` is `[0, 200]`. + /// The range of component `p` is `[0, 1000]`. + fn on_finalize(n: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + n * (1125 ±0) + p * (200 ±0)` + // Estimated: `3872 + n * (483 ±11) + p * (71 ±2)` + // Minimum execution time: 12_000_000 picoseconds. + Weight::from_parts(12_000_000, 3872) + // Standard Error: 67_601 + .saturating_add(Weight::from_parts(6_463_546, 0).saturating_mul(n.into())) + // Standard Error: 13_509 + .saturating_add(Weight::from_parts(452_529, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 483).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 71).saturating_mul(p.into())) + } + /// Storage: `Revive::BlockHash` (r:1 w:1) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) + /// Storage: `Revive::InflightTransactions` (r:1 w:1) + /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Timestamp::Now` (r:1 w:0) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) + /// Storage: `Revive::EthereumBlock` (r:0 w:1) + /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) + /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `e` is `[0, 100]`. + fn on_finalize_per_event(e: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `631 + e * (56 ±0)` + // Estimated: `2423 + e * (70 ±1)` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(13_249_502, 2423) + // Standard Error: 6_871 + .saturating_add(Weight::from_parts(1_198_945, 0).saturating_mul(e.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(e.into())) + } + + /// Storage: `Revive::EthereumBlock` (r:0 w:1) + /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) + /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `d` is `[0, 16384]`. + fn on_finalize_per_event_data(d: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `631 + d * (1 ±0)` + // Estimated: `2423 + d * (1 ±0)` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(13_249_502, 2423) + // Standard Error: 42 + .saturating_add(Weight::from_parts(3_336, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(d.into())) + } } // For backwards compatibility and tests. @@ -2471,4 +2542,72 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } + /// Storage: `Revive::BlockHash` (r:1 w:1) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) + /// Storage: `Revive::InflightTransactions` (r:1 w:1) + /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Timestamp::Now` (r:1 w:0) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) + /// Storage: `Revive::EthereumBlock` (r:0 w:1) + /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) + /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `n` is `[0, 200]`. + /// The range of component `p` is `[0, 1000]`. + fn on_finalize(n: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0 + n * (1125 ±0) + p * (200 ±0)` + // Estimated: `3872 + n * (483 ±11) + p * (71 ±2)` + // Minimum execution time: 12_000_000 picoseconds. + Weight::from_parts(12_000_000, 3872) + // Standard Error: 67_601 + .saturating_add(Weight::from_parts(6_463_546, 0).saturating_mul(n.into())) + // Standard Error: 13_509 + .saturating_add(Weight::from_parts(452_529, 0).saturating_mul(p.into())) + .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 483).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 71).saturating_mul(p.into())) + } + /// Storage: `Revive::BlockHash` (r:1 w:1) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) + /// Storage: `Revive::InflightTransactions` (r:1 w:1) + /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Timestamp::Now` (r:1 w:0) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) + /// Storage: `Revive::EthereumBlock` (r:0 w:1) + /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) + /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `e` is `[0, 100]`. + fn on_finalize_per_event(e: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `631 + e * (56 ±0)` + // Estimated: `2423 + e * (70 ±1)` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(13_249_502, 2423) + // Standard Error: 6_871 + .saturating_add(Weight::from_parts(1_198_945, 0).saturating_mul(e.into())) + .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(e.into())) + } + + /// Storage: `Revive::EthereumBlock` (r:0 w:1) + /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) + /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// The range of component `d` is `[0, 16384]`. + fn on_finalize_per_event_data(d: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `631 + d * (1 ±0)` + // Estimated: `2423 + d * (1 ±0)` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(13_249_502, 2423) + // Standard Error: 42 + .saturating_add(Weight::from_parts(3_336, 0).saturating_mul(d.into())) + .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(d.into())) + } } diff --git a/substrate/frame/revive/src/weights_utils.rs b/substrate/frame/revive/src/weights_utils.rs new file mode 100644 index 0000000000000..3ced8a8eb4cdf --- /dev/null +++ b/substrate/frame/revive/src/weights_utils.rs @@ -0,0 +1,88 @@ +// 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::WeightInfo; +use frame_support::weights::Weight; + +pub trait OnFinalizeBlockParts { + /// Returns the fixed base cost of finalize_block operations. + /// + /// This represents the constant overhead incurred during `on_finalize()` regardless + /// of transaction count or event data. Includes setup costs, storage reads/writes, + /// and other fixed operations. + fn on_finalize_block_fixed() -> Weight; + + /// Returns the per-transaction weight cost for finalize_block operations. + /// + /// This weight is applied incrementally during each `eth_call()` to: + /// - Enforce gas limits before transaction execution + /// - Reject transactions early if block capacity would be exceeded + /// - Account for transaction-specific processing costs (RLP encoding, etc.) + /// + /// # Parameters + /// - `payload_size`: Size of the transaction payload in bytes + fn on_finalize_block_per_tx(payload_size: u32) -> Weight; + + /// Returns the per-event weight cost for finalize_block operations. + /// + /// This weight is applied dynamically during each `deposit_event()` to account for: + /// - Event processing overhead (bloom filter updates, log conversion) + /// - Data-dependent costs (RLP encoding scales with event data size) + /// - Storage operations for event persistence + /// + /// Uses differential cost calculation: `per_event_base + (data_len * per_byte_cost)` + /// + /// # Parameters + /// - `data_len`: Total bytes of event data (includes topics and data field) + fn on_finalize_block_per_event(data_len: u32) -> Weight; +} + +/// Implementation of `OnFinalizeBlockParts` that derives high-level weights from `WeightInfo` +/// benchmarks. +/// +/// **Weight Formula:** +/// ```text +/// Total weight = fixed_part + Σ(per_tx_part(payload_i)) + Σ(per_event_part(data_len_j)) +/// ``` +/// +/// Uses differential calculation to isolate marginal costs from benchmark measurements. +impl OnFinalizeBlockParts for W { + fn on_finalize_block_fixed() -> Weight { + // Fixed cost is incurred no matter what number of transactions + W::on_finalize(0, 0) + } + + fn on_finalize_block_per_tx(payload_size: u32) -> Weight { + // Cost per transaction: on_finalize(1, payload_size) - fixed_cost + W::on_finalize(1, payload_size).saturating_sub(W::on_finalize_block_fixed()) + } + + fn on_finalize_block_per_event(data_len: u32) -> Weight { + // Base cost per event: cost difference between 1 event and 0 events + let per_event_base_cost = + W::on_finalize_per_event(1).saturating_sub(W::on_finalize_per_event(0)); + + // Additional cost per byte of event data + let per_byte_cost = if data_len > 0 { + W::on_finalize_per_event_data(data_len).saturating_sub(W::on_finalize_per_event_data(0)) + } else { + Weight::zero() + }; + + per_event_base_cost.saturating_add(per_byte_cost) + } +} From f14faee0cdec6116400ec1af385d3ef69ab6d08b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 18 Sep 2025 11:28:16 +0000 Subject: [PATCH 159/273] revive: Move eth block storage to dedicated module Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm.rs | 3 + .../frame/revive/src/evm/block_storage.rs | 61 +++++++++++++++++++ substrate/frame/revive/src/exec.rs | 4 +- substrate/frame/revive/src/lib.rs | 56 ++--------------- 4 files changed, 71 insertions(+), 53 deletions(-) create mode 100644 substrate/frame/revive/src/evm/block_storage.rs diff --git a/substrate/frame/revive/src/evm.rs b/substrate/frame/revive/src/evm.rs index 0d3a6cbc6728c..6d24b303d61ef 100644 --- a/substrate/frame/revive/src/evm.rs +++ b/substrate/frame/revive/src/evm.rs @@ -26,3 +26,6 @@ pub use gas_encoder::*; pub mod runtime; pub use alloy_core::sol_types::decode_revert_reason; pub mod block_hash; + +/// Ethereum block storage module. +pub(crate) mod block_storage; diff --git a/substrate/frame/revive/src/evm/block_storage.rs b/substrate/frame/revive/src/evm/block_storage.rs new file mode 100644 index 0000000000000..d2a522877926c --- /dev/null +++ b/substrate/frame/revive/src/evm/block_storage.rs @@ -0,0 +1,61 @@ +// 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::{ + evm::block_hash::{AccumulateReceipt, LogsBloom}, + H160, H256, +}; +use alloc::vec::Vec; +use environmental::environmental; + +/// The maximum number of block hashes to keep in the history. +pub const BLOCK_HASH_COUNT: u32 = 256; + +// The events emitted by this pallet while executing the current inflight transaction. +// +// The events are needed to reconstruct the receipt root hash, as they represent the +// logs emitted by the contract. The events are consumed when the transaction is +// completed. To minimize the amount of used memory, the events are RLP encoded directly. +environmental!(receipt: AccumulateReceipt); + +/// Capture the Ethereum log for the current transaction. +/// +/// This method does nothing if called from outside of the ethereum context. +pub fn capture_ethereum_log(contract: &H160, data: &[u8], topics: &[H256]) { + receipt::with(|receipt| { + receipt.add_log(contract, data, topics); + }); +} + +/// Get the receipt details of the current transaction. +/// +/// This method returns `None` if and only if the function is called +/// from outside of the ethereum context. +pub fn get_receipt_details() -> Option<(Vec, LogsBloom)> { + receipt::with(|receipt| { + let encoding = core::mem::take(&mut receipt.encoding); + let bloom = core::mem::take(&mut receipt.bloom); + (encoding, bloom) + }) +} + +/// Capture the receipt events emitted from the current ethereum +/// transaction. The transaction must be signed by an eth-compatible +/// wallet. +pub fn with_ethereum_context(f: impl FnOnce() -> R) -> R { + receipt::using(&mut AccumulateReceipt::new(), f) +} diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index f2804405bca6e..4c383473e0a65 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -17,7 +17,7 @@ use crate::{ address::{self, AddressMapper}, - eth_block_storage, + evm::block_storage, gas::GasMeter, limits, precompiles::{All as AllPrecompiles, Instance as PrecompileInstance, Precompiles}, @@ -2103,7 +2103,7 @@ where }); // Capture the log only if it is generated by an Ethereum transaction. - eth_block_storage::capture_ethereum_log(&contract, &data, &topics); + block_storage::capture_ethereum_log(&contract, &data, &topics); Contracts::::deposit_event(Event::ContractEmitted { contract, data, topics }); } diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 66cb4492cdbef..de015ece0057e 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -47,6 +47,7 @@ pub mod weights_utils; use crate::{ evm::{ block_hash::{EthereumBlockBuilder, EthereumBlockBuilderIR, ReceiptGasInfo}, + block_storage, runtime::GAS_PRICE, CallTracer, GasEncoder, GenericTransaction, PrestateTracer, Trace, Tracer, TracerType, TransactionSigned, TYPE_EIP1559, @@ -129,53 +130,6 @@ const SENTINEL: u32 = u32::MAX; /// Example: `RUST_LOG=runtime::revive=debug my_code --dev` const LOG_TARGET: &str = "runtime::revive"; -pub(crate) mod eth_block_storage { - use crate::{ - evm::block_hash::{AccumulateReceipt, LogsBloom}, - H160, H256, - }; - use alloc::vec::Vec; - use environmental::environmental; - - /// The maximum number of block hashes to keep in the history. - pub const BLOCK_HASH_COUNT: u32 = 256; - - // The events emitted by this pallet while executing the current inflight transaction. - // - // The events are needed to reconstruct the receipt root hash, as they represent the - // logs emitted by the contract. The events are consumed when the transaction is - // completed. To minimize the amount of used memory, the events are RLP encoded directly. - environmental!(receipt: AccumulateReceipt); - - /// Capture the Ethereum log for the current transaction. - /// - /// This method does nothing if called from outside of the ethereum context. - pub fn capture_ethereum_log(contract: &H160, data: &[u8], topics: &[H256]) { - receipt::with(|receipt| { - receipt.add_log(contract, data, topics); - }); - } - - /// Get the receipt details of the current transaction. - /// - /// This method returns `None` if and only if the function is called - /// from outside of the ethereum context. - pub fn get_receipt_details() -> Option<(Vec, LogsBloom)> { - receipt::with(|receipt| { - let encoding = core::mem::take(&mut receipt.encoding); - let bloom = core::mem::take(&mut receipt.bloom); - (encoding, bloom) - }) - } - - /// Capture the receipt events emitted from the current ethereum - /// transaction. The transaction must be signed by an eth-compatible - /// wallet. - pub fn with_ethereum_context(f: impl FnOnce() -> R) -> R { - receipt::using(&mut AccumulateReceipt::new(), f) - } -} - #[frame_support::pallet] pub mod pallet { use super::*; @@ -803,7 +757,7 @@ pub mod pallet { BlockHash::::insert(eth_block_num, block_hash); // Prune older block hashes. - let block_hash_count = eth_block_storage::BLOCK_HASH_COUNT; + let block_hash_count = block_storage::BLOCK_HASH_COUNT; let to_remove = eth_block_num.saturating_sub(block_hash_count.into()).saturating_sub(One::one()); if !to_remove.is_zero() { @@ -1131,7 +1085,7 @@ pub mod pallet { ) -> DispatchResultWithPostInfo { ensure_signed(origin.clone())?; - eth_block_storage::with_ethereum_context(|| { + block_storage::with_ethereum_context(|| { let code_len = code.len() as u32; let data_len = data.len() as u32; let mut output = Self::bare_instantiate( @@ -1188,7 +1142,7 @@ pub mod pallet { ) -> DispatchResultWithPostInfo { ensure_signed(origin.clone())?; - eth_block_storage::with_ethereum_context(|| { + block_storage::with_ethereum_context(|| { let mut output = Self::bare_call( origin, dest, @@ -1968,7 +1922,7 @@ impl Pallet { // Method returns `None` only when called from outside of the ethereum context. // This is not the case here, since the `store_transaction` is called from within the // ethereum context. - let (encoded_logs, bloom) = eth_block_storage::get_receipt_details().unwrap_or_default(); + let (encoded_logs, bloom) = block_storage::get_receipt_details().unwrap_or_default(); let block_builder_ir = EthBlockBuilderIR::::get(); let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); From 53123989af9b87a3162a32890e74a596afad9e04 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 22 Sep 2025 08:43:48 +0000 Subject: [PATCH 160/273] revive/hash: Save the block hash in the returned block Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 0f1239767c0ea..b02b7e2539d10 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -599,7 +599,7 @@ impl EthereumBlockBuilder { let tx_hashes = core::mem::replace(&mut self.tx_hashes, Vec::new()); let gas_info = core::mem::replace(&mut self.gas_info, Vec::new()); - let block = Block { + let mut block = Block { number: block_number, parent_hash, timestamp, @@ -619,6 +619,8 @@ impl EthereumBlockBuilder { }; let block_hash = block.header_hash(); + block.hash = block_hash; + (block_hash, block, gas_info) } From 9adc0f0674a1f946750efc7bc1994b012e844f3f Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 22 Sep 2025 09:18:21 +0000 Subject: [PATCH 161/273] revive: Simplify the build API Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 6 +++--- substrate/frame/revive/src/lib.rs | 11 ++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index b02b7e2539d10..e492f6b9a57fd 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -592,7 +592,7 @@ impl EthereumBlockBuilder { timestamp: U256, block_author: H160, gas_limit: U256, - ) -> (H256, Block, Vec) { + ) -> (Block, Vec) { let transactions_root = Self::compute_trie_root(&mut self.transaction_root_builder); let receipts_root = Self::compute_trie_root(&mut self.receipts_root_builder); @@ -621,7 +621,7 @@ impl EthereumBlockBuilder { let block_hash = block.header_hash(); block.hash = block_hash; - (block_hash, block, gas_info) + (block, gas_info) } fn compute_trie_root(builder: &mut Option) -> H256 { @@ -834,7 +834,7 @@ mod test { block.miner, Default::default(), ) - .1; + .0; assert_eq!(built_block.gas_used, block.gas_used); assert_eq!(built_block.logs_bloom, block.logs_bloom); diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index de015ece0057e..19c7ab75a7a86 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -750,11 +750,16 @@ pub mod pallet { let block_builder_ir = EthBlockBuilderIR::::get(); EthBlockBuilderIR::::kill(); - let (block_hash, block, receipt_data) = EthereumBlockBuilder::from_ir(block_builder_ir) - .build(eth_block_num, parent_hash, T::Time::now().into(), block_author, gas_limit); + let (block, receipt_data) = EthereumBlockBuilder::from_ir(block_builder_ir).build( + eth_block_num, + parent_hash, + T::Time::now().into(), + block_author, + gas_limit, + ); // Put the block hash into storage. - BlockHash::::insert(eth_block_num, block_hash); + BlockHash::::insert(eth_block_num, block.hash); // Prune older block hashes. let block_hash_count = block_storage::BLOCK_HASH_COUNT; From 3b5e64224d7c63b2fdbe897a1551290346bb28ac Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Mon, 22 Sep 2025 13:13:53 +0200 Subject: [PATCH 162/273] revive/benchmarks: use block_storage module --- substrate/frame/revive/src/benchmarking.rs | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index ee49ae1bfd4f7..d10c91f084cb1 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -20,7 +20,7 @@ #![cfg(feature = "runtime-benchmarks")] use crate::{ call_builder::{caller_funding, default_deposit_limit, CallSetup, Contract, VmBinaryModule}, - evm::{runtime::GAS_PRICE, TransactionLegacyUnsigned, TransactionUnsigned}, + evm::{block_storage, runtime::GAS_PRICE, TransactionLegacyUnsigned, TransactionUnsigned}, exec::{Key, MomentOf, PrecompileExt}, limits, precompiles::{ @@ -2716,9 +2716,9 @@ mod benchmarks { ); // Store transaction - let _ = eth_block_storage::with_ethereum_context(|| { + let _ = block_storage::with_ethereum_context(|| { let (encoded_logs, bloom) = - eth_block_storage::get_receipt_details().unwrap_or_default(); + block_storage::get_receipt_details().unwrap_or_default(); let block_builder_ir = EthBlockBuilderIR::::get(); let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); @@ -2782,9 +2782,8 @@ mod benchmarks { let gas_used = Weight::from_parts(1_000_000, 1000); // Store transaction - let _ = eth_block_storage::with_ethereum_context(|| { - let (encoded_logs, bloom) = - eth_block_storage::get_receipt_details().unwrap_or_default(); + let _ = block_storage::with_ethereum_context(|| { + let (encoded_logs, bloom) = block_storage::get_receipt_details().unwrap_or_default(); let block_builder_ir = EthBlockBuilderIR::::get(); let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); @@ -2802,7 +2801,7 @@ mod benchmarks { // Create e events with minimal data to isolate event count overhead for _ in 0..e { - eth_block_storage::capture_ethereum_log(&instance.address, &vec![], &vec![]); + block_storage::capture_ethereum_log(&instance.address, &vec![], &vec![]); } #[block] @@ -2845,9 +2844,8 @@ mod benchmarks { let gas_used = Weight::from_parts(1_000_000, 1000); // Store transaction - let _ = eth_block_storage::with_ethereum_context(|| { - let (encoded_logs, bloom) = - eth_block_storage::get_receipt_details().unwrap_or_default(); + let _ = block_storage::with_ethereum_context(|| { + let (encoded_logs, bloom) = block_storage::get_receipt_details().unwrap_or_default(); let block_builder_ir = EthBlockBuilderIR::::get(); let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); @@ -2886,7 +2884,7 @@ mod benchmarks { (event_data, topics) }; - eth_block_storage::capture_ethereum_log(&instance.address, &event_data, &topics); + block_storage::capture_ethereum_log(&instance.address, &event_data, &topics); #[block] { From 6b070cdc9265357bb7323c981c27fee6566d5362 Mon Sep 17 00:00:00 2001 From: "cmd[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 22 Sep 2025 13:13:28 +0000 Subject: [PATCH 163/273] Update from github-actions[bot] running command 'bench --runtime dev --pallet pallet_revive' --- substrate/frame/revive/src/weights.rs | 1374 +++++++++++++------------ 1 file changed, 698 insertions(+), 676 deletions(-) diff --git a/substrate/frame/revive/src/weights.rs b/substrate/frame/revive/src/weights.rs index 9257f5267e625..82dc4f28ba3b3 100644 --- a/substrate/frame/revive/src/weights.rs +++ b/substrate/frame/revive/src/weights.rs @@ -35,9 +35,9 @@ //! Autogenerated weights for `pallet_revive` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2025-09-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2025-09-22, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `ff2afa3d9639`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `aee002137b1c`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` // Executed Command: @@ -178,8 +178,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `147` // Estimated: `1632` - // Minimum execution time: 3_103_000 picoseconds. - Weight::from_parts(3_288_000, 1632) + // Minimum execution time: 3_210_000 picoseconds. + Weight::from_parts(3_331_000, 1632) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -189,10 +189,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `458 + k * (69 ±0)` // Estimated: `448 + k * (70 ±0)` - // Minimum execution time: 14_393_000 picoseconds. - Weight::from_parts(14_689_000, 448) - // Standard Error: 1_032 - .saturating_add(Weight::from_parts(1_205_681, 0).saturating_mul(k.into())) + // Minimum execution time: 14_886_000 picoseconds. + Weight::from_parts(15_123_000, 448) + // Standard Error: 2_243 + .saturating_add(Weight::from_parts(1_272_153, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -216,10 +216,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1172 + c * (1 ±0)` // Estimated: `7107 + c * (1 ±0)` - // Minimum execution time: 85_415_000 picoseconds. - Weight::from_parts(120_226_734, 7107) - // Standard Error: 10 - .saturating_add(Weight::from_parts(1_539, 0).saturating_mul(c.into())) + // Minimum execution time: 88_436_000 picoseconds. + Weight::from_parts(126_734_069, 7107) + // Standard Error: 11 + .saturating_add(Weight::from_parts(1_694, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -237,12 +237,14 @@ impl WeightInfo for SubstrateWeight { /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// The range of component `c` is `[1, 10240]`. - fn call_with_evm_code_per_byte(_c: u32, ) -> Weight { + fn call_with_evm_code_per_byte(c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1112` // Estimated: `7051` - // Minimum execution time: 80_503_000 picoseconds. - Weight::from_parts(84_811_467, 7051) + // Minimum execution time: 83_193_000 picoseconds. + Weight::from_parts(87_821_931, 7051) + // Standard Error: 33 + .saturating_add(Weight::from_parts(65, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -263,8 +265,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4516` // Estimated: `10456` - // Minimum execution time: 123_461_000 picoseconds. - Weight::from_parts(128_775_940, 10456) + // Minimum execution time: 126_074_000 picoseconds. + Weight::from_parts(131_886_612, 10456) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -288,12 +290,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6811` - // Minimum execution time: 749_503_000 picoseconds. - Weight::from_parts(59_829_896, 6811) - // Standard Error: 35 - .saturating_add(Weight::from_parts(20_233, 0).saturating_mul(c.into())) - // Standard Error: 27 - .saturating_add(Weight::from_parts(5_057, 0).saturating_mul(i.into())) + // Minimum execution time: 760_383_000 picoseconds. + Weight::from_parts(14_368_942, 6811) + // Standard Error: 37 + .saturating_add(Weight::from_parts(21_385, 0).saturating_mul(c.into())) + // Standard Error: 28 + .saturating_add(Weight::from_parts(5_571, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -309,6 +311,8 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:0 w:1) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `c` is `[0, 102400]`. @@ -318,17 +322,17 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6821 + d * (2475 ±0)` - // Minimum execution time: 277_185_000 picoseconds. - Weight::from_parts(147_220_906, 6821) - // Standard Error: 29 - .saturating_add(Weight::from_parts(15_202, 0).saturating_mul(c.into())) - // Standard Error: 23 - .saturating_add(Weight::from_parts(642, 0).saturating_mul(i.into())) - // Standard Error: 1_934_039 - .saturating_add(Weight::from_parts(34_192_978, 0).saturating_mul(d.into())) - .saturating_add(T::DbWeight::get().reads(7_u64)) + // Minimum execution time: 297_538_000 picoseconds. + Weight::from_parts(206_359_544, 6821) + // Standard Error: 22 + .saturating_add(Weight::from_parts(15_660, 0).saturating_mul(c.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(450, 0).saturating_mul(i.into())) + // Standard Error: 1_474_523 + .saturating_add(Weight::from_parts(39_823_491, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(d.into()))) - .saturating_add(T::DbWeight::get().writes(6_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) .saturating_add(Weight::from_parts(0, 2475).saturating_mul(d.into())) } @@ -349,12 +353,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 131072]`. fn instantiate(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1610` - // Estimated: `5060` - // Minimum execution time: 168_670_000 picoseconds. - Weight::from_parts(175_522_603, 5060) - // Standard Error: 12 - .saturating_add(Weight::from_parts(4_260, 0).saturating_mul(i.into())) + // Measured: `1623` + // Estimated: `5077` + // Minimum execution time: 176_565_000 picoseconds. + Weight::from_parts(181_735_147, 5077) + // Standard Error: 10 + .saturating_add(Weight::from_parts(4_287, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -374,8 +378,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734` - // Minimum execution time: 86_819_000 picoseconds. - Weight::from_parts(89_536_000, 7734) + // Minimum execution time: 90_352_000 picoseconds. + Weight::from_parts(93_883_000, 7734) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -391,18 +395,20 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `d` is `[0, 1]`. fn eth_call(d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734 + d * (2475 ±0)` - // Minimum execution time: 85_649_000 picoseconds. - Weight::from_parts(90_277_271, 7734) - // Standard Error: 333_872 - .saturating_add(Weight::from_parts(26_832_228, 0).saturating_mul(d.into())) - .saturating_add(T::DbWeight::get().reads(7_u64)) + // Minimum execution time: 96_966_000 picoseconds. + Weight::from_parts(101_532_838, 7734) + // Standard Error: 485_092 + .saturating_add(Weight::from_parts(25_810_261, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(d.into()))) - .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) .saturating_add(Weight::from_parts(0, 2475).saturating_mul(d.into())) } @@ -417,10 +423,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `303` // Estimated: `3768` - // Minimum execution time: 56_015_000 picoseconds. - Weight::from_parts(44_756_550, 3768) - // Standard Error: 17 - .saturating_add(Weight::from_parts(14_377, 0).saturating_mul(c.into())) + // Minimum execution time: 57_740_000 picoseconds. + Weight::from_parts(50_519_259, 3768) + // Standard Error: 19 + .saturating_add(Weight::from_parts(14_777, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -434,8 +440,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `458` // Estimated: `3923` - // Minimum execution time: 51_807_000 picoseconds. - Weight::from_parts(53_562_000, 3923) + // Minimum execution time: 53_859_000 picoseconds. + Weight::from_parts(55_170_000, 3923) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -453,8 +459,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `797` // Estimated: `6737` - // Minimum execution time: 65_431_000 picoseconds. - Weight::from_parts(66_763_000, 6737) + // Minimum execution time: 67_863_000 picoseconds. + Weight::from_parts(69_274_000, 6737) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -466,8 +472,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `510` // Estimated: `3975` - // Minimum execution time: 54_271_000 picoseconds. - Weight::from_parts(55_618_000, 3975) + // Minimum execution time: 56_675_000 picoseconds. + Weight::from_parts(57_728_000, 3975) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -479,8 +485,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `93` // Estimated: `3558` - // Minimum execution time: 38_990_000 picoseconds. - Weight::from_parts(39_656_000, 3558) + // Minimum execution time: 40_236_000 picoseconds. + Weight::from_parts(41_542_000, 3558) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -492,8 +498,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 13_086_000 picoseconds. - Weight::from_parts(13_681_000, 3610) + // Minimum execution time: 13_229_000 picoseconds. + Weight::from_parts(13_841_000, 3610) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// The range of component `r` is `[0, 1600]`. @@ -501,24 +507,24 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_423_000 picoseconds. - Weight::from_parts(9_149_999, 0) - // Standard Error: 227 - .saturating_add(Weight::from_parts(180_894, 0).saturating_mul(r.into())) + // Minimum execution time: 8_024_000 picoseconds. + Weight::from_parts(9_239_929, 0) + // Standard Error: 289 + .saturating_add(Weight::from_parts(175_656, 0).saturating_mul(r.into())) } fn seal_caller() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 294_000 picoseconds. - Weight::from_parts(330_000, 0) + // Minimum execution time: 326_000 picoseconds. + Weight::from_parts(360_000, 0) } fn seal_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 270_000 picoseconds. - Weight::from_parts(317_000, 0) + // Minimum execution time: 319_000 picoseconds. + Weight::from_parts(348_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -526,8 +532,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `567` // Estimated: `4032` - // Minimum execution time: 7_773_000 picoseconds. - Weight::from_parts(8_282_000, 4032) + // Minimum execution time: 8_005_000 picoseconds. + Weight::from_parts(8_473_000, 4032) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) @@ -536,16 +542,16 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `403` // Estimated: `3868` - // Minimum execution time: 9_567_000 picoseconds. - Weight::from_parts(9_975_000, 3868) + // Minimum execution time: 9_367_000 picoseconds. + Weight::from_parts(9_726_000, 3868) .saturating_add(T::DbWeight::get().reads(1_u64)) } fn own_code_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `0` + // Measured: `366` // Estimated: `0` - // Minimum execution time: 252_000 picoseconds. - Weight::from_parts(301_000, 0) + // Minimum execution time: 6_717_000 picoseconds. + Weight::from_parts(7_168_000, 0) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) @@ -555,51 +561,51 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `475` // Estimated: `3940` - // Minimum execution time: 13_090_000 picoseconds. - Weight::from_parts(13_527_000, 3940) + // Minimum execution time: 12_765_000 picoseconds. + Weight::from_parts(13_443_000, 3940) .saturating_add(T::DbWeight::get().reads(2_u64)) } fn caller_is_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 337_000 picoseconds. - Weight::from_parts(375_000, 0) + // Minimum execution time: 976_000 picoseconds. + Weight::from_parts(1_083_000, 0) } fn caller_is_root() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 258_000 picoseconds. - Weight::from_parts(300_000, 0) + // Minimum execution time: 930_000 picoseconds. + Weight::from_parts(1_078_000, 0) } fn seal_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 308_000 picoseconds. - Weight::from_parts(352_000, 0) + // Minimum execution time: 296_000 picoseconds. + Weight::from_parts(356_000, 0) } fn weight_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 687_000 picoseconds. - Weight::from_parts(776_000, 0) + // Minimum execution time: 924_000 picoseconds. + Weight::from_parts(1_041_000, 0) } fn seal_ref_time_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 247_000 picoseconds. - Weight::from_parts(278_000, 0) + // Minimum execution time: 281_000 picoseconds. + Weight::from_parts(317_000, 0) } fn seal_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `540` + // Measured: `469` // Estimated: `0` - // Minimum execution time: 12_447_000 picoseconds. - Weight::from_parts(13_433_000, 0) + // Minimum execution time: 12_323_000 picoseconds. + Weight::from_parts(12_690_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -611,8 +617,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `791` // Estimated: `4256` - // Minimum execution time: 18_806_000 picoseconds. - Weight::from_parts(19_217_000, 4256) + // Minimum execution time: 18_748_000 picoseconds. + Weight::from_parts(19_140_000, 4256) .saturating_add(T::DbWeight::get().reads(3_u64)) } /// Storage: `Revive::ImmutableDataOf` (r:1 w:0) @@ -622,10 +628,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `271 + n * (1 ±0)` // Estimated: `3736 + n * (1 ±0)` - // Minimum execution time: 5_800_000 picoseconds. - Weight::from_parts(6_657_021, 3736) - // Standard Error: 6 - .saturating_add(Weight::from_parts(595, 0).saturating_mul(n.into())) + // Minimum execution time: 5_915_000 picoseconds. + Weight::from_parts(6_623_622, 3736) + // Standard Error: 5 + .saturating_add(Weight::from_parts(544, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -636,67 +642,67 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_057_000 picoseconds. - Weight::from_parts(2_320_795, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(558, 0).saturating_mul(n.into())) + // Minimum execution time: 1_959_000 picoseconds. + Weight::from_parts(2_250_085, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(564, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().writes(1_u64)) } fn seal_value_transferred() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 260_000 picoseconds. - Weight::from_parts(293_000, 0) + // Minimum execution time: 306_000 picoseconds. + Weight::from_parts(344_000, 0) } fn minimum_balance() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 233_000 picoseconds. - Weight::from_parts(291_000, 0) + // Minimum execution time: 1_222_000 picoseconds. + Weight::from_parts(1_306_000, 0) } fn seal_return_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 232_000 picoseconds. - Weight::from_parts(262_000, 0) + // Minimum execution time: 254_000 picoseconds. + Weight::from_parts(294_000, 0) } fn seal_call_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 234_000 picoseconds. - Weight::from_parts(273_000, 0) + // Minimum execution time: 262_000 picoseconds. + Weight::from_parts(300_000, 0) } fn seal_gas_limit() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 441_000 picoseconds. - Weight::from_parts(523_000, 0) + // Minimum execution time: 534_000 picoseconds. + Weight::from_parts(594_000, 0) } fn seal_gas_price() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 254_000 picoseconds. - Weight::from_parts(294_000, 0) + // Minimum execution time: 270_000 picoseconds. + Weight::from_parts(309_000, 0) } fn seal_base_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 229_000 picoseconds. - Weight::from_parts(269_000, 0) + // Minimum execution time: 273_000 picoseconds. + Weight::from_parts(311_000, 0) } fn seal_block_number() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 254_000 picoseconds. - Weight::from_parts(290_000, 0) + // Minimum execution time: 236_000 picoseconds. + Weight::from_parts(317_000, 0) } /// Storage: `Session::Validators` (r:1 w:0) /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -704,58 +710,60 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `141` // Estimated: `1626` - // Minimum execution time: 21_852_000 picoseconds. - Weight::from_parts(22_526_000, 1626) + // Minimum execution time: 22_010_000 picoseconds. + Weight::from_parts(22_637_000, 1626) .saturating_add(T::DbWeight::get().reads(1_u64)) } + /// Storage: `Revive::BlockHash` (r:1 w:0) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) /// Storage: `System::BlockHash` (r:1 w:0) /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `Measured`) fn seal_block_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `30` - // Estimated: `3495` - // Minimum execution time: 3_600_000 picoseconds. - Weight::from_parts(3_830_000, 3495) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Measured: `295` + // Estimated: `3760` + // Minimum execution time: 8_650_000 picoseconds. + Weight::from_parts(9_015_000, 3760) + .saturating_add(T::DbWeight::get().reads(2_u64)) } fn seal_now() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 239_000 picoseconds. - Weight::from_parts(276_000, 0) + // Minimum execution time: 267_000 picoseconds. + Weight::from_parts(327_000, 0) } fn seal_weight_to_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_595_000 picoseconds. - Weight::from_parts(1_665_000, 0) + // Minimum execution time: 1_553_000 picoseconds. + Weight::from_parts(1_725_000, 0) } /// The range of component `n` is `[0, 1048572]`. fn seal_copy_to_contract(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 402_000 picoseconds. - Weight::from_parts(496_964, 0) + // Minimum execution time: 442_000 picoseconds. + Weight::from_parts(41_341, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(239, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(240, 0).saturating_mul(n.into())) } fn seal_call_data_load() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 250_000 picoseconds. - Weight::from_parts(289_000, 0) + // Minimum execution time: 264_000 picoseconds. + Weight::from_parts(309_000, 0) } /// The range of component `n` is `[0, 1048576]`. fn seal_call_data_copy(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 230_000 picoseconds. - Weight::from_parts(255_000, 0) + // Minimum execution time: 247_000 picoseconds. + Weight::from_parts(270_000, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(151, 0).saturating_mul(n.into())) } @@ -764,8 +772,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 253_000 picoseconds. - Weight::from_parts(544_296, 0) + // Minimum execution time: 304_000 picoseconds. + Weight::from_parts(514_465, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(237, 0).saturating_mul(n.into())) } @@ -788,17 +796,17 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 1]`. fn seal_terminate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `583 + r * (402 ±0)` - // Estimated: `4048 + r * (2225 ±0)` - // Minimum execution time: 16_727_000 picoseconds. - Weight::from_parts(17_739_285, 4048) - // Standard Error: 59_932 - .saturating_add(Weight::from_parts(44_553_014, 0).saturating_mul(r.into())) + // Measured: `583 + r * (368 ±0)` + // Estimated: `4048 + r * (2208 ±0)` + // Minimum execution time: 16_705_000 picoseconds. + Weight::from_parts(17_856_526, 4048) + // Standard Error: 65_022 + .saturating_add(Weight::from_parts(46_778_473, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2225).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2208).saturating_mul(r.into())) } /// The range of component `t` is `[0, 4]`. /// The range of component `n` is `[0, 416]`. @@ -806,12 +814,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_226_000 picoseconds. - Weight::from_parts(4_252_357, 0) - // Standard Error: 3_401 - .saturating_add(Weight::from_parts(233_040, 0).saturating_mul(t.into())) - // Standard Error: 37 - .saturating_add(Weight::from_parts(1_172, 0).saturating_mul(n.into())) + // Minimum execution time: 4_560_000 picoseconds. + Weight::from_parts(4_530_282, 0) + // Standard Error: 3_946 + .saturating_add(Weight::from_parts(250_732, 0).saturating_mul(t.into())) + // Standard Error: 43 + .saturating_add(Weight::from_parts(1_229, 0).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -819,8 +827,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 6_909_000 picoseconds. - Weight::from_parts(7_499_000, 648) + // Minimum execution time: 7_204_000 picoseconds. + Weight::from_parts(7_628_000, 648) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -829,8 +837,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 41_173_000 picoseconds. - Weight::from_parts(42_303_000, 10658) + // Minimum execution time: 41_838_000 picoseconds. + Weight::from_parts(42_977_000, 10658) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -839,8 +847,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 8_428_000 picoseconds. - Weight::from_parts(8_817_000, 648) + // Minimum execution time: 8_403_000 picoseconds. + Weight::from_parts(8_907_000, 648) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -850,8 +858,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 43_627_000 picoseconds. - Weight::from_parts(44_777_000, 10658) + // Minimum execution time: 44_050_000 picoseconds. + Weight::from_parts(45_950_000, 10658) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -863,12 +871,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + o * (1 ±0)` // Estimated: `247 + o * (1 ±0)` - // Minimum execution time: 8_934_000 picoseconds. - Weight::from_parts(9_589_880, 247) - // Standard Error: 65 - .saturating_add(Weight::from_parts(667, 0).saturating_mul(n.into())) - // Standard Error: 65 - .saturating_add(Weight::from_parts(821, 0).saturating_mul(o.into())) + // Minimum execution time: 9_101_000 picoseconds. + Weight::from_parts(9_596_435, 247) + // Standard Error: 49 + .saturating_add(Weight::from_parts(700, 0).saturating_mul(n.into())) + // Standard Error: 49 + .saturating_add(Weight::from_parts(702, 0).saturating_mul(o.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(o.into())) @@ -880,10 +888,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_527_000 picoseconds. - Weight::from_parts(9_507_817, 247) - // Standard Error: 73 - .saturating_add(Weight::from_parts(860, 0).saturating_mul(n.into())) + // Minimum execution time: 8_637_000 picoseconds. + Weight::from_parts(9_578_824, 247) + // Standard Error: 97 + .saturating_add(Weight::from_parts(735, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -895,10 +903,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_076_000 picoseconds. - Weight::from_parts(9_106_693, 247) - // Standard Error: 73 - .saturating_add(Weight::from_parts(1_668, 0).saturating_mul(n.into())) + // Minimum execution time: 8_202_000 picoseconds. + Weight::from_parts(9_192_652, 247) + // Standard Error: 90 + .saturating_add(Weight::from_parts(1_535, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -909,10 +917,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 7_571_000 picoseconds. - Weight::from_parts(8_454_639, 247) - // Standard Error: 69 - .saturating_add(Weight::from_parts(888, 0).saturating_mul(n.into())) + // Minimum execution time: 7_868_000 picoseconds. + Weight::from_parts(8_576_110, 247) + // Standard Error: 64 + .saturating_add(Weight::from_parts(1_126, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -923,10 +931,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 9_140_000 picoseconds. - Weight::from_parts(10_132_276, 247) - // Standard Error: 70 - .saturating_add(Weight::from_parts(1_866, 0).saturating_mul(n.into())) + // Minimum execution time: 9_377_000 picoseconds. + Weight::from_parts(10_379_997, 247) + // Standard Error: 100 + .saturating_add(Weight::from_parts(1_590, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -935,36 +943,36 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_655_000 picoseconds. - Weight::from_parts(1_744_000, 0) + // Minimum execution time: 1_606_000 picoseconds. + Weight::from_parts(1_741_000, 0) } fn set_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_987_000 picoseconds. - Weight::from_parts(2_135_000, 0) + // Minimum execution time: 1_980_000 picoseconds. + Weight::from_parts(2_095_000, 0) } fn get_transient_storage_empty() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_641_000 picoseconds. - Weight::from_parts(1_751_000, 0) + // Minimum execution time: 1_636_000 picoseconds. + Weight::from_parts(1_701_000, 0) } fn get_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_732_000 picoseconds. - Weight::from_parts(1_891_000, 0) + // Minimum execution time: 1_749_000 picoseconds. + Weight::from_parts(1_847_000, 0) } fn rollback_transient_storage() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_237_000 picoseconds. - Weight::from_parts(1_378_000, 0) + // Minimum execution time: 1_201_000 picoseconds. + Weight::from_parts(1_395_000, 0) } /// The range of component `n` is `[0, 416]`. /// The range of component `o` is `[0, 416]`. @@ -972,50 +980,50 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_283_000 picoseconds. - Weight::from_parts(2_636_514, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(296, 0).saturating_mul(n.into())) - // Standard Error: 19 - .saturating_add(Weight::from_parts(374, 0).saturating_mul(o.into())) + // Minimum execution time: 2_296_000 picoseconds. + Weight::from_parts(2_693_939, 0) + // Standard Error: 23 + .saturating_add(Weight::from_parts(146, 0).saturating_mul(n.into())) + // Standard Error: 23 + .saturating_add(Weight::from_parts(197, 0).saturating_mul(o.into())) } /// The range of component `n` is `[0, 416]`. fn seal_clear_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_171_000 picoseconds. - Weight::from_parts(2_555_844, 0) - // Standard Error: 23 - .saturating_add(Weight::from_parts(468, 0).saturating_mul(n.into())) + // Minimum execution time: 2_105_000 picoseconds. + Weight::from_parts(2_584_360, 0) + // Standard Error: 27 + .saturating_add(Weight::from_parts(316, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_get_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_985_000 picoseconds. - Weight::from_parts(2_277_401, 0) - // Standard Error: 21 - .saturating_add(Weight::from_parts(394, 0).saturating_mul(n.into())) + // Minimum execution time: 2_104_000 picoseconds. + Weight::from_parts(2_370_667, 0) + // Standard Error: 18 + .saturating_add(Weight::from_parts(362, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_contains_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_784_000 picoseconds. - Weight::from_parts(2_034_472, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(214, 0).saturating_mul(n.into())) + // Minimum execution time: 1_872_000 picoseconds. + Weight::from_parts(2_142_743, 0) + // Standard Error: 18 + .saturating_add(Weight::from_parts(175, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_take_transient_storage(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_653_000 picoseconds. - Weight::from_parts(2_929_498, 0) + // Minimum execution time: 2_780_000 picoseconds. + Weight::from_parts(3_060_959, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -1032,14 +1040,14 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 1048576]`. fn seal_call(t: u32, d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1925` - // Estimated: `5390` - // Minimum execution time: 88_292_000 picoseconds. - Weight::from_parts(67_934_136, 5390) - // Standard Error: 161_519 - .saturating_add(Weight::from_parts(19_069_368, 0).saturating_mul(t.into())) - // Standard Error: 161_519 - .saturating_add(Weight::from_parts(25_783_515, 0).saturating_mul(d.into())) + // Measured: `1982` + // Estimated: `5447` + // Minimum execution time: 91_620_000 picoseconds. + Weight::from_parts(71_144_460, 5447) + // Standard Error: 190_178 + .saturating_add(Weight::from_parts(19_343_545, 0).saturating_mul(t.into())) + // Standard Error: 190_178 + .saturating_add(Weight::from_parts(25_751_547, 0).saturating_mul(d.into())) // Standard Error: 0 .saturating_add(Weight::from_parts(4, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) @@ -1055,16 +1063,16 @@ impl WeightInfo for SubstrateWeight { fn seal_call_precompile(d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `366 + d * (212 ±0)` - // Estimated: `2021 + d * (2021 ±0)` - // Minimum execution time: 24_082_000 picoseconds. - Weight::from_parts(11_635_002, 2021) - // Standard Error: 32_873 - .saturating_add(Weight::from_parts(13_461_671, 0).saturating_mul(d.into())) + // Estimated: `2021 + d * (2022 ±0)` + // Minimum execution time: 24_855_000 picoseconds. + Weight::from_parts(11_891_687, 2021) + // Standard Error: 56_218 + .saturating_add(Weight::from_parts(14_087_455, 0).saturating_mul(d.into())) // Standard Error: 0 - .saturating_add(Weight::from_parts(395, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(396, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(d.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) - .saturating_add(Weight::from_parts(0, 2021).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(0, 2022).saturating_mul(d.into())) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) @@ -1076,8 +1084,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1363` // Estimated: `4828` - // Minimum execution time: 31_965_000 picoseconds. - Weight::from_parts(33_059_000, 4828) + // Minimum execution time: 32_172_000 picoseconds. + Weight::from_parts(33_534_000, 4828) .saturating_add(T::DbWeight::get().reads(3_u64)) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) @@ -1093,138 +1101,136 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 131072]`. fn seal_instantiate(t: u32, d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1413` - // Estimated: `4857 + d * (28 ±1) + t * (28 ±1)` - // Minimum execution time: 150_124_000 picoseconds. - Weight::from_parts(100_922_263, 4857) - // Standard Error: 553_691 - .saturating_add(Weight::from_parts(21_824_333, 0).saturating_mul(t.into())) - // Standard Error: 553_691 - .saturating_add(Weight::from_parts(30_090_103, 0).saturating_mul(d.into())) - // Standard Error: 6 - .saturating_add(Weight::from_parts(4_031, 0).saturating_mul(i.into())) + // Measured: `1394` + // Estimated: `4860` + // Minimum execution time: 152_004_000 picoseconds. + Weight::from_parts(108_663_174, 4860) + // Standard Error: 504_319 + .saturating_add(Weight::from_parts(18_594_769, 0).saturating_mul(t.into())) + // Standard Error: 504_319 + .saturating_add(Weight::from_parts(30_804_841, 0).saturating_mul(d.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(4_039, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 28).saturating_mul(d.into())) - .saturating_add(Weight::from_parts(0, 28).saturating_mul(t.into())) } /// The range of component `n` is `[0, 1048576]`. fn sha2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_198_000 picoseconds. - Weight::from_parts(5_902_477, 0) + // Minimum execution time: 1_234_000 picoseconds. + Weight::from_parts(11_952_857, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_301, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_283, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn identity(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 710_000 picoseconds. - Weight::from_parts(583_657, 0) + // Minimum execution time: 734_000 picoseconds. + Weight::from_parts(701_255, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(148, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(149, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn ripemd_160(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_145_000 picoseconds. - Weight::from_parts(5_218_490, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_770, 0).saturating_mul(n.into())) + // Minimum execution time: 1_223_000 picoseconds. + Weight::from_parts(2_447_915, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(3_789, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_keccak_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_133_000 picoseconds. - Weight::from_parts(12_018_626, 0) + // Minimum execution time: 1_113_000 picoseconds. + Weight::from_parts(1_182_000, 0) // Standard Error: 1 - .saturating_add(Weight::from_parts(3_591, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_677, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn hash_blake2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_594_000 picoseconds. - Weight::from_parts(16_080_940, 0) - // Standard Error: 0 - .saturating_add(Weight::from_parts(1_437, 0).saturating_mul(n.into())) + // Minimum execution time: 1_658_000 picoseconds. + Weight::from_parts(1_723_000, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_521, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn hash_blake2_128(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_493_000 picoseconds. - Weight::from_parts(12_215_603, 0) - // Standard Error: 0 - .saturating_add(Weight::from_parts(1_440, 0).saturating_mul(n.into())) + // Minimum execution time: 1_656_000 picoseconds. + Weight::from_parts(4_821_621, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_492, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048321]`. fn seal_sr25519_verify(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 42_270_000 picoseconds. - Weight::from_parts(93_835_987, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(5_026, 0).saturating_mul(n.into())) + // Minimum execution time: 43_703_000 picoseconds. + Weight::from_parts(87_853_224, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(4_768, 0).saturating_mul(n.into())) } fn ecdsa_recover() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 45_951_000 picoseconds. - Weight::from_parts(46_894_000, 0) + // Minimum execution time: 45_721_000 picoseconds. + Weight::from_parts(46_364_000, 0) } fn bn128_add() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 14_272_000 picoseconds. - Weight::from_parts(15_204_000, 0) + // Minimum execution time: 14_825_000 picoseconds. + Weight::from_parts(15_868_000, 0) } fn bn128_mul() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 980_350_000 picoseconds. - Weight::from_parts(988_695_000, 0) + // Minimum execution time: 995_239_000 picoseconds. + Weight::from_parts(999_139_000, 0) } /// The range of component `n` is `[0, 20]`. fn bn128_pairing(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 760_000 picoseconds. - Weight::from_parts(4_873_448_313, 0) - // Standard Error: 10_617_668 - .saturating_add(Weight::from_parts(5_964_183_373, 0).saturating_mul(n.into())) + // Minimum execution time: 878_000 picoseconds. + Weight::from_parts(5_030_299_123, 0) + // Standard Error: 10_919_976 + .saturating_add(Weight::from_parts(6_054_223_916, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1200]`. fn blake2f(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 914_000 picoseconds. - Weight::from_parts(1_152_510, 0) + // Minimum execution time: 935_000 picoseconds. + Weight::from_parts(1_220_086, 0) // Standard Error: 10 - .saturating_add(Weight::from_parts(28_870, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(29_448, 0).saturating_mul(n.into())) } fn seal_ecdsa_to_eth_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_862_000 picoseconds. - Weight::from_parts(13_004_000, 0) + // Minimum execution time: 12_803_000 picoseconds. + Weight::from_parts(12_970_000, 0) } /// Storage: `Revive::CodeInfoOf` (r:2 w:2) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) @@ -1237,47 +1243,47 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 1]`. fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `391 + r * (468 ±0)` - // Estimated: `6331 + r * (2162 ±0)` - // Minimum execution time: 14_987_000 picoseconds. - Weight::from_parts(15_935_167, 6331) - // Standard Error: 52_524 - .saturating_add(Weight::from_parts(45_530_232, 0).saturating_mul(r.into())) + // Measured: `391 + r * (401 ±0)` + // Estimated: `6331 + r * (2129 ±0)` + // Minimum execution time: 14_932_000 picoseconds. + Weight::from_parts(15_917_336, 6331) + // Standard Error: 70_380 + .saturating_add(Weight::from_parts(48_772_363, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2162).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2129).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn evm_opcode(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_206_000 picoseconds. - Weight::from_parts(1_895_352, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(6_177, 0).saturating_mul(r.into())) + // Minimum execution time: 1_174_000 picoseconds. + Weight::from_parts(1_193_820, 0) + // Standard Error: 72 + .saturating_add(Weight::from_parts(7_757, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_772_000 picoseconds. - Weight::from_parts(53_405_104, 0) - // Standard Error: 346 - .saturating_add(Weight::from_parts(125_622, 0).saturating_mul(r.into())) + // Minimum execution time: 13_398_000 picoseconds. + Weight::from_parts(54_093_845, 0) + // Standard Error: 448 + .saturating_add(Weight::from_parts(145_701, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr_empty_loop(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_147_000 picoseconds. - Weight::from_parts(1_883_710, 0) - // Standard Error: 47 - .saturating_add(Weight::from_parts(71_984, 0).saturating_mul(r.into())) + // Minimum execution time: 3_321_000 picoseconds. + Weight::from_parts(4_114_920, 0) + // Standard Error: 49 + .saturating_add(Weight::from_parts(71_850, 0).saturating_mul(r.into())) } /// Storage: `Revive::PristineCode` (r:1 w:0) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -1286,10 +1292,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `457 + n * (1 ±0)` // Estimated: `3922 + n * (1 ±0)` - // Minimum execution time: 14_211_000 picoseconds. - Weight::from_parts(13_786_057, 3922) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_062, 0).saturating_mul(n.into())) + // Minimum execution time: 14_071_000 picoseconds. + Weight::from_parts(13_669_837, 3922) + // Standard Error: 6 + .saturating_add(Weight::from_parts(866, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1301,8 +1307,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `316` // Estimated: `6256` - // Minimum execution time: 11_898_000 picoseconds. - Weight::from_parts(12_772_000, 6256) + // Minimum execution time: 11_950_000 picoseconds. + Weight::from_parts(12_604_000, 6256) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -1316,15 +1322,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `439` // Estimated: `6794` - // Minimum execution time: 62_964_000 picoseconds. - Weight::from_parts(64_865_000, 6794) + // Minimum execution time: 63_848_000 picoseconds. + Weight::from_parts(65_443_000, 6794) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } /// Storage: `Revive::BlockHash` (r:1 w:1) /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::InflightTransactions` (r:1 w:1) - /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) @@ -1335,23 +1341,25 @@ impl WeightInfo for SubstrateWeight { /// The range of component `p` is `[0, 1000]`. fn on_finalize(n: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + n * (1125 ±0) + p * (200 ±0)` - // Estimated: `3872 + n * (483 ±11) + p * (71 ±2)` - // Minimum execution time: 12_000_000 picoseconds. - Weight::from_parts(12_000_000, 3872) - // Standard Error: 67_601 - .saturating_add(Weight::from_parts(6_463_546, 0).saturating_mul(n.into())) - // Standard Error: 13_509 - .saturating_add(Weight::from_parts(452_529, 0).saturating_mul(p.into())) + // Measured: `3685 + n * (60 ±0) + p * (2 ±0)` + // Estimated: `6815 + n * (62 ±0) + p * (2 ±0)` + // Minimum execution time: 27_174_000 picoseconds. + Weight::from_parts(63_904_853, 6815) + // Standard Error: 3_877 + .saturating_add(Weight::from_parts(377_767, 0).saturating_mul(n.into())) + // Standard Error: 776 + .saturating_add(Weight::from_parts(8_806, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 483).saturating_mul(n.into())) - .saturating_add(Weight::from_parts(0, 71).saturating_mul(p.into())) + .saturating_add(Weight::from_parts(0, 62).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2).saturating_mul(p.into())) } + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// Storage: `Revive::BlockHash` (r:1 w:1) /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::InflightTransactions` (r:1 w:1) - /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) @@ -1359,19 +1367,23 @@ impl WeightInfo for SubstrateWeight { /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `e` is `[0, 100]`. - fn on_finalize_per_event(e: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `631 + e * (56 ±0)` - // Estimated: `2423 + e * (70 ±1)` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(13_249_502, 2423) - // Standard Error: 6_871 - .saturating_add(Weight::from_parts(1_198_945, 0).saturating_mul(e.into())) - .saturating_add(T::DbWeight::get().reads(3_u64)) + fn on_finalize_per_event(_e: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1377` + // Estimated: `4842` + // Minimum execution time: 44_047_000 picoseconds. + Weight::from_parts(46_397_297, 4842) + .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 70).saturating_mul(e.into())) } - + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `Revive::BlockHash` (r:1 w:1) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Timestamp::Now` (r:1 w:0) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) @@ -1379,15 +1391,14 @@ impl WeightInfo for SubstrateWeight { /// The range of component `d` is `[0, 16384]`. fn on_finalize_per_event_data(d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `631 + d * (1 ±0)` - // Estimated: `2423 + d * (1 ±0)` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(13_249_502, 2423) - // Standard Error: 42 - .saturating_add(Weight::from_parts(3_336, 0).saturating_mul(d.into())) - .saturating_add(T::DbWeight::get().reads(3_u64)) + // Measured: `1377` + // Estimated: `4842` + // Minimum execution time: 44_057_000 picoseconds. + Weight::from_parts(45_847_456, 4842) + // Standard Error: 6 + .saturating_add(Weight::from_parts(17, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 1).saturating_mul(d.into())) } } @@ -1399,8 +1410,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `147` // Estimated: `1632` - // Minimum execution time: 3_103_000 picoseconds. - Weight::from_parts(3_288_000, 1632) + // Minimum execution time: 3_210_000 picoseconds. + Weight::from_parts(3_331_000, 1632) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -1410,10 +1421,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `458 + k * (69 ±0)` // Estimated: `448 + k * (70 ±0)` - // Minimum execution time: 14_393_000 picoseconds. - Weight::from_parts(14_689_000, 448) - // Standard Error: 1_032 - .saturating_add(Weight::from_parts(1_205_681, 0).saturating_mul(k.into())) + // Minimum execution time: 14_886_000 picoseconds. + Weight::from_parts(15_123_000, 448) + // Standard Error: 2_243 + .saturating_add(Weight::from_parts(1_272_153, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -1437,10 +1448,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1172 + c * (1 ±0)` // Estimated: `7107 + c * (1 ±0)` - // Minimum execution time: 85_415_000 picoseconds. - Weight::from_parts(120_226_734, 7107) - // Standard Error: 10 - .saturating_add(Weight::from_parts(1_539, 0).saturating_mul(c.into())) + // Minimum execution time: 88_436_000 picoseconds. + Weight::from_parts(126_734_069, 7107) + // Standard Error: 11 + .saturating_add(Weight::from_parts(1_694, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -1458,12 +1469,14 @@ impl WeightInfo for () { /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// The range of component `c` is `[1, 10240]`. - fn call_with_evm_code_per_byte(_c: u32, ) -> Weight { + fn call_with_evm_code_per_byte(c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1112` // Estimated: `7051` - // Minimum execution time: 80_503_000 picoseconds. - Weight::from_parts(84_811_467, 7051) + // Minimum execution time: 83_193_000 picoseconds. + Weight::from_parts(87_821_931, 7051) + // Standard Error: 33 + .saturating_add(Weight::from_parts(65, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1484,8 +1497,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `4516` // Estimated: `10456` - // Minimum execution time: 123_461_000 picoseconds. - Weight::from_parts(128_775_940, 10456) + // Minimum execution time: 126_074_000 picoseconds. + Weight::from_parts(131_886_612, 10456) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1509,12 +1522,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6811` - // Minimum execution time: 749_503_000 picoseconds. - Weight::from_parts(59_829_896, 6811) - // Standard Error: 35 - .saturating_add(Weight::from_parts(20_233, 0).saturating_mul(c.into())) - // Standard Error: 27 - .saturating_add(Weight::from_parts(5_057, 0).saturating_mul(i.into())) + // Minimum execution time: 760_383_000 picoseconds. + Weight::from_parts(14_368_942, 6811) + // Standard Error: 37 + .saturating_add(Weight::from_parts(21_385, 0).saturating_mul(c.into())) + // Standard Error: 28 + .saturating_add(Weight::from_parts(5_571, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -1530,6 +1543,8 @@ impl WeightInfo for () { /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:0 w:1) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `c` is `[0, 102400]`. @@ -1539,17 +1554,17 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6821 + d * (2475 ±0)` - // Minimum execution time: 277_185_000 picoseconds. - Weight::from_parts(147_220_906, 6821) - // Standard Error: 29 - .saturating_add(Weight::from_parts(15_202, 0).saturating_mul(c.into())) - // Standard Error: 23 - .saturating_add(Weight::from_parts(642, 0).saturating_mul(i.into())) - // Standard Error: 1_934_039 - .saturating_add(Weight::from_parts(34_192_978, 0).saturating_mul(d.into())) - .saturating_add(RocksDbWeight::get().reads(7_u64)) + // Minimum execution time: 297_538_000 picoseconds. + Weight::from_parts(206_359_544, 6821) + // Standard Error: 22 + .saturating_add(Weight::from_parts(15_660, 0).saturating_mul(c.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(450, 0).saturating_mul(i.into())) + // Standard Error: 1_474_523 + .saturating_add(Weight::from_parts(39_823_491, 0).saturating_mul(d.into())) + .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(d.into()))) - .saturating_add(RocksDbWeight::get().writes(6_u64)) + .saturating_add(RocksDbWeight::get().writes(7_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(d.into()))) .saturating_add(Weight::from_parts(0, 2475).saturating_mul(d.into())) } @@ -1570,12 +1585,12 @@ impl WeightInfo for () { /// The range of component `i` is `[0, 131072]`. fn instantiate(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1610` - // Estimated: `5060` - // Minimum execution time: 168_670_000 picoseconds. - Weight::from_parts(175_522_603, 5060) - // Standard Error: 12 - .saturating_add(Weight::from_parts(4_260, 0).saturating_mul(i.into())) + // Measured: `1623` + // Estimated: `5077` + // Minimum execution time: 176_565_000 picoseconds. + Weight::from_parts(181_735_147, 5077) + // Standard Error: 10 + .saturating_add(Weight::from_parts(4_287, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -1595,8 +1610,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734` - // Minimum execution time: 86_819_000 picoseconds. - Weight::from_parts(89_536_000, 7734) + // Minimum execution time: 90_352_000 picoseconds. + Weight::from_parts(93_883_000, 7734) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1612,18 +1627,20 @@ impl WeightInfo for () { /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `d` is `[0, 1]`. fn eth_call(d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734 + d * (2475 ±0)` - // Minimum execution time: 85_649_000 picoseconds. - Weight::from_parts(90_277_271, 7734) - // Standard Error: 333_872 - .saturating_add(Weight::from_parts(26_832_228, 0).saturating_mul(d.into())) - .saturating_add(RocksDbWeight::get().reads(7_u64)) + // Minimum execution time: 96_966_000 picoseconds. + Weight::from_parts(101_532_838, 7734) + // Standard Error: 485_092 + .saturating_add(Weight::from_parts(25_810_261, 0).saturating_mul(d.into())) + .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(d.into()))) - .saturating_add(RocksDbWeight::get().writes(2_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(d.into()))) .saturating_add(Weight::from_parts(0, 2475).saturating_mul(d.into())) } @@ -1638,10 +1655,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `303` // Estimated: `3768` - // Minimum execution time: 56_015_000 picoseconds. - Weight::from_parts(44_756_550, 3768) - // Standard Error: 17 - .saturating_add(Weight::from_parts(14_377, 0).saturating_mul(c.into())) + // Minimum execution time: 57_740_000 picoseconds. + Weight::from_parts(50_519_259, 3768) + // Standard Error: 19 + .saturating_add(Weight::from_parts(14_777, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1655,8 +1672,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `458` // Estimated: `3923` - // Minimum execution time: 51_807_000 picoseconds. - Weight::from_parts(53_562_000, 3923) + // Minimum execution time: 53_859_000 picoseconds. + Weight::from_parts(55_170_000, 3923) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1674,8 +1691,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `797` // Estimated: `6737` - // Minimum execution time: 65_431_000 picoseconds. - Weight::from_parts(66_763_000, 6737) + // Minimum execution time: 67_863_000 picoseconds. + Weight::from_parts(69_274_000, 6737) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -1687,8 +1704,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `510` // Estimated: `3975` - // Minimum execution time: 54_271_000 picoseconds. - Weight::from_parts(55_618_000, 3975) + // Minimum execution time: 56_675_000 picoseconds. + Weight::from_parts(57_728_000, 3975) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1700,8 +1717,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `93` // Estimated: `3558` - // Minimum execution time: 38_990_000 picoseconds. - Weight::from_parts(39_656_000, 3558) + // Minimum execution time: 40_236_000 picoseconds. + Weight::from_parts(41_542_000, 3558) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1713,8 +1730,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 13_086_000 picoseconds. - Weight::from_parts(13_681_000, 3610) + // Minimum execution time: 13_229_000 picoseconds. + Weight::from_parts(13_841_000, 3610) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// The range of component `r` is `[0, 1600]`. @@ -1722,24 +1739,24 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_423_000 picoseconds. - Weight::from_parts(9_149_999, 0) - // Standard Error: 227 - .saturating_add(Weight::from_parts(180_894, 0).saturating_mul(r.into())) + // Minimum execution time: 8_024_000 picoseconds. + Weight::from_parts(9_239_929, 0) + // Standard Error: 289 + .saturating_add(Weight::from_parts(175_656, 0).saturating_mul(r.into())) } fn seal_caller() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 294_000 picoseconds. - Weight::from_parts(330_000, 0) + // Minimum execution time: 326_000 picoseconds. + Weight::from_parts(360_000, 0) } fn seal_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 270_000 picoseconds. - Weight::from_parts(317_000, 0) + // Minimum execution time: 319_000 picoseconds. + Weight::from_parts(348_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -1747,8 +1764,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `567` // Estimated: `4032` - // Minimum execution time: 7_773_000 picoseconds. - Weight::from_parts(8_282_000, 4032) + // Minimum execution time: 8_005_000 picoseconds. + Weight::from_parts(8_473_000, 4032) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) @@ -1757,16 +1774,16 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `403` // Estimated: `3868` - // Minimum execution time: 9_567_000 picoseconds. - Weight::from_parts(9_975_000, 3868) + // Minimum execution time: 9_367_000 picoseconds. + Weight::from_parts(9_726_000, 3868) .saturating_add(RocksDbWeight::get().reads(1_u64)) } fn own_code_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `0` + // Measured: `366` // Estimated: `0` - // Minimum execution time: 252_000 picoseconds. - Weight::from_parts(301_000, 0) + // Minimum execution time: 6_717_000 picoseconds. + Weight::from_parts(7_168_000, 0) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) @@ -1776,51 +1793,51 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `475` // Estimated: `3940` - // Minimum execution time: 13_090_000 picoseconds. - Weight::from_parts(13_527_000, 3940) + // Minimum execution time: 12_765_000 picoseconds. + Weight::from_parts(13_443_000, 3940) .saturating_add(RocksDbWeight::get().reads(2_u64)) } fn caller_is_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 337_000 picoseconds. - Weight::from_parts(375_000, 0) + // Minimum execution time: 976_000 picoseconds. + Weight::from_parts(1_083_000, 0) } fn caller_is_root() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 258_000 picoseconds. - Weight::from_parts(300_000, 0) + // Minimum execution time: 930_000 picoseconds. + Weight::from_parts(1_078_000, 0) } fn seal_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 308_000 picoseconds. - Weight::from_parts(352_000, 0) + // Minimum execution time: 296_000 picoseconds. + Weight::from_parts(356_000, 0) } fn weight_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 687_000 picoseconds. - Weight::from_parts(776_000, 0) + // Minimum execution time: 924_000 picoseconds. + Weight::from_parts(1_041_000, 0) } fn seal_ref_time_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 247_000 picoseconds. - Weight::from_parts(278_000, 0) + // Minimum execution time: 281_000 picoseconds. + Weight::from_parts(317_000, 0) } fn seal_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `540` + // Measured: `469` // Estimated: `0` - // Minimum execution time: 12_447_000 picoseconds. - Weight::from_parts(13_433_000, 0) + // Minimum execution time: 12_323_000 picoseconds. + Weight::from_parts(12_690_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -1832,8 +1849,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `791` // Estimated: `4256` - // Minimum execution time: 18_806_000 picoseconds. - Weight::from_parts(19_217_000, 4256) + // Minimum execution time: 18_748_000 picoseconds. + Weight::from_parts(19_140_000, 4256) .saturating_add(RocksDbWeight::get().reads(3_u64)) } /// Storage: `Revive::ImmutableDataOf` (r:1 w:0) @@ -1843,10 +1860,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `271 + n * (1 ±0)` // Estimated: `3736 + n * (1 ±0)` - // Minimum execution time: 5_800_000 picoseconds. - Weight::from_parts(6_657_021, 3736) - // Standard Error: 6 - .saturating_add(Weight::from_parts(595, 0).saturating_mul(n.into())) + // Minimum execution time: 5_915_000 picoseconds. + Weight::from_parts(6_623_622, 3736) + // Standard Error: 5 + .saturating_add(Weight::from_parts(544, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1857,67 +1874,67 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_057_000 picoseconds. - Weight::from_parts(2_320_795, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(558, 0).saturating_mul(n.into())) + // Minimum execution time: 1_959_000 picoseconds. + Weight::from_parts(2_250_085, 0) + // Standard Error: 3 + .saturating_add(Weight::from_parts(564, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().writes(1_u64)) } fn seal_value_transferred() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 260_000 picoseconds. - Weight::from_parts(293_000, 0) + // Minimum execution time: 306_000 picoseconds. + Weight::from_parts(344_000, 0) } fn minimum_balance() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 233_000 picoseconds. - Weight::from_parts(291_000, 0) + // Minimum execution time: 1_222_000 picoseconds. + Weight::from_parts(1_306_000, 0) } fn seal_return_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 232_000 picoseconds. - Weight::from_parts(262_000, 0) + // Minimum execution time: 254_000 picoseconds. + Weight::from_parts(294_000, 0) } fn seal_call_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 234_000 picoseconds. - Weight::from_parts(273_000, 0) + // Minimum execution time: 262_000 picoseconds. + Weight::from_parts(300_000, 0) } fn seal_gas_limit() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 441_000 picoseconds. - Weight::from_parts(523_000, 0) + // Minimum execution time: 534_000 picoseconds. + Weight::from_parts(594_000, 0) } fn seal_gas_price() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 254_000 picoseconds. - Weight::from_parts(294_000, 0) + // Minimum execution time: 270_000 picoseconds. + Weight::from_parts(309_000, 0) } fn seal_base_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 229_000 picoseconds. - Weight::from_parts(269_000, 0) + // Minimum execution time: 273_000 picoseconds. + Weight::from_parts(311_000, 0) } fn seal_block_number() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 254_000 picoseconds. - Weight::from_parts(290_000, 0) + // Minimum execution time: 236_000 picoseconds. + Weight::from_parts(317_000, 0) } /// Storage: `Session::Validators` (r:1 w:0) /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -1925,58 +1942,60 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `141` // Estimated: `1626` - // Minimum execution time: 21_852_000 picoseconds. - Weight::from_parts(22_526_000, 1626) + // Minimum execution time: 22_010_000 picoseconds. + Weight::from_parts(22_637_000, 1626) .saturating_add(RocksDbWeight::get().reads(1_u64)) } + /// Storage: `Revive::BlockHash` (r:1 w:0) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) /// Storage: `System::BlockHash` (r:1 w:0) /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `Measured`) fn seal_block_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `30` - // Estimated: `3495` - // Minimum execution time: 3_600_000 picoseconds. - Weight::from_parts(3_830_000, 3495) - .saturating_add(RocksDbWeight::get().reads(1_u64)) + // Measured: `295` + // Estimated: `3760` + // Minimum execution time: 8_650_000 picoseconds. + Weight::from_parts(9_015_000, 3760) + .saturating_add(RocksDbWeight::get().reads(2_u64)) } fn seal_now() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 239_000 picoseconds. - Weight::from_parts(276_000, 0) + // Minimum execution time: 267_000 picoseconds. + Weight::from_parts(327_000, 0) } fn seal_weight_to_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_595_000 picoseconds. - Weight::from_parts(1_665_000, 0) + // Minimum execution time: 1_553_000 picoseconds. + Weight::from_parts(1_725_000, 0) } /// The range of component `n` is `[0, 1048572]`. fn seal_copy_to_contract(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 402_000 picoseconds. - Weight::from_parts(496_964, 0) + // Minimum execution time: 442_000 picoseconds. + Weight::from_parts(41_341, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(239, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(240, 0).saturating_mul(n.into())) } fn seal_call_data_load() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 250_000 picoseconds. - Weight::from_parts(289_000, 0) + // Minimum execution time: 264_000 picoseconds. + Weight::from_parts(309_000, 0) } /// The range of component `n` is `[0, 1048576]`. fn seal_call_data_copy(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 230_000 picoseconds. - Weight::from_parts(255_000, 0) + // Minimum execution time: 247_000 picoseconds. + Weight::from_parts(270_000, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(151, 0).saturating_mul(n.into())) } @@ -1985,8 +2004,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 253_000 picoseconds. - Weight::from_parts(544_296, 0) + // Minimum execution time: 304_000 picoseconds. + Weight::from_parts(514_465, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(237, 0).saturating_mul(n.into())) } @@ -2009,17 +2028,17 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 1]`. fn seal_terminate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `583 + r * (402 ±0)` - // Estimated: `4048 + r * (2225 ±0)` - // Minimum execution time: 16_727_000 picoseconds. - Weight::from_parts(17_739_285, 4048) - // Standard Error: 59_932 - .saturating_add(Weight::from_parts(44_553_014, 0).saturating_mul(r.into())) + // Measured: `583 + r * (368 ±0)` + // Estimated: `4048 + r * (2208 ±0)` + // Minimum execution time: 16_705_000 picoseconds. + Weight::from_parts(17_856_526, 4048) + // Standard Error: 65_022 + .saturating_add(Weight::from_parts(46_778_473, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2225).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2208).saturating_mul(r.into())) } /// The range of component `t` is `[0, 4]`. /// The range of component `n` is `[0, 416]`. @@ -2027,12 +2046,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_226_000 picoseconds. - Weight::from_parts(4_252_357, 0) - // Standard Error: 3_401 - .saturating_add(Weight::from_parts(233_040, 0).saturating_mul(t.into())) - // Standard Error: 37 - .saturating_add(Weight::from_parts(1_172, 0).saturating_mul(n.into())) + // Minimum execution time: 4_560_000 picoseconds. + Weight::from_parts(4_530_282, 0) + // Standard Error: 3_946 + .saturating_add(Weight::from_parts(250_732, 0).saturating_mul(t.into())) + // Standard Error: 43 + .saturating_add(Weight::from_parts(1_229, 0).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -2040,8 +2059,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 6_909_000 picoseconds. - Weight::from_parts(7_499_000, 648) + // Minimum execution time: 7_204_000 picoseconds. + Weight::from_parts(7_628_000, 648) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -2050,8 +2069,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 41_173_000 picoseconds. - Weight::from_parts(42_303_000, 10658) + // Minimum execution time: 41_838_000 picoseconds. + Weight::from_parts(42_977_000, 10658) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -2060,8 +2079,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 8_428_000 picoseconds. - Weight::from_parts(8_817_000, 648) + // Minimum execution time: 8_403_000 picoseconds. + Weight::from_parts(8_907_000, 648) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2071,8 +2090,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 43_627_000 picoseconds. - Weight::from_parts(44_777_000, 10658) + // Minimum execution time: 44_050_000 picoseconds. + Weight::from_parts(45_950_000, 10658) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2084,12 +2103,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + o * (1 ±0)` // Estimated: `247 + o * (1 ±0)` - // Minimum execution time: 8_934_000 picoseconds. - Weight::from_parts(9_589_880, 247) - // Standard Error: 65 - .saturating_add(Weight::from_parts(667, 0).saturating_mul(n.into())) - // Standard Error: 65 - .saturating_add(Weight::from_parts(821, 0).saturating_mul(o.into())) + // Minimum execution time: 9_101_000 picoseconds. + Weight::from_parts(9_596_435, 247) + // Standard Error: 49 + .saturating_add(Weight::from_parts(700, 0).saturating_mul(n.into())) + // Standard Error: 49 + .saturating_add(Weight::from_parts(702, 0).saturating_mul(o.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(o.into())) @@ -2101,10 +2120,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_527_000 picoseconds. - Weight::from_parts(9_507_817, 247) - // Standard Error: 73 - .saturating_add(Weight::from_parts(860, 0).saturating_mul(n.into())) + // Minimum execution time: 8_637_000 picoseconds. + Weight::from_parts(9_578_824, 247) + // Standard Error: 97 + .saturating_add(Weight::from_parts(735, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -2116,10 +2135,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_076_000 picoseconds. - Weight::from_parts(9_106_693, 247) - // Standard Error: 73 - .saturating_add(Weight::from_parts(1_668, 0).saturating_mul(n.into())) + // Minimum execution time: 8_202_000 picoseconds. + Weight::from_parts(9_192_652, 247) + // Standard Error: 90 + .saturating_add(Weight::from_parts(1_535, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -2130,10 +2149,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 7_571_000 picoseconds. - Weight::from_parts(8_454_639, 247) - // Standard Error: 69 - .saturating_add(Weight::from_parts(888, 0).saturating_mul(n.into())) + // Minimum execution time: 7_868_000 picoseconds. + Weight::from_parts(8_576_110, 247) + // Standard Error: 64 + .saturating_add(Weight::from_parts(1_126, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -2144,10 +2163,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 9_140_000 picoseconds. - Weight::from_parts(10_132_276, 247) - // Standard Error: 70 - .saturating_add(Weight::from_parts(1_866, 0).saturating_mul(n.into())) + // Minimum execution time: 9_377_000 picoseconds. + Weight::from_parts(10_379_997, 247) + // Standard Error: 100 + .saturating_add(Weight::from_parts(1_590, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -2156,36 +2175,36 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_655_000 picoseconds. - Weight::from_parts(1_744_000, 0) + // Minimum execution time: 1_606_000 picoseconds. + Weight::from_parts(1_741_000, 0) } fn set_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_987_000 picoseconds. - Weight::from_parts(2_135_000, 0) + // Minimum execution time: 1_980_000 picoseconds. + Weight::from_parts(2_095_000, 0) } fn get_transient_storage_empty() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_641_000 picoseconds. - Weight::from_parts(1_751_000, 0) + // Minimum execution time: 1_636_000 picoseconds. + Weight::from_parts(1_701_000, 0) } fn get_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_732_000 picoseconds. - Weight::from_parts(1_891_000, 0) + // Minimum execution time: 1_749_000 picoseconds. + Weight::from_parts(1_847_000, 0) } fn rollback_transient_storage() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_237_000 picoseconds. - Weight::from_parts(1_378_000, 0) + // Minimum execution time: 1_201_000 picoseconds. + Weight::from_parts(1_395_000, 0) } /// The range of component `n` is `[0, 416]`. /// The range of component `o` is `[0, 416]`. @@ -2193,50 +2212,50 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_283_000 picoseconds. - Weight::from_parts(2_636_514, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(296, 0).saturating_mul(n.into())) - // Standard Error: 19 - .saturating_add(Weight::from_parts(374, 0).saturating_mul(o.into())) + // Minimum execution time: 2_296_000 picoseconds. + Weight::from_parts(2_693_939, 0) + // Standard Error: 23 + .saturating_add(Weight::from_parts(146, 0).saturating_mul(n.into())) + // Standard Error: 23 + .saturating_add(Weight::from_parts(197, 0).saturating_mul(o.into())) } /// The range of component `n` is `[0, 416]`. fn seal_clear_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_171_000 picoseconds. - Weight::from_parts(2_555_844, 0) - // Standard Error: 23 - .saturating_add(Weight::from_parts(468, 0).saturating_mul(n.into())) + // Minimum execution time: 2_105_000 picoseconds. + Weight::from_parts(2_584_360, 0) + // Standard Error: 27 + .saturating_add(Weight::from_parts(316, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_get_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_985_000 picoseconds. - Weight::from_parts(2_277_401, 0) - // Standard Error: 21 - .saturating_add(Weight::from_parts(394, 0).saturating_mul(n.into())) + // Minimum execution time: 2_104_000 picoseconds. + Weight::from_parts(2_370_667, 0) + // Standard Error: 18 + .saturating_add(Weight::from_parts(362, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_contains_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_784_000 picoseconds. - Weight::from_parts(2_034_472, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(214, 0).saturating_mul(n.into())) + // Minimum execution time: 1_872_000 picoseconds. + Weight::from_parts(2_142_743, 0) + // Standard Error: 18 + .saturating_add(Weight::from_parts(175, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_take_transient_storage(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_653_000 picoseconds. - Weight::from_parts(2_929_498, 0) + // Minimum execution time: 2_780_000 picoseconds. + Weight::from_parts(3_060_959, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -2253,14 +2272,14 @@ impl WeightInfo for () { /// The range of component `i` is `[0, 1048576]`. fn seal_call(t: u32, d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1925` - // Estimated: `5390` - // Minimum execution time: 88_292_000 picoseconds. - Weight::from_parts(67_934_136, 5390) - // Standard Error: 161_519 - .saturating_add(Weight::from_parts(19_069_368, 0).saturating_mul(t.into())) - // Standard Error: 161_519 - .saturating_add(Weight::from_parts(25_783_515, 0).saturating_mul(d.into())) + // Measured: `1982` + // Estimated: `5447` + // Minimum execution time: 91_620_000 picoseconds. + Weight::from_parts(71_144_460, 5447) + // Standard Error: 190_178 + .saturating_add(Weight::from_parts(19_343_545, 0).saturating_mul(t.into())) + // Standard Error: 190_178 + .saturating_add(Weight::from_parts(25_751_547, 0).saturating_mul(d.into())) // Standard Error: 0 .saturating_add(Weight::from_parts(4, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) @@ -2276,16 +2295,16 @@ impl WeightInfo for () { fn seal_call_precompile(d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `366 + d * (212 ±0)` - // Estimated: `2021 + d * (2021 ±0)` - // Minimum execution time: 24_082_000 picoseconds. - Weight::from_parts(11_635_002, 2021) - // Standard Error: 32_873 - .saturating_add(Weight::from_parts(13_461_671, 0).saturating_mul(d.into())) + // Estimated: `2021 + d * (2022 ±0)` + // Minimum execution time: 24_855_000 picoseconds. + Weight::from_parts(11_891_687, 2021) + // Standard Error: 56_218 + .saturating_add(Weight::from_parts(14_087_455, 0).saturating_mul(d.into())) // Standard Error: 0 - .saturating_add(Weight::from_parts(395, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(396, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(d.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(d.into()))) - .saturating_add(Weight::from_parts(0, 2021).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(0, 2022).saturating_mul(d.into())) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) @@ -2297,8 +2316,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1363` // Estimated: `4828` - // Minimum execution time: 31_965_000 picoseconds. - Weight::from_parts(33_059_000, 4828) + // Minimum execution time: 32_172_000 picoseconds. + Weight::from_parts(33_534_000, 4828) .saturating_add(RocksDbWeight::get().reads(3_u64)) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) @@ -2314,138 +2333,136 @@ impl WeightInfo for () { /// The range of component `i` is `[0, 131072]`. fn seal_instantiate(t: u32, d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1413` - // Estimated: `4857 + d * (28 ±1) + t * (28 ±1)` - // Minimum execution time: 150_124_000 picoseconds. - Weight::from_parts(100_922_263, 4857) - // Standard Error: 553_691 - .saturating_add(Weight::from_parts(21_824_333, 0).saturating_mul(t.into())) - // Standard Error: 553_691 - .saturating_add(Weight::from_parts(30_090_103, 0).saturating_mul(d.into())) - // Standard Error: 6 - .saturating_add(Weight::from_parts(4_031, 0).saturating_mul(i.into())) + // Measured: `1394` + // Estimated: `4860` + // Minimum execution time: 152_004_000 picoseconds. + Weight::from_parts(108_663_174, 4860) + // Standard Error: 504_319 + .saturating_add(Weight::from_parts(18_594_769, 0).saturating_mul(t.into())) + // Standard Error: 504_319 + .saturating_add(Weight::from_parts(30_804_841, 0).saturating_mul(d.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(4_039, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 28).saturating_mul(d.into())) - .saturating_add(Weight::from_parts(0, 28).saturating_mul(t.into())) } /// The range of component `n` is `[0, 1048576]`. fn sha2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_198_000 picoseconds. - Weight::from_parts(5_902_477, 0) + // Minimum execution time: 1_234_000 picoseconds. + Weight::from_parts(11_952_857, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_301, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_283, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn identity(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 710_000 picoseconds. - Weight::from_parts(583_657, 0) + // Minimum execution time: 734_000 picoseconds. + Weight::from_parts(701_255, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(148, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(149, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn ripemd_160(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_145_000 picoseconds. - Weight::from_parts(5_218_490, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_770, 0).saturating_mul(n.into())) + // Minimum execution time: 1_223_000 picoseconds. + Weight::from_parts(2_447_915, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(3_789, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_keccak_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_133_000 picoseconds. - Weight::from_parts(12_018_626, 0) + // Minimum execution time: 1_113_000 picoseconds. + Weight::from_parts(1_182_000, 0) // Standard Error: 1 - .saturating_add(Weight::from_parts(3_591, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_677, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn hash_blake2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_594_000 picoseconds. - Weight::from_parts(16_080_940, 0) - // Standard Error: 0 - .saturating_add(Weight::from_parts(1_437, 0).saturating_mul(n.into())) + // Minimum execution time: 1_658_000 picoseconds. + Weight::from_parts(1_723_000, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_521, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn hash_blake2_128(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_493_000 picoseconds. - Weight::from_parts(12_215_603, 0) - // Standard Error: 0 - .saturating_add(Weight::from_parts(1_440, 0).saturating_mul(n.into())) + // Minimum execution time: 1_656_000 picoseconds. + Weight::from_parts(4_821_621, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(1_492, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048321]`. fn seal_sr25519_verify(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 42_270_000 picoseconds. - Weight::from_parts(93_835_987, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(5_026, 0).saturating_mul(n.into())) + // Minimum execution time: 43_703_000 picoseconds. + Weight::from_parts(87_853_224, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(4_768, 0).saturating_mul(n.into())) } fn ecdsa_recover() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 45_951_000 picoseconds. - Weight::from_parts(46_894_000, 0) + // Minimum execution time: 45_721_000 picoseconds. + Weight::from_parts(46_364_000, 0) } fn bn128_add() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 14_272_000 picoseconds. - Weight::from_parts(15_204_000, 0) + // Minimum execution time: 14_825_000 picoseconds. + Weight::from_parts(15_868_000, 0) } fn bn128_mul() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 980_350_000 picoseconds. - Weight::from_parts(988_695_000, 0) + // Minimum execution time: 995_239_000 picoseconds. + Weight::from_parts(999_139_000, 0) } /// The range of component `n` is `[0, 20]`. fn bn128_pairing(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 760_000 picoseconds. - Weight::from_parts(4_873_448_313, 0) - // Standard Error: 10_617_668 - .saturating_add(Weight::from_parts(5_964_183_373, 0).saturating_mul(n.into())) + // Minimum execution time: 878_000 picoseconds. + Weight::from_parts(5_030_299_123, 0) + // Standard Error: 10_919_976 + .saturating_add(Weight::from_parts(6_054_223_916, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1200]`. fn blake2f(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 914_000 picoseconds. - Weight::from_parts(1_152_510, 0) + // Minimum execution time: 935_000 picoseconds. + Weight::from_parts(1_220_086, 0) // Standard Error: 10 - .saturating_add(Weight::from_parts(28_870, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(29_448, 0).saturating_mul(n.into())) } fn seal_ecdsa_to_eth_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_862_000 picoseconds. - Weight::from_parts(13_004_000, 0) + // Minimum execution time: 12_803_000 picoseconds. + Weight::from_parts(12_970_000, 0) } /// Storage: `Revive::CodeInfoOf` (r:2 w:2) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) @@ -2458,47 +2475,47 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 1]`. fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `391 + r * (468 ±0)` - // Estimated: `6331 + r * (2162 ±0)` - // Minimum execution time: 14_987_000 picoseconds. - Weight::from_parts(15_935_167, 6331) - // Standard Error: 52_524 - .saturating_add(Weight::from_parts(45_530_232, 0).saturating_mul(r.into())) + // Measured: `391 + r * (401 ±0)` + // Estimated: `6331 + r * (2129 ±0)` + // Minimum execution time: 14_932_000 picoseconds. + Weight::from_parts(15_917_336, 6331) + // Standard Error: 70_380 + .saturating_add(Weight::from_parts(48_772_363, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2162).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2129).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn evm_opcode(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_206_000 picoseconds. - Weight::from_parts(1_895_352, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(6_177, 0).saturating_mul(r.into())) + // Minimum execution time: 1_174_000 picoseconds. + Weight::from_parts(1_193_820, 0) + // Standard Error: 72 + .saturating_add(Weight::from_parts(7_757, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_772_000 picoseconds. - Weight::from_parts(53_405_104, 0) - // Standard Error: 346 - .saturating_add(Weight::from_parts(125_622, 0).saturating_mul(r.into())) + // Minimum execution time: 13_398_000 picoseconds. + Weight::from_parts(54_093_845, 0) + // Standard Error: 448 + .saturating_add(Weight::from_parts(145_701, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr_empty_loop(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_147_000 picoseconds. - Weight::from_parts(1_883_710, 0) - // Standard Error: 47 - .saturating_add(Weight::from_parts(71_984, 0).saturating_mul(r.into())) + // Minimum execution time: 3_321_000 picoseconds. + Weight::from_parts(4_114_920, 0) + // Standard Error: 49 + .saturating_add(Weight::from_parts(71_850, 0).saturating_mul(r.into())) } /// Storage: `Revive::PristineCode` (r:1 w:0) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -2507,10 +2524,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `457 + n * (1 ±0)` // Estimated: `3922 + n * (1 ±0)` - // Minimum execution time: 14_211_000 picoseconds. - Weight::from_parts(13_786_057, 3922) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_062, 0).saturating_mul(n.into())) + // Minimum execution time: 14_071_000 picoseconds. + Weight::from_parts(13_669_837, 3922) + // Standard Error: 6 + .saturating_add(Weight::from_parts(866, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -2522,8 +2539,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `316` // Estimated: `6256` - // Minimum execution time: 11_898_000 picoseconds. - Weight::from_parts(12_772_000, 6256) + // Minimum execution time: 11_950_000 picoseconds. + Weight::from_parts(12_604_000, 6256) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -2537,15 +2554,15 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `439` // Estimated: `6794` - // Minimum execution time: 62_964_000 picoseconds. - Weight::from_parts(64_865_000, 6794) + // Minimum execution time: 63_848_000 picoseconds. + Weight::from_parts(65_443_000, 6794) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } /// Storage: `Revive::BlockHash` (r:1 w:1) /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::InflightTransactions` (r:1 w:1) - /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) @@ -2556,23 +2573,25 @@ impl WeightInfo for () { /// The range of component `p` is `[0, 1000]`. fn on_finalize(n: u32, p: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `0 + n * (1125 ±0) + p * (200 ±0)` - // Estimated: `3872 + n * (483 ±11) + p * (71 ±2)` - // Minimum execution time: 12_000_000 picoseconds. - Weight::from_parts(12_000_000, 3872) - // Standard Error: 67_601 - .saturating_add(Weight::from_parts(6_463_546, 0).saturating_mul(n.into())) - // Standard Error: 13_509 - .saturating_add(Weight::from_parts(452_529, 0).saturating_mul(p.into())) + // Measured: `3685 + n * (60 ±0) + p * (2 ±0)` + // Estimated: `6815 + n * (62 ±0) + p * (2 ±0)` + // Minimum execution time: 27_174_000 picoseconds. + Weight::from_parts(63_904_853, 6815) + // Standard Error: 3_877 + .saturating_add(Weight::from_parts(377_767, 0).saturating_mul(n.into())) + // Standard Error: 776 + .saturating_add(Weight::from_parts(8_806, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 483).saturating_mul(n.into())) - .saturating_add(Weight::from_parts(0, 71).saturating_mul(p.into())) + .saturating_add(Weight::from_parts(0, 62).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2).saturating_mul(p.into())) } + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// Storage: `Revive::BlockHash` (r:1 w:1) /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::InflightTransactions` (r:1 w:1) - /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) @@ -2580,19 +2599,23 @@ impl WeightInfo for () { /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `e` is `[0, 100]`. - fn on_finalize_per_event(e: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `631 + e * (56 ±0)` - // Estimated: `2423 + e * (70 ±1)` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(13_249_502, 2423) - // Standard Error: 6_871 - .saturating_add(Weight::from_parts(1_198_945, 0).saturating_mul(e.into())) - .saturating_add(RocksDbWeight::get().reads(3_u64)) + fn on_finalize_per_event(_e: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1377` + // Estimated: `4842` + // Minimum execution time: 44_047_000 picoseconds. + Weight::from_parts(46_397_297, 4842) + .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 70).saturating_mul(e.into())) } - + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `Revive::BlockHash` (r:1 w:1) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Timestamp::Now` (r:1 w:0) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) @@ -2600,14 +2623,13 @@ impl WeightInfo for () { /// The range of component `d` is `[0, 16384]`. fn on_finalize_per_event_data(d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `631 + d * (1 ±0)` - // Estimated: `2423 + d * (1 ±0)` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(13_249_502, 2423) - // Standard Error: 42 - .saturating_add(Weight::from_parts(3_336, 0).saturating_mul(d.into())) - .saturating_add(RocksDbWeight::get().reads(3_u64)) + // Measured: `1377` + // Estimated: `4842` + // Minimum execution time: 44_057_000 picoseconds. + Weight::from_parts(45_847_456, 4842) + // Standard Error: 6 + .saturating_add(Weight::from_parts(17, 0).saturating_mul(d.into())) + .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 1).saturating_mul(d.into())) } } From 83058e2070377122b2c613bf67773e0fe5ced014 Mon Sep 17 00:00:00 2001 From: "cmd[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 22 Sep 2025 14:04:33 +0000 Subject: [PATCH 164/273] Update from github-actions[bot] running command 'prdoc --audience node_dev --bump patch' --- prdoc/pr_9418.prdoc | 46 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 prdoc/pr_9418.prdoc diff --git a/prdoc/pr_9418.prdoc b/prdoc/pr_9418.prdoc new file mode 100644 index 0000000000000..5e96fafb5d49e --- /dev/null +++ b/prdoc/pr_9418.prdoc @@ -0,0 +1,46 @@ +title: 'frame/revive: ETH block storage' +doc: +- audience: Node Dev + description: |- + This PR constructs the Ethereum block in the following way: + - events (logs) are captured via an `environmental!` variable to reduce reliance on pallet storage + - A maximum of 512 events is allowed per transaction, with the size of an event capped to `self.ext.max_value_size()` + - A memory-efficient intermediate block builder is deserialized and serialized back to the pallet storage + - The intermediate block builder builds the transaction and event root hashes using low level RLP encoding primitives to achieve around 90% pallet storage optimization + - For more details, see https://github.com/paritytech/polkadot-sdk/pull/9764 + - A fixup is included for 7702 transaction rlp serialization/deserialization is added to ensure we can build the Ethereum block hash from live Ethereum blocks. + - The maximum `CALL_PARAMS_MAX_SIZE` is increased to 512 to 244 to accommodate the transaction added to the Eth call + + + This PR also includes benchmarking: + - https://github.com/paritytech/polkadot-sdk/pull/9496 + + ### Testing Done + - pallet storage testing and capturing of events / transactions are added at `tests/block_hash.rs` + - incremental block storage is tested in `evm/block_hash.rs`, which ensures RLP encoding / hash builder and identical hashes from live ethereum blocks + - tested via RPC work + + ### Next Steps + - https://github.com/paritytech/polkadot-sdk/pull/9512 + - https://github.com/paritytech/polkadot-sdk/pull/9616 + - https://github.com/paritytech/polkadot-sdk/pull/9452 + + + Builds upon https://github.com/paritytech/polkadot-sdk/pull/9413 + + Part of: https://github.com/paritytech/contract-issues/issues/139 +crates: +- name: pallet-revive + bump: patch +- name: sp-core + bump: patch +- name: asset-hub-westend-runtime + bump: patch +- name: penpal-runtime + bump: patch +- name: pallet-xcm + bump: patch +- name: pallet-assets + bump: patch +- name: pallet-revive-eth-rpc + bump: patch From fd049882214a7fe296af36392f8afa90387be3b3 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 22 Sep 2025 14:42:27 +0000 Subject: [PATCH 165/273] revive: Remove signed type from rlp codec Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/api/rlp_codec.rs | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/substrate/frame/revive/src/evm/api/rlp_codec.rs b/substrate/frame/revive/src/evm/api/rlp_codec.rs index dfe6d7e900826..0bee83f340165 100644 --- a/substrate/frame/revive/src/evm/api/rlp_codec.rs +++ b/substrate/frame/revive/src/evm/api/rlp_codec.rs @@ -96,31 +96,6 @@ impl TransactionSigned { s.out().to_vec() } - /// Encode the Ethereum transaction type into bytes. - /// - /// This is needed to encode the receipts. - pub fn signed_type(&self) -> Vec { - let mut s = rlp::RlpStream::new(); - - match &self { - TransactionSigned::Transaction4844Signed(tx) => { - s.append(&tx.transaction_4844_unsigned.r#type.value()); - }, - TransactionSigned::Transaction1559Signed(tx) => { - s.append(&tx.transaction_1559_unsigned.r#type.value()); - }, - TransactionSigned::Transaction2930Signed(tx) => { - s.append(&tx.transaction_2930_unsigned.r#type.value()); - }, - TransactionSigned::Transaction7702Signed(tx) => { - s.append(&tx.transaction_7702_unsigned.r#type.value()); - }, - TransactionSigned::TransactionLegacySigned(_) => {}, - }; - - s.out().to_vec() - } - /// Decode the Ethereum transaction from bytes. pub fn decode(data: &[u8]) -> Result { if data.len() < 1 { From 153bd7d8963428f7fa9093b578a68471aaed8bde Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 22 Sep 2025 14:48:43 +0000 Subject: [PATCH 166/273] revive: better docs Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 2 +- substrate/frame/revive/src/evm/block_storage.rs | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index e492f6b9a57fd..c18c43ff94c24 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -301,7 +301,7 @@ impl IncrementalHashBuilder { } } -/// Accumulate receipts into a stream of RLP encoded bytes. +/// Accumulate events (logs) into a stream of RLP encoded bytes. /// This is a very straight forward implementation that RLP encodes logs as they are added. /// /// The main goal is to generate the RLP-encoded representation of receipts diff --git a/substrate/frame/revive/src/evm/block_storage.rs b/substrate/frame/revive/src/evm/block_storage.rs index d2a522877926c..dec38f8268bc8 100644 --- a/substrate/frame/revive/src/evm/block_storage.rs +++ b/substrate/frame/revive/src/evm/block_storage.rs @@ -25,11 +25,8 @@ use environmental::environmental; /// The maximum number of block hashes to keep in the history. pub const BLOCK_HASH_COUNT: u32 = 256; -// The events emitted by this pallet while executing the current inflight transaction. -// -// The events are needed to reconstruct the receipt root hash, as they represent the -// logs emitted by the contract. The events are consumed when the transaction is -// completed. To minimize the amount of used memory, the events are RLP encoded directly. +// Accumulates the receipt's events (logs) for the current transaction +// that are needed to construct the final transaction receipt. environmental!(receipt: AccumulateReceipt); /// Capture the Ethereum log for the current transaction. From 71daa4ddcfa7ec06d33d8f535e17536cd3f1c182 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 22 Sep 2025 14:49:35 +0000 Subject: [PATCH 167/273] revive: Change to Identity for storage map Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 74d06e82dcf20..1ffbd9d6f1afe 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -559,7 +559,7 @@ pub mod pallet { /// /// The maximum number of elements stored is capped by the block hash count `BLOCK_HASH_COUNT`. #[pallet::storage] - pub(crate) type BlockHash = StorageMap<_, Twox64Concat, U256, H256, ValueQuery>; + pub(crate) type BlockHash = StorageMap<_, Identity, U256, H256, ValueQuery>; /// The details needed to reconstruct the receipt info offchain. /// From ea066ca2a908761f2e55027a59c5d35fa4431acf Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 22 Sep 2025 14:50:04 +0000 Subject: [PATCH 168/273] revive: Remove stale comment Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 1ffbd9d6f1afe..d8c765bb6b145 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -734,8 +734,6 @@ pub mod pallet { } fn on_finalize(block_number: BlockNumberFor) { - // If we cannot fetch the block author there's nothing we can do. - // Finding the block author traverses the digest logs. let block_author = Self::block_author(); // Weights are accounted for in the `on_initialize`. From 957418afea6859412cae46ab23c37fd2bc746b78 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 22 Sep 2025 14:51:38 +0000 Subject: [PATCH 169/273] revive/api: Make block author nonoptional Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index d8c765bb6b145..0455761ad065e 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -2156,7 +2156,7 @@ sp_api::decl_runtime_apis! { fn trace_call(tx: GenericTransaction, config: TracerType) -> Result; /// The address of the validator that produced the current block. - fn block_author() -> Option; + fn block_author() -> H160; /// Get the H160 address associated to this account id fn address(account_id: AccountId) -> H160; @@ -2202,8 +2202,8 @@ macro_rules! impl_runtime_apis_plus_revive { $crate::Pallet::::evm_balance(&address) } - fn block_author() -> Option<$crate::H160> { - Some($crate::Pallet::::block_author()) + fn block_author() -> $crate::H160 { + $crate::Pallet::::block_author() } fn block_gas_limit() -> $crate::U256 { From 410913cb47ff9fb9c80a4f173e3a4839a20cac6f Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Mon, 22 Sep 2025 16:45:18 +0200 Subject: [PATCH 170/273] revive/tests: update tests after weights changes --- substrate/frame/revive/src/tests/block_hash.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index b6f7afefc9b7d..23d91cf75e143 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -141,7 +141,7 @@ fn events_are_captured() { TransactionSigned::Transaction4844Signed(Default::default()).signed_payload(), ]; let expected_tx_root = Block::compute_trie_root(&expected_payloads); - const EXPECTED_GAS: u64 = 7735804; + const EXPECTED_GAS: u64 = 7203594; let logs = vec![AlloyLog::new_unchecked( contract.0.into(), From f91fa8ce2250205a9dc090038c75076c3d0b741d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 23 Sep 2025 10:43:47 +0000 Subject: [PATCH 171/273] revive: Change transactionSigned back into bytes Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/runtime.rs | 18 +++++++++--------- substrate/frame/revive/src/lib.rs | 16 ++++++---------- substrate/frame/revive/src/tests/block_hash.rs | 4 ++-- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index 3445ac8ea5af0..e8d04f425c01f 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -142,11 +142,8 @@ where fn check(self, lookup: &Lookup) -> Result { if !self.0.is_signed() { - if let Some(crate::Call::eth_transact { signed_transaction }) = - self.0.function.is_sub_type() - { - let checked = - E::try_into_checked_extrinsic(signed_transaction.clone(), self.encoded_size())?; + if let Some(crate::Call::eth_transact { payload }) = self.0.function.is_sub_type() { + let checked = E::try_into_checked_extrinsic(payload, self.encoded_size())?; return Ok(checked) }; } @@ -273,11 +270,9 @@ pub trait EthExtra { /// /// # Parameters /// - `payload`: The RLP-encoded Ethereum transaction. - /// - `gas_limit`: The gas limit for the extrinsic - /// - `storage_deposit_limit`: The storage deposit limit for the extrinsic, /// - `encoded_len`: The encoded length of the extrinsic. fn try_into_checked_extrinsic( - tx: TransactionSigned, + payload: &[u8], encoded_len: usize, ) -> Result< CheckedExtrinsic, CallOf, Self::Extension>, @@ -292,6 +287,11 @@ pub trait EthExtra { CallOf: From>, ::Hash: frame_support::traits::IsType, { + let tx = TransactionSigned::decode(&payload).map_err(|err| { + log::debug!(target: LOG_TARGET, "Failed to decode transaction: {err:?}"); + InvalidTransaction::Call + })?; + // Check transaction type and reject unsupported transaction types match &tx { crate::evm::api::TransactionSigned::Transaction1559Signed(_) | @@ -587,7 +587,7 @@ mod test { let signed_transaction = account.sign_transaction(tx.clone().try_into_unsigned().unwrap()); let call = RuntimeCall::Contracts(crate::Call::eth_transact { - signed_transaction: signed_transaction.clone(), + payload: signed_transaction.signed_payload().clone(), }); let encoded_len = call.encoded_size(); diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 0455761ad065e..c6b145eec5d86 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -50,7 +50,7 @@ use crate::{ block_storage, runtime::GAS_PRICE, CallTracer, GasEncoder, GenericTransaction, PrestateTracer, Trace, Tracer, TracerType, - TransactionSigned, TYPE_EIP1559, + TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Stack as ExecStack}, gas::GasMeter, @@ -884,8 +884,7 @@ pub mod pallet { /// /// # Parameters /// - /// * `signed_transaction`: The signed Ethereum transaction, represented as - /// [crate::evm::TransactionSigned], provided by the Ethereum wallet. + /// * `payload`: The encoded [`crate::evm::TransactionSigned`]. /// /// # Note /// @@ -896,10 +895,7 @@ pub mod pallet { #[allow(unused_variables)] #[pallet::call_index(0)] #[pallet::weight(Weight::MAX)] - pub fn eth_transact( - origin: OriginFor, - signed_transaction: TransactionSigned, - ) -> DispatchResultWithPostInfo { + pub fn eth_transact(origin: OriginFor, payload: Vec) -> DispatchResultWithPostInfo { Err(frame_system::Error::CallFiltered::.into()) } @@ -1613,7 +1609,7 @@ where // Since this is a dry run, we don't need to pass the signed transaction // payload. Instead, use a dummy value. The signed transaction // will be provided by the user when the tx is submitted. - transaction_encoded: encoded_dummy_payload, + transaction_encoded: encoded_dummy_payload.clone(), } .into(); (result, dispatch_call) @@ -1673,14 +1669,14 @@ where storage_deposit_limit, code, data, - transaction_encoded: encoded_dummy_payload, + transaction_encoded: encoded_dummy_payload.clone(), } .into(); (result, dispatch_call) }, }; - let eth_transact_call = crate::Call::::eth_transact { signed_transaction: dummy_signed }; + let eth_transact_call = crate::Call::::eth_transact { payload: encoded_dummy_payload }; let fee = tx_fee(eth_transact_call.into(), dispatch_call); let raw_gas = Self::evm_fee_to_gas(fee); let eth_gas = diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 23d91cf75e143..34b794ccd1061 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -18,11 +18,11 @@ //! The pallet-revive ETH block hash specific integration test suite. use crate::{ - evm::Block, + evm::{Block, TransactionSigned}, test_utils::{builder::Contract, deposit_limit, ALICE}, tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeOrigin, Test}, BalanceWithDust, Code, Config, EthBlock, EthBlockBuilderIR, EthereumBlock, - EthereumBlockBuilder, Pallet, ReceiptGasInfo, ReceiptInfoData, TransactionSigned, + EthereumBlockBuilder, Pallet, ReceiptGasInfo, ReceiptInfoData, }; use frame_support::traits::{fungible::Mutate, Hooks}; From 0e5f274153a0200b3b1553717e9b9eddb6f83deb Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 23 Sep 2025 11:40:40 +0000 Subject: [PATCH 172/273] frame: Ensure EVMOrigin for eth_call and eth_instantiate Signed-off-by: Alexandru Vasile --- .../frame/revive/dev-node/runtime/src/lib.rs | 1 + substrate/frame/revive/src/lib.rs | 21 ++++++++++++++++--- substrate/frame/revive/src/tests.rs | 1 + 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/dev-node/runtime/src/lib.rs b/substrate/frame/revive/dev-node/runtime/src/lib.rs index fcfc12afc66e7..e0f07afd9304d 100644 --- a/substrate/frame/revive/dev-node/runtime/src/lib.rs +++ b/substrate/frame/revive/dev-node/runtime/src/lib.rs @@ -328,6 +328,7 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; type UploadOrigin = EnsureSigned; type InstantiateOrigin = EnsureSigned; + type EVMOrigin = frame_system::EnsureNever; type Time = Timestamp; } diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index c6b145eec5d86..144bbeeec7b17 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -76,7 +76,7 @@ use frame_support::{ BoundedVec, RuntimeDebugNoBound, }; use frame_system::{ - ensure_signed, + ensure_signed, EnsureNever, pallet_prelude::{BlockNumberFor, OriginFor}, Pallet as System, }; @@ -254,6 +254,20 @@ pub mod pallet { #[pallet::no_default_bounds] type InstantiateOrigin: EnsureOrigin; + /// Origin allowed to call EVM-only dispatchables like `eth_call` and + /// `eth_instantiate_with_code`. + /// + /// This should be configured to prevent external extrinsics from calling these functions + /// directly, as they are intended to be called only through the EVM compatibility layer. + /// + /// # Note + /// + /// Setting this to `EnsureNever` will completely disable external access to these + /// functions. Setting this to a custom origin allows controlled access from specific + /// runtime contexts. + #[pallet::no_default_bounds] + type EVMOrigin: EnsureOrigin; + /// The amount of memory in bytes that parachain nodes a lot to the runtime. /// /// This is used in [`Pallet::integrity_test`] to make sure that the runtime has enough @@ -348,6 +362,7 @@ pub mod pallet { type AllowEVMBytecode = ConstBool; type UploadOrigin = EnsureSigned; type InstantiateOrigin = EnsureSigned; + type EVMOrigin = EnsureNever; type WeightInfo = (); type WeightPrice = Self; type RuntimeMemory = ConstU32<{ 128 * 1024 * 1024 }>; @@ -1082,7 +1097,7 @@ pub mod pallet { data: Vec, transaction_encoded: Vec, ) -> DispatchResultWithPostInfo { - ensure_signed(origin.clone())?; + T::EVMOrigin::ensure_origin(origin.clone())?; block_storage::with_ethereum_context(|| { let code_len = code.len() as u32; @@ -1139,7 +1154,7 @@ pub mod pallet { data: Vec, transaction_encoded: Vec, ) -> DispatchResultWithPostInfo { - ensure_signed(origin.clone())?; + T::EVMOrigin::ensure_origin(origin.clone())?; block_storage::with_ethereum_context(|| { let mut output = Self::bare_call( diff --git a/substrate/frame/revive/src/tests.rs b/substrate/frame/revive/src/tests.rs index bc47a2802f82a..563897172fb26 100644 --- a/substrate/frame/revive/src/tests.rs +++ b/substrate/frame/revive/src/tests.rs @@ -362,6 +362,7 @@ impl Config for Test { type AllowEVMBytecode = AllowEvmBytecode; type UploadOrigin = EnsureAccount; type InstantiateOrigin = EnsureAccount; + type EVMOrigin = frame_system::EnsureSigned; type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent; type ChainId = ChainId; type FindAuthor = Test; From 323189327511505a1302ee86bc4f1f5b20d02e4e Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 23 Sep 2025 12:16:12 +0000 Subject: [PATCH 173/273] revive: Add docs about transaction_encoded Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 144bbeeec7b17..d286254ea8bf0 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -76,9 +76,9 @@ use frame_support::{ BoundedVec, RuntimeDebugNoBound, }; use frame_system::{ - ensure_signed, EnsureNever, + ensure_signed, pallet_prelude::{BlockNumberFor, OriginFor}, - Pallet as System, + EnsureNever, Pallet as System, }; use pallet_transaction_payment::OnChargeTransaction; use scale_info::TypeInfo; @@ -1077,7 +1077,8 @@ pub mod pallet { /// * `salt`: Used for the address derivation. If `Some` is supplied then `CREATE2` /// semantics are used. If `None` then `CRATE1` is used. /// * `transaction_encoded`: The RLP encoding of the signed Ethereum transaction, - /// represented as [crate::evm::TransactionSigned], provided by the Ethereum wallet. + /// represented as [crate::evm::TransactionSigned], provided by the Ethereum wallet. This + /// is used for building the Ethereum transaction root. /// /// Calling this dispatchable ensures that the origin's nonce is bumped only once, /// via the `CheckNonce` transaction extension. In contrast, [`Self::instantiate_with_code`] From 5e501d35af6ee20d791adad9eb6f08f45f5105b5 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 23 Sep 2025 13:45:16 +0000 Subject: [PATCH 174/273] revive: Implement event limits on Stack object Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/exec.rs | 21 +++++++++++++++++++ substrate/frame/revive/src/exec/mock_ext.rs | 4 ++++ .../revive/src/vm/evm/instructions/host.rs | 7 +++++++ substrate/frame/revive/src/vm/pvm.rs | 12 +---------- substrate/frame/revive/src/vm/pvm/env.rs | 5 +---- 5 files changed, 34 insertions(+), 15 deletions(-) diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index c94be26ce8288..ad6dd26124f9c 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -381,6 +381,11 @@ pub trait PrecompileExt: sealing::Sealed { /// There should not be any duplicates in `topics`. fn deposit_event(&mut self, topics: Vec, data: Vec); + /// Increment the emitted events counter and check if the limit is exceeded. + /// + /// Returns an error if the maximum number of events has been reached. + fn increment_emitted_events(&mut self) -> Result<(), DispatchError>; + /// Returns the current block number. fn block_number(&self) -> U256; @@ -539,6 +544,11 @@ pub struct Stack<'a, T: Config, E> { /// Whether or not actual transfer of funds should be performed. /// This is set to `true` exclusively when we simulate a call through eth_transact. skip_transfer: bool, + /// The number of emitted events. + /// + /// When this reaches the maximum allowed number of events, no further events + /// can be emitted, and the transaction will fail. + emitted_events: u32, /// No executable is held by the struct but influences its behaviour. _phantom: PhantomData, } @@ -934,6 +944,7 @@ where frames: Default::default(), transient_storage: TransientStorage::new(limits::TRANSIENT_STORAGE_BYTES), skip_transfer, + emitted_events: 0, _phantom: Default::default(), }; @@ -2109,6 +2120,16 @@ where Contracts::::deposit_event(Event::ContractEmitted { contract, data, topics }); } + fn increment_emitted_events(&mut self) -> Result<(), DispatchError> { + self.emitted_events = self.emitted_events.saturating_add(1); + + if self.emitted_events > limits::NUM_EMITTED_EVENTS { + return Err(Error::::TooManyEmittedEvents.into()); + } + + Ok(()) + } + fn block_number(&self) -> U256 { self.block_number.into() } diff --git a/substrate/frame/revive/src/exec/mock_ext.rs b/substrate/frame/revive/src/exec/mock_ext.rs index 91a3e1c1c43f5..c880a944b2717 100644 --- a/substrate/frame/revive/src/exec/mock_ext.rs +++ b/substrate/frame/revive/src/exec/mock_ext.rs @@ -132,6 +132,10 @@ impl PrecompileExt for MockExt { panic!("MockExt::deposit_event") } + fn increment_emitted_events(&mut self) -> Result<(), DispatchError> { + panic!("MockExt::increment_emitted_events") + } + fn block_number(&self) -> U256 { panic!("MockExt::block_number") } diff --git a/substrate/frame/revive/src/vm/evm/instructions/host.rs b/substrate/frame/revive/src/vm/evm/instructions/host.rs index dbb65c89de64a..c5735a93b471e 100644 --- a/substrate/frame/revive/src/vm/evm/instructions/host.rs +++ b/substrate/frame/revive/src/vm/evm/instructions/host.rs @@ -230,6 +230,13 @@ pub fn log<'ext, const N: usize, E: Ext>(context: Context<'_, 'ext, E>) { } gas!(context.interpreter, RuntimeCosts::DepositEvent { num_topic: N as u32, len: len as u32 }); + + // Check and increment the emitted events counter + if let Err(_) = context.interpreter.extend.increment_emitted_events() { + context.interpreter.halt(revm::interpreter::InstructionResult::Revert); + return; + } + let data = if len == 0 { Bytes::new() } else { diff --git a/substrate/frame/revive/src/vm/pvm.rs b/substrate/frame/revive/src/vm/pvm.rs index 683b61fb0ba5e..79902ef69b20e 100644 --- a/substrate/frame/revive/src/vm/pvm.rs +++ b/substrate/frame/revive/src/vm/pvm.rs @@ -333,21 +333,11 @@ pub struct Runtime<'a, E: Ext, M: ?Sized> { ext: &'a mut E, input_data: Option>, _phantom_data: PhantomData, - /// The number of emitted events. - /// - /// When this reaches the maximum allowed number of events, no further events - /// can be emitted, and the transaction will fail. - emitted_events: u32, } impl<'a, E: Ext, M: ?Sized + Memory> Runtime<'a, E, M> { pub fn new(ext: &'a mut E, input_data: Vec) -> Self { - Self { - ext, - input_data: Some(input_data), - _phantom_data: Default::default(), - emitted_events: 0, - } + Self { ext, input_data: Some(input_data), _phantom_data: Default::default() } } /// Get a mutable reference to the inner `Ext`. diff --git a/substrate/frame/revive/src/vm/pvm/env.rs b/substrate/frame/revive/src/vm/pvm/env.rs index ce8a013e542e3..db59b9d11f933 100644 --- a/substrate/frame/revive/src/vm/pvm/env.rs +++ b/substrate/frame/revive/src/vm/pvm/env.rs @@ -719,10 +719,7 @@ pub mod env { ) -> Result<(), TrapReason> { self.charge_gas(RuntimeCosts::DepositEvent { num_topic, len: data_len })?; - self.emitted_events += 1; - if self.emitted_events > limits::NUM_EMITTED_EVENTS { - return Err(Error::::TooManyEmittedEvents.into()); - } + self.ext.increment_emitted_events()?; if num_topic > limits::NUM_EVENT_TOPICS { return Err(Error::::TooManyTopics.into()); From 8e0a7bf8998e9fa3e1a45ee8371a131c985314c1 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Tue, 23 Sep 2025 15:00:07 +0200 Subject: [PATCH 175/273] revive/benchmarks: separate on_finalize benchmarks --- substrate/frame/revive/src/benchmarking.rs | 109 ++++++++++++++++---- substrate/frame/revive/src/weights.rs | 49 ++++++--- substrate/frame/revive/src/weights_utils.rs | 60 ++++++++--- 3 files changed, 171 insertions(+), 47 deletions(-) diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index d10c91f084cb1..189f7f905dcda 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -2670,44 +2670,41 @@ mod benchmarks { Ok((instance, origin, storage_deposit, evm_value, signer_key, current_block)) } - /// Benchmark the `on_finalize` hook scaling with number of transactions - /// and payload size. + /// Benchmark the `on_finalize` hook scaling with number of transactions. /// /// This benchmark measures the marginal computational cost of adding transactions - /// to a block during finalization. Each transaction uses identical fixed parameters - /// to isolate the pure transaction processing overhead. + /// to a block during finalization, with fixed payload size to isolate transaction + /// count scaling effects. /// /// ## Parameters: - /// - `n`: Number of transactions in the block - /// - `p`: Payload size (transaction data size in bytes) + /// - `n`: Number of transactions in the block (0-200) /// /// ## Test Setup: - /// - Creates `n` transactions with payload size `p` - /// - Pre-populates `InflightTransactions::` storage with test data - /// - /// Note: While trie root computation is theoretically O(N log N), the computational cost - /// is dominated by storage I/O operations, so linear regression approximation is adequate. + /// - Creates `n` transactions with fixed 100-byte payloads + /// - Pre-populates block builder storage with test data /// /// ## Usage: - /// - Fixed cost: `on_finalize(0, 0)` - cost incurred no matter what number of transactions - /// - Per transaction: `on_finalize(1, payload_size) - fixed_cost` + /// Use this with `on_finalize_per_byte` to calculate total cost: + /// `total_cost = base + (n × per_tx_cost) + (total_bytes × per_byte_cost)` #[benchmark(pov_mode = Measured)] - fn on_finalize(n: Linear<0, 200>, p: Linear<0, 1000>) -> Result<(), BenchmarkError> { + fn on_finalize_per_transaction(n: Linear<0, 200>) -> Result<(), BenchmarkError> { let (instance, _origin, _storage_deposit, evm_value, signer_key, current_block) = setup_finalize_block_benchmark::()?; - // Pre-populate InflightTransactions with n real transactions of input size p - // This isolates the on_finalize processing cost from transaction execution + // Fixed payload size to isolate transaction count effects + let fixed_payload_size = 100usize; + + // Pre-populate InflightTransactions with n transactions of fixed size if n > 0 { // Initialize block let _ = Pallet::::on_initialize(current_block); - // Create input data of size p for realistic transaction payloads - let input_data = vec![0x42u8; p as usize]; + // Create input data of fixed size for consistent transaction payloads + let input_data = vec![0x42u8; fixed_payload_size]; let gas_used = Weight::from_parts(1_000_000, 1000); for _ in 0..n { - // Create real signed transaction with input data of size p + // Create real signed transaction with fixed-size input data let signed_transaction = create_signed_transaction::( &signer_key, instance.address, @@ -2738,7 +2735,7 @@ mod benchmarks { #[block] { - // Measure only the finalization cost with n transactions of size p + // Measure only the finalization cost with n transactions of fixed size let _ = Pallet::::on_finalize(current_block); } @@ -2748,6 +2745,78 @@ mod benchmarks { Ok(()) } + /// Benchmark the `on_finalize` hook scaling with transaction payload size. + /// + /// This benchmark measures the marginal computational cost of processing + /// larger transaction payloads during finalization, with fixed transaction count + /// to isolate payload size scaling effects. + /// + /// ## Parameters: + /// - `d`: Payload size per transaction in bytes (0-1000) + /// + /// ## Test Setup: + /// - Creates 10 transactions with payload size `d` + /// - Pre-populates block builder storage with test data + /// + /// ## Usage: + /// Use this with `on_finalize_per_transaction` to calculate total cost: + /// `total_cost = base + (n × per_tx_cost) + (total_bytes × per_byte_cost)` + #[benchmark(pov_mode = Measured)] + fn on_finalize_per_transaction_data(d: Linear<0, 1000>) -> Result<(), BenchmarkError> { + let (instance, _origin, _storage_deposit, evm_value, signer_key, current_block) = + setup_finalize_block_benchmark::()?; + + // Fixed transaction count to isolate payload size effects + let fixed_tx_count = 10u32; + + // Initialize block + let _ = Pallet::::on_initialize(current_block); + + // Create input data of variable size p for realistic transaction payloads + let input_data = vec![0x42u8; d as usize]; + let gas_used = Weight::from_parts(1_000_000, 1000); + + for _ in 0..fixed_tx_count { + // Create real signed transaction with variable-size input data + let signed_transaction = create_signed_transaction::( + &signer_key, + instance.address, + evm_value, + input_data.clone(), + ); + + // Store transaction + let _ = block_storage::with_ethereum_context(|| { + let (encoded_logs, bloom) = + block_storage::get_receipt_details().unwrap_or_default(); + + let block_builder_ir = EthBlockBuilderIR::::get(); + let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); + + block_builder.process_transaction( + signed_transaction, + true, + gas_used, + encoded_logs, + bloom, + ); + + EthBlockBuilderIR::::put(block_builder.to_ir()); + }); + } + + #[block] + { + // Measure only the finalization cost with fixed count, variable payload size + let _ = Pallet::::on_finalize(current_block); + } + + // Verify transaction count + assert_eq!(Pallet::::eth_block().transactions.len(), fixed_tx_count as usize); + + Ok(()) + } + /// Benchmark the `on_finalize` per-event costs. /// /// This benchmark measures the computational cost of processing events diff --git a/substrate/frame/revive/src/weights.rs b/substrate/frame/revive/src/weights.rs index 82dc4f28ba3b3..48342ffdce0eb 100644 --- a/substrate/frame/revive/src/weights.rs +++ b/substrate/frame/revive/src/weights.rs @@ -164,7 +164,8 @@ pub trait WeightInfo { fn extcodecopy(n: u32, ) -> Weight; fn v1_migration_step() -> Weight; fn v2_migration_step() -> Weight; - fn on_finalize(n: u32, p: u32, ) -> Weight; + fn on_finalize_per_transaction(n: u32, ) -> Weight; + fn on_finalize_per_transaction_data(d: u32, ) -> Weight; fn on_finalize_per_event(e: u32, ) -> Weight; fn on_finalize_per_event_data(d: u32, ) -> Weight; } @@ -1338,21 +1339,30 @@ impl WeightInfo for SubstrateWeight { /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 200]`. - /// The range of component `p` is `[0, 1000]`. - fn on_finalize(n: u32, p: u32, ) -> Weight { + fn on_finalize_per_transaction(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3685 + n * (60 ±0) + p * (2 ±0)` - // Estimated: `6815 + n * (62 ±0) + p * (2 ±0)` + // Measured: `3685 + n * (60 ±0)` + // Estimated: `6815 + n * (62 ±0)` // Minimum execution time: 27_174_000 picoseconds. Weight::from_parts(63_904_853, 6815) // Standard Error: 3_877 .saturating_add(Weight::from_parts(377_767, 0).saturating_mul(n.into())) - // Standard Error: 776 - .saturating_add(Weight::from_parts(8_806, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 62).saturating_mul(n.into())) - .saturating_add(Weight::from_parts(0, 2).saturating_mul(p.into())) + } + /// The range of component `d` is `[0, 1000]`. + fn on_finalize_per_transaction_data(d: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `3685 + p * (2 ±0)` + // Estimated: `6815 + p * (2 ±0)` + // Minimum execution time: 27_174_000 picoseconds. + Weight::from_parts(63_904_853, 6815) + // Standard Error: 776 + .saturating_add(Weight::from_parts(8_806, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 2).saturating_mul(d.into())) } /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) @@ -2570,21 +2580,30 @@ impl WeightInfo for () { /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `n` is `[0, 200]`. - /// The range of component `p` is `[0, 1000]`. - fn on_finalize(n: u32, p: u32, ) -> Weight { + fn on_finalize_per_transaction(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3685 + n * (60 ±0) + p * (2 ±0)` - // Estimated: `6815 + n * (62 ±0) + p * (2 ±0)` + // Measured: `3685 + n * (60 ±0)` + // Estimated: `6815 + n * (62 ±0)` // Minimum execution time: 27_174_000 picoseconds. Weight::from_parts(63_904_853, 6815) // Standard Error: 3_877 .saturating_add(Weight::from_parts(377_767, 0).saturating_mul(n.into())) - // Standard Error: 776 - .saturating_add(Weight::from_parts(8_806, 0).saturating_mul(p.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 62).saturating_mul(n.into())) - .saturating_add(Weight::from_parts(0, 2).saturating_mul(p.into())) + } + /// The range of component `d` is `[0, 1000]`. + fn on_finalize_per_transaction_data(d: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `3685 + d * (2 ±0)` + // Estimated: `6815 + d * (2 ±0)` + // Minimum execution time: 27_174_000 picoseconds. + Weight::from_parts(63_904_853, 6815) + // Standard Error: 776 + .saturating_add(Weight::from_parts(8_806, 0).saturating_mul(d.into())) + .saturating_add(RocksDbWeight::get().reads(3_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 2).saturating_mul(d.into())) } /// Storage: `System::Account` (r:1 w:0) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) diff --git a/substrate/frame/revive/src/weights_utils.rs b/substrate/frame/revive/src/weights_utils.rs index 3ced8a8eb4cdf..a192d5747fe52 100644 --- a/substrate/frame/revive/src/weights_utils.rs +++ b/substrate/frame/revive/src/weights_utils.rs @@ -28,6 +28,11 @@ pub trait OnFinalizeBlockParts { /// Returns the per-transaction weight cost for finalize_block operations. /// + /// This weight combines the cost of processing one additional transaction with + /// the cost of its payload data. Uses results from two separate benchmarks: + /// - `on_finalize_per_transaction`: measures transaction count scaling + /// - `on_finalize_per_transaction_data`: measures payload size scaling + /// /// This weight is applied incrementally during each `eth_call()` to: /// - Enforce gas limits before transaction execution /// - Reject transactions early if block capacity would be exceeded @@ -46,7 +51,7 @@ pub trait OnFinalizeBlockParts { /// /// Uses differential cost calculation: `per_event_base + (data_len * per_byte_cost)` /// - /// # Parameters + /// # Parameters /// - `data_len`: Total bytes of event data (includes topics and data field) fn on_finalize_block_per_event(data_len: u32) -> Weight; } @@ -54,35 +59,66 @@ pub trait OnFinalizeBlockParts { /// Implementation of `OnFinalizeBlockParts` that derives high-level weights from `WeightInfo` /// benchmarks. /// +/// This implementation solves the linear dependency problem by using separate benchmarks +/// for transaction count and payload size, then combining them mathematically. +/// /// **Weight Formula:** /// ```text /// Total weight = fixed_part + Σ(per_tx_part(payload_i)) + Σ(per_event_part(data_len_j)) +/// where: +/// per_tx_part(payload) = tx_marginal_cost + (payload × byte_marginal_cost) /// ``` /// +/// **Benchmark Sources:** +/// - Fixed cost: `on_finalize_per_transaction(0)` +/// - Per-transaction cost: `on_finalize_per_transaction(1) - on_finalize_per_transaction(0)` +/// - Per-byte cost: `on_finalize_per_transaction_data(1) - on_finalize_per_transaction_data(0)` +/// /// Uses differential calculation to isolate marginal costs from benchmark measurements. impl OnFinalizeBlockParts for W { fn on_finalize_block_fixed() -> Weight { - // Fixed cost is incurred no matter what number of transactions - W::on_finalize(0, 0) + // Fixed cost: baseline finalization cost with zero transactions + // Uses the transaction count benchmark at n=0 to capture setup overhead + W::on_finalize_per_transaction(0) } fn on_finalize_block_per_tx(payload_size: u32) -> Weight { - // Cost per transaction: on_finalize(1, payload_size) - fixed_cost - W::on_finalize(1, payload_size).saturating_sub(W::on_finalize_block_fixed()) + // Calculate marginal cost of adding one transaction with given payload size + // Combines results from two linearly independent benchmarks: + + // 1. Transaction count cost: marginal cost of one additional transaction + let per_tx_cost = + W::on_finalize_per_transaction(1).saturating_sub(W::on_finalize_per_transaction(0)); + + // 2. Payload size cost: marginal cost per byte of transaction data + let payload_cost = if payload_size > 0 { + let per_byte_cost = W::on_finalize_per_transaction_data(1) + .saturating_sub(W::on_finalize_per_transaction_data(0)); + per_byte_cost.saturating_mul(payload_size as u64) + } else { + Weight::zero() + }; + + per_tx_cost.saturating_add(payload_cost) } fn on_finalize_block_per_event(data_len: u32) -> Weight { - // Base cost per event: cost difference between 1 event and 0 events - let per_event_base_cost = - W::on_finalize_per_event(1).saturating_sub(W::on_finalize_per_event(0)); + // Calculate marginal cost of adding one event with given data length + // Combines results from two linearly independent benchmarks: + + // 1. Event count cost: marginal cost of one additional event + let per_event_cost = W::on_finalize_per_event(1) + .saturating_sub(W::on_finalize_per_event(0)); - // Additional cost per byte of event data - let per_byte_cost = if data_len > 0 { - W::on_finalize_per_event_data(data_len).saturating_sub(W::on_finalize_per_event_data(0)) + // 2. Event data cost: marginal cost per byte of event data + let data_cost = if data_len > 0 { + let per_byte_cost = W::on_finalize_per_event_data(data_len) + .saturating_sub(W::on_finalize_per_event_data(0)); + per_byte_cost } else { Weight::zero() }; - per_event_base_cost.saturating_add(per_byte_cost) + per_event_cost.saturating_add(data_cost) } } From 3959e16cd3c026bc8c325e27385ca133a8bfe1ee Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 23 Sep 2025 14:08:49 +0000 Subject: [PATCH 176/273] revive: Move limit checking into deposit_event directly Signed-off-by: Alexandru Vasile --- substrate/frame/assets/src/precompiles.rs | 4 +++- substrate/frame/revive/src/exec.rs | 23 ++++++++----------- substrate/frame/revive/src/exec/mock_ext.rs | 6 +---- .../revive/src/vm/evm/instructions/host.rs | 10 ++++---- substrate/frame/revive/src/vm/pvm/env.rs | 4 +--- 5 files changed, 18 insertions(+), 29 deletions(-) diff --git a/substrate/frame/assets/src/precompiles.rs b/substrate/frame/assets/src/precompiles.rs index 3a7915dfd241d..84a0711482603 100644 --- a/substrate/frame/assets/src/precompiles.rs +++ b/substrate/frame/assets/src/precompiles.rs @@ -109,6 +109,7 @@ where const ERR_INVALID_CALLER: &str = "Invalid caller"; const ERR_BALANCE_CONVERSION_FAILED: &str = "Balance conversion failed"; +const ERR_MAX_EVENTS_REACHED: &str = "Maximum number of events reached"; impl ERC20 where @@ -156,7 +157,8 @@ where num_topic: topics.len() as u32, len: topics.len() as u32, })?; - env.deposit_event(topics, data.to_vec()); + env.deposit_event(topics, data.to_vec()) + .map_err(|_| Error::Revert(Revert { reason: ERR_MAX_EVENTS_REACHED.into() }))?; Ok(()) } diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index ad6dd26124f9c..2abeac89e913f 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -379,12 +379,9 @@ pub trait PrecompileExt: sealing::Sealed { /// Deposit an event with the given topics. /// /// There should not be any duplicates in `topics`. - fn deposit_event(&mut self, topics: Vec, data: Vec); - - /// Increment the emitted events counter and check if the limit is exceeded. /// /// Returns an error if the maximum number of events has been reached. - fn increment_emitted_events(&mut self) -> Result<(), DispatchError>; + fn deposit_event(&mut self, topics: Vec, data: Vec) -> Result<(), DispatchError>; /// Returns the current block number. fn block_number(&self) -> U256; @@ -2108,7 +2105,14 @@ where crate::Pallet::::convert_native_to_evm(min) } - fn deposit_event(&mut self, topics: Vec, data: Vec) { + fn deposit_event(&mut self, topics: Vec, data: Vec) -> Result<(), DispatchError> { + // Increment the emitted events counter and check if the limit is exceeded + self.emitted_events = self.emitted_events.saturating_add(1); + + if self.emitted_events > limits::NUM_EMITTED_EVENTS { + return Err(Error::::TooManyEmittedEvents.into()); + } + let contract = T::AddressMapper::to_address(self.account_id()); if_tracing(|tracer| { tracer.log_event(contract, &topics, &data); @@ -2118,15 +2122,6 @@ where block_storage::capture_ethereum_log(&contract, &data, &topics); Contracts::::deposit_event(Event::ContractEmitted { contract, data, topics }); - } - - fn increment_emitted_events(&mut self) -> Result<(), DispatchError> { - self.emitted_events = self.emitted_events.saturating_add(1); - - if self.emitted_events > limits::NUM_EMITTED_EVENTS { - return Err(Error::::TooManyEmittedEvents.into()); - } - Ok(()) } diff --git a/substrate/frame/revive/src/exec/mock_ext.rs b/substrate/frame/revive/src/exec/mock_ext.rs index c880a944b2717..40b80644fc893 100644 --- a/substrate/frame/revive/src/exec/mock_ext.rs +++ b/substrate/frame/revive/src/exec/mock_ext.rs @@ -128,14 +128,10 @@ impl PrecompileExt for MockExt { panic!("MockExt::minimum_balance") } - fn deposit_event(&mut self, _topics: Vec, _data: Vec) { + fn deposit_event(&mut self, _topics: Vec, _data: Vec) -> Result<(), DispatchError> { panic!("MockExt::deposit_event") } - fn increment_emitted_events(&mut self) -> Result<(), DispatchError> { - panic!("MockExt::increment_emitted_events") - } - fn block_number(&self) -> U256 { panic!("MockExt::block_number") } diff --git a/substrate/frame/revive/src/vm/evm/instructions/host.rs b/substrate/frame/revive/src/vm/evm/instructions/host.rs index c5735a93b471e..948c283425de7 100644 --- a/substrate/frame/revive/src/vm/evm/instructions/host.rs +++ b/substrate/frame/revive/src/vm/evm/instructions/host.rs @@ -231,11 +231,6 @@ pub fn log<'ext, const N: usize, E: Ext>(context: Context<'_, 'ext, E>) { gas!(context.interpreter, RuntimeCosts::DepositEvent { num_topic: N as u32, len: len as u32 }); - // Check and increment the emitted events counter - if let Err(_) = context.interpreter.extend.increment_emitted_events() { - context.interpreter.halt(revm::interpreter::InstructionResult::Revert); - return; - } let data = if len == 0 { Bytes::new() @@ -255,7 +250,10 @@ pub fn log<'ext, const N: usize, E: Ext>(context: Context<'_, 'ext, E>) { let topics = topics.into_iter().map(|v| sp_core::H256::from(v.to_be_bytes())).collect(); - context.interpreter.extend.deposit_event(topics, data.to_vec()); + if let Err(_) = context.interpreter.extend.deposit_event(topics, data.to_vec()) { + context.interpreter.halt(revm::interpreter::InstructionResult::Revert); + return; + } } /// Implements the SELFDESTRUCT instruction. diff --git a/substrate/frame/revive/src/vm/pvm/env.rs b/substrate/frame/revive/src/vm/pvm/env.rs index db59b9d11f933..2cdb416042af8 100644 --- a/substrate/frame/revive/src/vm/pvm/env.rs +++ b/substrate/frame/revive/src/vm/pvm/env.rs @@ -719,8 +719,6 @@ pub mod env { ) -> Result<(), TrapReason> { self.charge_gas(RuntimeCosts::DepositEvent { num_topic, len: data_len })?; - self.ext.increment_emitted_events()?; - if num_topic > limits::NUM_EVENT_TOPICS { return Err(Error::::TooManyTopics.into()); } @@ -743,7 +741,7 @@ pub mod env { }; let event_data = memory.read(data_ptr, data_len)?; - self.ext.deposit_event(topics, event_data); + self.ext.deposit_event(topics, event_data)?; Ok(()) } From e81271b98b862215cf0036ea03f50a60c2f3173d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 23 Sep 2025 14:10:31 +0000 Subject: [PATCH 177/273] revive: Apply cargo fmt Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/weights_utils.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/weights_utils.rs b/substrate/frame/revive/src/weights_utils.rs index a192d5747fe52..9768dcd1fe189 100644 --- a/substrate/frame/revive/src/weights_utils.rs +++ b/substrate/frame/revive/src/weights_utils.rs @@ -107,8 +107,8 @@ impl OnFinalizeBlockParts for W { // Combines results from two linearly independent benchmarks: // 1. Event count cost: marginal cost of one additional event - let per_event_cost = W::on_finalize_per_event(1) - .saturating_sub(W::on_finalize_per_event(0)); + let per_event_cost = + W::on_finalize_per_event(1).saturating_sub(W::on_finalize_per_event(0)); // 2. Event data cost: marginal cost per byte of event data let data_cost = if data_len > 0 { From 2466181cb5f3cab95d587a99dcbef202b393b58a Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 23 Sep 2025 14:22:03 +0000 Subject: [PATCH 178/273] revive: Use saturating add where possible Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 6 +++--- substrate/frame/revive/src/vm/evm/instructions/host.rs | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index c18c43ff94c24..911ca881e316b 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -284,7 +284,7 @@ impl IncrementalHashBuilder { } } - self.index += 1; + self.index = self.index.saturating_add(1); } /// Build the trie root hash. @@ -406,11 +406,11 @@ impl AccumulateReceipt { self.bloom.accrue_log(contract, topics); // Determine the length of the log RLP encoding. - let mut topics_len = 0; + let mut topics_len: usize = 0; for topic in topics { // Topics are represented by 32 bytes. However, their encoding // can produce different lengths depending on their value. - topics_len += rlp::Encodable::length(&topic.0); + topics_len = topics_len.saturating_add(rlp::Encodable::length(&topic.0)); } // Account for the size of the list header. let topics_list_header_length = topics_len + rlp::length_of_length(topics_len); diff --git a/substrate/frame/revive/src/vm/evm/instructions/host.rs b/substrate/frame/revive/src/vm/evm/instructions/host.rs index 948c283425de7..c671579beec77 100644 --- a/substrate/frame/revive/src/vm/evm/instructions/host.rs +++ b/substrate/frame/revive/src/vm/evm/instructions/host.rs @@ -231,7 +231,6 @@ pub fn log<'ext, const N: usize, E: Ext>(context: Context<'_, 'ext, E>) { gas!(context.interpreter, RuntimeCosts::DepositEvent { num_topic: N as u32, len: len as u32 }); - let data = if len == 0 { Bytes::new() } else { From 7faa0d17493e966f285d5a74fb5cd4ed6393cbe1 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 23 Sep 2025 14:43:20 +0000 Subject: [PATCH 179/273] revive: Import TransactionSigned from evm Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/benchmarking.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index 189f7f905dcda..69282ee3f67f5 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -20,7 +20,10 @@ #![cfg(feature = "runtime-benchmarks")] use crate::{ call_builder::{caller_funding, default_deposit_limit, CallSetup, Contract, VmBinaryModule}, - evm::{block_storage, runtime::GAS_PRICE, TransactionLegacyUnsigned, TransactionUnsigned}, + evm::{ + block_storage, runtime::GAS_PRICE, TransactionLegacyUnsigned, TransactionSigned, + TransactionUnsigned, + }, exec::{Key, MomentOf, PrecompileExt}, limits, precompiles::{ @@ -38,7 +41,7 @@ use crate::{ evm::{instructions::instruction_table, EVMInterpreter}, pvm, }, - Pallet as Contracts, TransactionSigned, *, + Pallet as Contracts, *, }; use alloc::{vec, vec::Vec}; use alloy_core::sol_types::{SolInterface, SolValue}; From 56ba0d16a0b1cb0f911606010e64e0209004730d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 23 Sep 2025 14:56:01 +0000 Subject: [PATCH 180/273] Add EnsureEVM origin to pallets Signed-off-by: Alexandru Vasile --- cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs | 1 + polkadot/xcm/pallet-xcm/src/mock.rs | 1 + substrate/frame/assets/src/mock.rs | 1 + 3 files changed, 3 insertions(+) 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 f707e83be1ac5..b5e9a9dae7824 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -1192,6 +1192,7 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); type FindAuthor = ::FindAuthor; + type EVMOrigin = frame_system::EnsureNever; } parameter_types! { diff --git a/polkadot/xcm/pallet-xcm/src/mock.rs b/polkadot/xcm/pallet-xcm/src/mock.rs index 6d159013cf8ca..3b5eedbce43a1 100644 --- a/polkadot/xcm/pallet-xcm/src/mock.rs +++ b/polkadot/xcm/pallet-xcm/src/mock.rs @@ -342,6 +342,7 @@ impl pallet_revive::Config for Test { type Time = Timestamp; type UploadOrigin = frame_system::EnsureSigned; type InstantiateOrigin = frame_system::EnsureSigned; + type EVMOrigin = frame_system::EnsureNever; } // This child parachain is a system parachain trusted to teleport native token. diff --git a/substrate/frame/assets/src/mock.rs b/substrate/frame/assets/src/mock.rs index 78fb2b78e4f47..9829f032932ee 100644 --- a/substrate/frame/assets/src/mock.rs +++ b/substrate/frame/assets/src/mock.rs @@ -61,6 +61,7 @@ impl pallet_revive::Config for Test { type AddressMapper = pallet_revive::TestAccountMapper; type Currency = Balances; type Precompiles = (ERC20>,); + type EVMOrigin = frame_system::EnsureNever; } pub struct AssetsCallbackHandle; From 2ea7b214e15488e337fe27fcea53bf74d2280323 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Tue, 23 Sep 2025 17:23:01 +0200 Subject: [PATCH 181/273] Add EnsureEVM origin to subtrate-node runtime --- substrate/bin/node/runtime/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 587ba68879452..e011e5fcfb539 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1492,6 +1492,7 @@ impl pallet_revive::Config for Runtime { type EthGasEncoder = (); type FindAuthor = ::FindAuthor; type AllowEVMBytecode = ConstBool; + type EVMOrigin = frame_system::EnsureNever; } impl pallet_sudo::Config for Runtime { From 6efcbf9bf6b0ee9c92be3d399f5f31485acd4e07 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Tue, 23 Sep 2025 19:10:31 +0200 Subject: [PATCH 182/273] update expected compile error after serde update serde was indirectly updated after adding 'alloy-consensus' dependency, which depends on serde-1.0.225, which in turn introduces 'serde_core' subcrate. --- .../tests/construct_runtime_ui/deprecated_where_block.stderr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/support/test/tests/construct_runtime_ui/deprecated_where_block.stderr b/substrate/frame/support/test/tests/construct_runtime_ui/deprecated_where_block.stderr index 55d85ca503d68..1cfabbb8fd357 100644 --- a/substrate/frame/support/test/tests/construct_runtime_ui/deprecated_where_block.stderr +++ b/substrate/frame/support/test/tests/construct_runtime_ui/deprecated_where_block.stderr @@ -740,7 +740,7 @@ error[E0277]: the trait bound `Runtime: Config` is not satisfied = help: the trait `Serialize` is implemented for `GenesisConfig` = note: required for `GenesisConfig` to implement `Serialize` note: required by a bound in `frame_support::sp_runtime::serde::ser::SerializeStruct::serialize_field` - --> $CARGO/serde-1.0.219/src/ser/mod.rs + --> $CARGO/serde_core-$VERSION/src/ser/mod.rs | | fn serialize_field(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error> | --------------- required by a bound in this associated function From bee04d00fbc2dcf3728e14b473acba81c051ab23 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Wed, 24 Sep 2025 08:42:53 +0200 Subject: [PATCH 183/273] revive: update README --- substrate/frame/revive/README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/README.md b/substrate/frame/revive/README.md index b6dc3a5d77550..eb64de41e7b09 100644 --- a/substrate/frame/revive/README.md +++ b/substrate/frame/revive/README.md @@ -50,13 +50,15 @@ The pallet exposes these weight calculation methods for runtime use: **Underlying Benchmark Functions (`WeightInfo` trait):** These low-level benchmarks measure raw computational costs and are used to derive the high-level weights: -- **Base finalization**: `on_finalize(n, p)` - Measures cost of finalizing `n` transactions with `p` payload size +- **Per-transaction overhead**: `on_finalize_per_transaction(n)` - Measures cost scaling with `n` transaction count +- **Per-transaction data**: `on_finalize_per_transaction_data(d)` - Measures cost scaling with `d` bytes of transaction payload - **Per-event overhead**: `on_finalize_per_event(e)` - Measures cost scaling with `e` event count -- **Per-data overhead**: `on_finalize_per_event_data(d)` - Measures cost scaling with `d` bytes of event data +- **Per-event data**: `on_finalize_per_event_data(d)` - Measures cost scaling with `d` bytes of event data **Weight Derivation Methodology:** The high-level API methods use differential calculation to isolate marginal costs from benchmarks: -- Per-transaction: `on_finalize(1, payload_size) - on_finalize(0, 0)` +- Per-transaction base: `on_finalize_per_transaction(1) - on_finalize_per_transaction(0)` +- Per-transaction byte: `on_finalize_per_transaction_data(1) - on_finalize_per_transaction_data(0)` - Per-event base: `on_finalize_per_event(1) - on_finalize_per_event(0)` - Per-byte of event data: `on_finalize_per_event_data(data_len) - on_finalize_per_event_data(0)` From 6da298a9ace58e8b06f58f724ca9f974319db4cd Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Wed, 24 Sep 2025 08:45:42 +0200 Subject: [PATCH 184/273] revive/benchmarking: revert weights to let benchmark bot commit proper weights --- substrate/frame/revive/src/weights.rs | 1338 ++++++++++++------------- 1 file changed, 658 insertions(+), 680 deletions(-) diff --git a/substrate/frame/revive/src/weights.rs b/substrate/frame/revive/src/weights.rs index 48342ffdce0eb..4ae862c49ff32 100644 --- a/substrate/frame/revive/src/weights.rs +++ b/substrate/frame/revive/src/weights.rs @@ -35,9 +35,9 @@ //! Autogenerated weights for `pallet_revive` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2025-09-22, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2025-09-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `aee002137b1c`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `ff2afa3d9639`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` // Executed Command: @@ -179,8 +179,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `147` // Estimated: `1632` - // Minimum execution time: 3_210_000 picoseconds. - Weight::from_parts(3_331_000, 1632) + // Minimum execution time: 3_103_000 picoseconds. + Weight::from_parts(3_288_000, 1632) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -190,10 +190,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `458 + k * (69 ±0)` // Estimated: `448 + k * (70 ±0)` - // Minimum execution time: 14_886_000 picoseconds. - Weight::from_parts(15_123_000, 448) - // Standard Error: 2_243 - .saturating_add(Weight::from_parts(1_272_153, 0).saturating_mul(k.into())) + // Minimum execution time: 14_393_000 picoseconds. + Weight::from_parts(14_689_000, 448) + // Standard Error: 1_032 + .saturating_add(Weight::from_parts(1_205_681, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -217,10 +217,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1172 + c * (1 ±0)` // Estimated: `7107 + c * (1 ±0)` - // Minimum execution time: 88_436_000 picoseconds. - Weight::from_parts(126_734_069, 7107) - // Standard Error: 11 - .saturating_add(Weight::from_parts(1_694, 0).saturating_mul(c.into())) + // Minimum execution time: 85_415_000 picoseconds. + Weight::from_parts(120_226_734, 7107) + // Standard Error: 10 + .saturating_add(Weight::from_parts(1_539, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -238,14 +238,12 @@ impl WeightInfo for SubstrateWeight { /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// The range of component `c` is `[1, 10240]`. - fn call_with_evm_code_per_byte(c: u32, ) -> Weight { + fn call_with_evm_code_per_byte(_c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1112` // Estimated: `7051` - // Minimum execution time: 83_193_000 picoseconds. - Weight::from_parts(87_821_931, 7051) - // Standard Error: 33 - .saturating_add(Weight::from_parts(65, 0).saturating_mul(c.into())) + // Minimum execution time: 80_503_000 picoseconds. + Weight::from_parts(84_811_467, 7051) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -266,8 +264,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `4516` // Estimated: `10456` - // Minimum execution time: 126_074_000 picoseconds. - Weight::from_parts(131_886_612, 10456) + // Minimum execution time: 123_461_000 picoseconds. + Weight::from_parts(128_775_940, 10456) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -291,12 +289,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6811` - // Minimum execution time: 760_383_000 picoseconds. - Weight::from_parts(14_368_942, 6811) - // Standard Error: 37 - .saturating_add(Weight::from_parts(21_385, 0).saturating_mul(c.into())) - // Standard Error: 28 - .saturating_add(Weight::from_parts(5_571, 0).saturating_mul(i.into())) + // Minimum execution time: 749_503_000 picoseconds. + Weight::from_parts(59_829_896, 6811) + // Standard Error: 35 + .saturating_add(Weight::from_parts(20_233, 0).saturating_mul(c.into())) + // Standard Error: 27 + .saturating_add(Weight::from_parts(5_057, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -312,8 +310,6 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) - /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:0 w:1) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `c` is `[0, 102400]`. @@ -323,17 +319,17 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6821 + d * (2475 ±0)` - // Minimum execution time: 297_538_000 picoseconds. - Weight::from_parts(206_359_544, 6821) - // Standard Error: 22 - .saturating_add(Weight::from_parts(15_660, 0).saturating_mul(c.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(450, 0).saturating_mul(i.into())) - // Standard Error: 1_474_523 - .saturating_add(Weight::from_parts(39_823_491, 0).saturating_mul(d.into())) - .saturating_add(T::DbWeight::get().reads(8_u64)) + // Minimum execution time: 277_185_000 picoseconds. + Weight::from_parts(147_220_906, 6821) + // Standard Error: 29 + .saturating_add(Weight::from_parts(15_202, 0).saturating_mul(c.into())) + // Standard Error: 23 + .saturating_add(Weight::from_parts(642, 0).saturating_mul(i.into())) + // Standard Error: 1_934_039 + .saturating_add(Weight::from_parts(34_192_978, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(d.into()))) - .saturating_add(T::DbWeight::get().writes(7_u64)) + .saturating_add(T::DbWeight::get().writes(6_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) .saturating_add(Weight::from_parts(0, 2475).saturating_mul(d.into())) } @@ -354,12 +350,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 131072]`. fn instantiate(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1623` - // Estimated: `5077` - // Minimum execution time: 176_565_000 picoseconds. - Weight::from_parts(181_735_147, 5077) - // Standard Error: 10 - .saturating_add(Weight::from_parts(4_287, 0).saturating_mul(i.into())) + // Measured: `1610` + // Estimated: `5060` + // Minimum execution time: 168_670_000 picoseconds. + Weight::from_parts(175_522_603, 5060) + // Standard Error: 12 + .saturating_add(Weight::from_parts(4_260, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -379,8 +375,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734` - // Minimum execution time: 90_352_000 picoseconds. - Weight::from_parts(93_883_000, 7734) + // Minimum execution time: 86_819_000 picoseconds. + Weight::from_parts(89_536_000, 7734) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -396,20 +392,18 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) - /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `d` is `[0, 1]`. fn eth_call(d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734 + d * (2475 ±0)` - // Minimum execution time: 96_966_000 picoseconds. - Weight::from_parts(101_532_838, 7734) - // Standard Error: 485_092 - .saturating_add(Weight::from_parts(25_810_261, 0).saturating_mul(d.into())) - .saturating_add(T::DbWeight::get().reads(8_u64)) + // Minimum execution time: 85_649_000 picoseconds. + Weight::from_parts(90_277_271, 7734) + // Standard Error: 333_872 + .saturating_add(Weight::from_parts(26_832_228, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(d.into()))) - .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) .saturating_add(Weight::from_parts(0, 2475).saturating_mul(d.into())) } @@ -424,10 +418,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `303` // Estimated: `3768` - // Minimum execution time: 57_740_000 picoseconds. - Weight::from_parts(50_519_259, 3768) - // Standard Error: 19 - .saturating_add(Weight::from_parts(14_777, 0).saturating_mul(c.into())) + // Minimum execution time: 56_015_000 picoseconds. + Weight::from_parts(44_756_550, 3768) + // Standard Error: 17 + .saturating_add(Weight::from_parts(14_377, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -441,8 +435,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `458` // Estimated: `3923` - // Minimum execution time: 53_859_000 picoseconds. - Weight::from_parts(55_170_000, 3923) + // Minimum execution time: 51_807_000 picoseconds. + Weight::from_parts(53_562_000, 3923) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -460,8 +454,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `797` // Estimated: `6737` - // Minimum execution time: 67_863_000 picoseconds. - Weight::from_parts(69_274_000, 6737) + // Minimum execution time: 65_431_000 picoseconds. + Weight::from_parts(66_763_000, 6737) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -473,8 +467,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `510` // Estimated: `3975` - // Minimum execution time: 56_675_000 picoseconds. - Weight::from_parts(57_728_000, 3975) + // Minimum execution time: 54_271_000 picoseconds. + Weight::from_parts(55_618_000, 3975) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -486,8 +480,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `93` // Estimated: `3558` - // Minimum execution time: 40_236_000 picoseconds. - Weight::from_parts(41_542_000, 3558) + // Minimum execution time: 38_990_000 picoseconds. + Weight::from_parts(39_656_000, 3558) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -499,8 +493,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 13_229_000 picoseconds. - Weight::from_parts(13_841_000, 3610) + // Minimum execution time: 13_086_000 picoseconds. + Weight::from_parts(13_681_000, 3610) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// The range of component `r` is `[0, 1600]`. @@ -508,24 +502,24 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_024_000 picoseconds. - Weight::from_parts(9_239_929, 0) - // Standard Error: 289 - .saturating_add(Weight::from_parts(175_656, 0).saturating_mul(r.into())) + // Minimum execution time: 7_423_000 picoseconds. + Weight::from_parts(9_149_999, 0) + // Standard Error: 227 + .saturating_add(Weight::from_parts(180_894, 0).saturating_mul(r.into())) } fn seal_caller() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 326_000 picoseconds. - Weight::from_parts(360_000, 0) + // Minimum execution time: 294_000 picoseconds. + Weight::from_parts(330_000, 0) } fn seal_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 319_000 picoseconds. - Weight::from_parts(348_000, 0) + // Minimum execution time: 270_000 picoseconds. + Weight::from_parts(317_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -533,8 +527,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `567` // Estimated: `4032` - // Minimum execution time: 8_005_000 picoseconds. - Weight::from_parts(8_473_000, 4032) + // Minimum execution time: 7_773_000 picoseconds. + Weight::from_parts(8_282_000, 4032) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) @@ -543,16 +537,16 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `403` // Estimated: `3868` - // Minimum execution time: 9_367_000 picoseconds. - Weight::from_parts(9_726_000, 3868) + // Minimum execution time: 9_567_000 picoseconds. + Weight::from_parts(9_975_000, 3868) .saturating_add(T::DbWeight::get().reads(1_u64)) } fn own_code_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `366` + // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_717_000 picoseconds. - Weight::from_parts(7_168_000, 0) + // Minimum execution time: 252_000 picoseconds. + Weight::from_parts(301_000, 0) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) @@ -562,51 +556,51 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `475` // Estimated: `3940` - // Minimum execution time: 12_765_000 picoseconds. - Weight::from_parts(13_443_000, 3940) + // Minimum execution time: 13_090_000 picoseconds. + Weight::from_parts(13_527_000, 3940) .saturating_add(T::DbWeight::get().reads(2_u64)) } fn caller_is_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 976_000 picoseconds. - Weight::from_parts(1_083_000, 0) + // Minimum execution time: 337_000 picoseconds. + Weight::from_parts(375_000, 0) } fn caller_is_root() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 930_000 picoseconds. - Weight::from_parts(1_078_000, 0) + // Minimum execution time: 258_000 picoseconds. + Weight::from_parts(300_000, 0) } fn seal_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 296_000 picoseconds. - Weight::from_parts(356_000, 0) + // Minimum execution time: 308_000 picoseconds. + Weight::from_parts(352_000, 0) } fn weight_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 924_000 picoseconds. - Weight::from_parts(1_041_000, 0) + // Minimum execution time: 687_000 picoseconds. + Weight::from_parts(776_000, 0) } fn seal_ref_time_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 281_000 picoseconds. - Weight::from_parts(317_000, 0) + // Minimum execution time: 247_000 picoseconds. + Weight::from_parts(278_000, 0) } fn seal_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `469` + // Measured: `540` // Estimated: `0` - // Minimum execution time: 12_323_000 picoseconds. - Weight::from_parts(12_690_000, 0) + // Minimum execution time: 12_447_000 picoseconds. + Weight::from_parts(13_433_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -618,8 +612,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `791` // Estimated: `4256` - // Minimum execution time: 18_748_000 picoseconds. - Weight::from_parts(19_140_000, 4256) + // Minimum execution time: 18_806_000 picoseconds. + Weight::from_parts(19_217_000, 4256) .saturating_add(T::DbWeight::get().reads(3_u64)) } /// Storage: `Revive::ImmutableDataOf` (r:1 w:0) @@ -629,10 +623,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `271 + n * (1 ±0)` // Estimated: `3736 + n * (1 ±0)` - // Minimum execution time: 5_915_000 picoseconds. - Weight::from_parts(6_623_622, 3736) - // Standard Error: 5 - .saturating_add(Weight::from_parts(544, 0).saturating_mul(n.into())) + // Minimum execution time: 5_800_000 picoseconds. + Weight::from_parts(6_657_021, 3736) + // Standard Error: 6 + .saturating_add(Weight::from_parts(595, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -643,67 +637,67 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_959_000 picoseconds. - Weight::from_parts(2_250_085, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(564, 0).saturating_mul(n.into())) + // Minimum execution time: 2_057_000 picoseconds. + Weight::from_parts(2_320_795, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(558, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().writes(1_u64)) } fn seal_value_transferred() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 306_000 picoseconds. - Weight::from_parts(344_000, 0) + // Minimum execution time: 260_000 picoseconds. + Weight::from_parts(293_000, 0) } fn minimum_balance() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_222_000 picoseconds. - Weight::from_parts(1_306_000, 0) + // Minimum execution time: 233_000 picoseconds. + Weight::from_parts(291_000, 0) } fn seal_return_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 254_000 picoseconds. - Weight::from_parts(294_000, 0) + // Minimum execution time: 232_000 picoseconds. + Weight::from_parts(262_000, 0) } fn seal_call_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 262_000 picoseconds. - Weight::from_parts(300_000, 0) + // Minimum execution time: 234_000 picoseconds. + Weight::from_parts(273_000, 0) } fn seal_gas_limit() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 534_000 picoseconds. - Weight::from_parts(594_000, 0) + // Minimum execution time: 441_000 picoseconds. + Weight::from_parts(523_000, 0) } fn seal_gas_price() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 270_000 picoseconds. - Weight::from_parts(309_000, 0) + // Minimum execution time: 254_000 picoseconds. + Weight::from_parts(294_000, 0) } fn seal_base_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 273_000 picoseconds. - Weight::from_parts(311_000, 0) + // Minimum execution time: 229_000 picoseconds. + Weight::from_parts(269_000, 0) } fn seal_block_number() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 236_000 picoseconds. - Weight::from_parts(317_000, 0) + // Minimum execution time: 254_000 picoseconds. + Weight::from_parts(290_000, 0) } /// Storage: `Session::Validators` (r:1 w:0) /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -711,60 +705,58 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `141` // Estimated: `1626` - // Minimum execution time: 22_010_000 picoseconds. - Weight::from_parts(22_637_000, 1626) + // Minimum execution time: 21_852_000 picoseconds. + Weight::from_parts(22_526_000, 1626) .saturating_add(T::DbWeight::get().reads(1_u64)) } - /// Storage: `Revive::BlockHash` (r:1 w:0) - /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) /// Storage: `System::BlockHash` (r:1 w:0) /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `Measured`) fn seal_block_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `295` - // Estimated: `3760` - // Minimum execution time: 8_650_000 picoseconds. - Weight::from_parts(9_015_000, 3760) - .saturating_add(T::DbWeight::get().reads(2_u64)) + // Measured: `30` + // Estimated: `3495` + // Minimum execution time: 3_600_000 picoseconds. + Weight::from_parts(3_830_000, 3495) + .saturating_add(T::DbWeight::get().reads(1_u64)) } fn seal_now() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 267_000 picoseconds. - Weight::from_parts(327_000, 0) + // Minimum execution time: 239_000 picoseconds. + Weight::from_parts(276_000, 0) } fn seal_weight_to_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_553_000 picoseconds. - Weight::from_parts(1_725_000, 0) + // Minimum execution time: 1_595_000 picoseconds. + Weight::from_parts(1_665_000, 0) } /// The range of component `n` is `[0, 1048572]`. fn seal_copy_to_contract(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 442_000 picoseconds. - Weight::from_parts(41_341, 0) + // Minimum execution time: 402_000 picoseconds. + Weight::from_parts(496_964, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(240, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(239, 0).saturating_mul(n.into())) } fn seal_call_data_load() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 264_000 picoseconds. - Weight::from_parts(309_000, 0) + // Minimum execution time: 250_000 picoseconds. + Weight::from_parts(289_000, 0) } /// The range of component `n` is `[0, 1048576]`. fn seal_call_data_copy(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 247_000 picoseconds. - Weight::from_parts(270_000, 0) + // Minimum execution time: 230_000 picoseconds. + Weight::from_parts(255_000, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(151, 0).saturating_mul(n.into())) } @@ -773,8 +765,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 304_000 picoseconds. - Weight::from_parts(514_465, 0) + // Minimum execution time: 253_000 picoseconds. + Weight::from_parts(544_296, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(237, 0).saturating_mul(n.into())) } @@ -797,17 +789,17 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 1]`. fn seal_terminate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `583 + r * (368 ±0)` - // Estimated: `4048 + r * (2208 ±0)` - // Minimum execution time: 16_705_000 picoseconds. - Weight::from_parts(17_856_526, 4048) - // Standard Error: 65_022 - .saturating_add(Weight::from_parts(46_778_473, 0).saturating_mul(r.into())) + // Measured: `583 + r * (402 ±0)` + // Estimated: `4048 + r * (2225 ±0)` + // Minimum execution time: 16_727_000 picoseconds. + Weight::from_parts(17_739_285, 4048) + // Standard Error: 59_932 + .saturating_add(Weight::from_parts(44_553_014, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2208).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2225).saturating_mul(r.into())) } /// The range of component `t` is `[0, 4]`. /// The range of component `n` is `[0, 416]`. @@ -815,12 +807,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_560_000 picoseconds. - Weight::from_parts(4_530_282, 0) - // Standard Error: 3_946 - .saturating_add(Weight::from_parts(250_732, 0).saturating_mul(t.into())) - // Standard Error: 43 - .saturating_add(Weight::from_parts(1_229, 0).saturating_mul(n.into())) + // Minimum execution time: 4_226_000 picoseconds. + Weight::from_parts(4_252_357, 0) + // Standard Error: 3_401 + .saturating_add(Weight::from_parts(233_040, 0).saturating_mul(t.into())) + // Standard Error: 37 + .saturating_add(Weight::from_parts(1_172, 0).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -828,8 +820,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 7_204_000 picoseconds. - Weight::from_parts(7_628_000, 648) + // Minimum execution time: 6_909_000 picoseconds. + Weight::from_parts(7_499_000, 648) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -838,8 +830,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 41_838_000 picoseconds. - Weight::from_parts(42_977_000, 10658) + // Minimum execution time: 41_173_000 picoseconds. + Weight::from_parts(42_303_000, 10658) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -848,8 +840,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 8_403_000 picoseconds. - Weight::from_parts(8_907_000, 648) + // Minimum execution time: 8_428_000 picoseconds. + Weight::from_parts(8_817_000, 648) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -859,8 +851,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 44_050_000 picoseconds. - Weight::from_parts(45_950_000, 10658) + // Minimum execution time: 43_627_000 picoseconds. + Weight::from_parts(44_777_000, 10658) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -872,12 +864,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + o * (1 ±0)` // Estimated: `247 + o * (1 ±0)` - // Minimum execution time: 9_101_000 picoseconds. - Weight::from_parts(9_596_435, 247) - // Standard Error: 49 - .saturating_add(Weight::from_parts(700, 0).saturating_mul(n.into())) - // Standard Error: 49 - .saturating_add(Weight::from_parts(702, 0).saturating_mul(o.into())) + // Minimum execution time: 8_934_000 picoseconds. + Weight::from_parts(9_589_880, 247) + // Standard Error: 65 + .saturating_add(Weight::from_parts(667, 0).saturating_mul(n.into())) + // Standard Error: 65 + .saturating_add(Weight::from_parts(821, 0).saturating_mul(o.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(o.into())) @@ -889,10 +881,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_637_000 picoseconds. - Weight::from_parts(9_578_824, 247) - // Standard Error: 97 - .saturating_add(Weight::from_parts(735, 0).saturating_mul(n.into())) + // Minimum execution time: 8_527_000 picoseconds. + Weight::from_parts(9_507_817, 247) + // Standard Error: 73 + .saturating_add(Weight::from_parts(860, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -904,10 +896,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_202_000 picoseconds. - Weight::from_parts(9_192_652, 247) - // Standard Error: 90 - .saturating_add(Weight::from_parts(1_535, 0).saturating_mul(n.into())) + // Minimum execution time: 8_076_000 picoseconds. + Weight::from_parts(9_106_693, 247) + // Standard Error: 73 + .saturating_add(Weight::from_parts(1_668, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -918,10 +910,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 7_868_000 picoseconds. - Weight::from_parts(8_576_110, 247) - // Standard Error: 64 - .saturating_add(Weight::from_parts(1_126, 0).saturating_mul(n.into())) + // Minimum execution time: 7_571_000 picoseconds. + Weight::from_parts(8_454_639, 247) + // Standard Error: 69 + .saturating_add(Weight::from_parts(888, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -932,10 +924,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 9_377_000 picoseconds. - Weight::from_parts(10_379_997, 247) - // Standard Error: 100 - .saturating_add(Weight::from_parts(1_590, 0).saturating_mul(n.into())) + // Minimum execution time: 9_140_000 picoseconds. + Weight::from_parts(10_132_276, 247) + // Standard Error: 70 + .saturating_add(Weight::from_parts(1_866, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -944,36 +936,36 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_606_000 picoseconds. - Weight::from_parts(1_741_000, 0) + // Minimum execution time: 1_655_000 picoseconds. + Weight::from_parts(1_744_000, 0) } fn set_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_980_000 picoseconds. - Weight::from_parts(2_095_000, 0) + // Minimum execution time: 1_987_000 picoseconds. + Weight::from_parts(2_135_000, 0) } fn get_transient_storage_empty() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_636_000 picoseconds. - Weight::from_parts(1_701_000, 0) + // Minimum execution time: 1_641_000 picoseconds. + Weight::from_parts(1_751_000, 0) } fn get_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_749_000 picoseconds. - Weight::from_parts(1_847_000, 0) + // Minimum execution time: 1_732_000 picoseconds. + Weight::from_parts(1_891_000, 0) } fn rollback_transient_storage() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_201_000 picoseconds. - Weight::from_parts(1_395_000, 0) + // Minimum execution time: 1_237_000 picoseconds. + Weight::from_parts(1_378_000, 0) } /// The range of component `n` is `[0, 416]`. /// The range of component `o` is `[0, 416]`. @@ -981,50 +973,50 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_296_000 picoseconds. - Weight::from_parts(2_693_939, 0) - // Standard Error: 23 - .saturating_add(Weight::from_parts(146, 0).saturating_mul(n.into())) - // Standard Error: 23 - .saturating_add(Weight::from_parts(197, 0).saturating_mul(o.into())) + // Minimum execution time: 2_283_000 picoseconds. + Weight::from_parts(2_636_514, 0) + // Standard Error: 19 + .saturating_add(Weight::from_parts(296, 0).saturating_mul(n.into())) + // Standard Error: 19 + .saturating_add(Weight::from_parts(374, 0).saturating_mul(o.into())) } /// The range of component `n` is `[0, 416]`. fn seal_clear_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_105_000 picoseconds. - Weight::from_parts(2_584_360, 0) - // Standard Error: 27 - .saturating_add(Weight::from_parts(316, 0).saturating_mul(n.into())) + // Minimum execution time: 2_171_000 picoseconds. + Weight::from_parts(2_555_844, 0) + // Standard Error: 23 + .saturating_add(Weight::from_parts(468, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_get_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_104_000 picoseconds. - Weight::from_parts(2_370_667, 0) - // Standard Error: 18 - .saturating_add(Weight::from_parts(362, 0).saturating_mul(n.into())) + // Minimum execution time: 1_985_000 picoseconds. + Weight::from_parts(2_277_401, 0) + // Standard Error: 21 + .saturating_add(Weight::from_parts(394, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_contains_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_872_000 picoseconds. - Weight::from_parts(2_142_743, 0) - // Standard Error: 18 - .saturating_add(Weight::from_parts(175, 0).saturating_mul(n.into())) + // Minimum execution time: 1_784_000 picoseconds. + Weight::from_parts(2_034_472, 0) + // Standard Error: 16 + .saturating_add(Weight::from_parts(214, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_take_transient_storage(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_780_000 picoseconds. - Weight::from_parts(3_060_959, 0) + // Minimum execution time: 2_653_000 picoseconds. + Weight::from_parts(2_929_498, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -1041,14 +1033,14 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 1048576]`. fn seal_call(t: u32, d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1982` - // Estimated: `5447` - // Minimum execution time: 91_620_000 picoseconds. - Weight::from_parts(71_144_460, 5447) - // Standard Error: 190_178 - .saturating_add(Weight::from_parts(19_343_545, 0).saturating_mul(t.into())) - // Standard Error: 190_178 - .saturating_add(Weight::from_parts(25_751_547, 0).saturating_mul(d.into())) + // Measured: `1925` + // Estimated: `5390` + // Minimum execution time: 88_292_000 picoseconds. + Weight::from_parts(67_934_136, 5390) + // Standard Error: 161_519 + .saturating_add(Weight::from_parts(19_069_368, 0).saturating_mul(t.into())) + // Standard Error: 161_519 + .saturating_add(Weight::from_parts(25_783_515, 0).saturating_mul(d.into())) // Standard Error: 0 .saturating_add(Weight::from_parts(4, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) @@ -1064,16 +1056,16 @@ impl WeightInfo for SubstrateWeight { fn seal_call_precompile(d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `366 + d * (212 ±0)` - // Estimated: `2021 + d * (2022 ±0)` - // Minimum execution time: 24_855_000 picoseconds. - Weight::from_parts(11_891_687, 2021) - // Standard Error: 56_218 - .saturating_add(Weight::from_parts(14_087_455, 0).saturating_mul(d.into())) + // Estimated: `2021 + d * (2021 ±0)` + // Minimum execution time: 24_082_000 picoseconds. + Weight::from_parts(11_635_002, 2021) + // Standard Error: 32_873 + .saturating_add(Weight::from_parts(13_461_671, 0).saturating_mul(d.into())) // Standard Error: 0 - .saturating_add(Weight::from_parts(396, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(395, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(d.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) - .saturating_add(Weight::from_parts(0, 2022).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(0, 2021).saturating_mul(d.into())) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) @@ -1085,8 +1077,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1363` // Estimated: `4828` - // Minimum execution time: 32_172_000 picoseconds. - Weight::from_parts(33_534_000, 4828) + // Minimum execution time: 31_965_000 picoseconds. + Weight::from_parts(33_059_000, 4828) .saturating_add(T::DbWeight::get().reads(3_u64)) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) @@ -1102,136 +1094,138 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 131072]`. fn seal_instantiate(t: u32, d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1394` - // Estimated: `4860` - // Minimum execution time: 152_004_000 picoseconds. - Weight::from_parts(108_663_174, 4860) - // Standard Error: 504_319 - .saturating_add(Weight::from_parts(18_594_769, 0).saturating_mul(t.into())) - // Standard Error: 504_319 - .saturating_add(Weight::from_parts(30_804_841, 0).saturating_mul(d.into())) - // Standard Error: 5 - .saturating_add(Weight::from_parts(4_039, 0).saturating_mul(i.into())) + // Measured: `1413` + // Estimated: `4857 + d * (28 ±1) + t * (28 ±1)` + // Minimum execution time: 150_124_000 picoseconds. + Weight::from_parts(100_922_263, 4857) + // Standard Error: 553_691 + .saturating_add(Weight::from_parts(21_824_333, 0).saturating_mul(t.into())) + // Standard Error: 553_691 + .saturating_add(Weight::from_parts(30_090_103, 0).saturating_mul(d.into())) + // Standard Error: 6 + .saturating_add(Weight::from_parts(4_031, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 28).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(0, 28).saturating_mul(t.into())) } /// The range of component `n` is `[0, 1048576]`. fn sha2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_234_000 picoseconds. - Weight::from_parts(11_952_857, 0) + // Minimum execution time: 1_198_000 picoseconds. + Weight::from_parts(5_902_477, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_283, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_301, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn identity(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 734_000 picoseconds. - Weight::from_parts(701_255, 0) + // Minimum execution time: 710_000 picoseconds. + Weight::from_parts(583_657, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(149, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(148, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn ripemd_160(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_223_000 picoseconds. - Weight::from_parts(2_447_915, 0) - // Standard Error: 0 - .saturating_add(Weight::from_parts(3_789, 0).saturating_mul(n.into())) + // Minimum execution time: 1_145_000 picoseconds. + Weight::from_parts(5_218_490, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_770, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_keccak_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_113_000 picoseconds. - Weight::from_parts(1_182_000, 0) + // Minimum execution time: 1_133_000 picoseconds. + Weight::from_parts(12_018_626, 0) // Standard Error: 1 - .saturating_add(Weight::from_parts(3_677, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_591, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn hash_blake2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_658_000 picoseconds. - Weight::from_parts(1_723_000, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_521, 0).saturating_mul(n.into())) + // Minimum execution time: 1_594_000 picoseconds. + Weight::from_parts(16_080_940, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1_437, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn hash_blake2_128(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_656_000 picoseconds. - Weight::from_parts(4_821_621, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_492, 0).saturating_mul(n.into())) + // Minimum execution time: 1_493_000 picoseconds. + Weight::from_parts(12_215_603, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1_440, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048321]`. fn seal_sr25519_verify(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 43_703_000 picoseconds. - Weight::from_parts(87_853_224, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(4_768, 0).saturating_mul(n.into())) + // Minimum execution time: 42_270_000 picoseconds. + Weight::from_parts(93_835_987, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(5_026, 0).saturating_mul(n.into())) } fn ecdsa_recover() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 45_721_000 picoseconds. - Weight::from_parts(46_364_000, 0) + // Minimum execution time: 45_951_000 picoseconds. + Weight::from_parts(46_894_000, 0) } fn bn128_add() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 14_825_000 picoseconds. - Weight::from_parts(15_868_000, 0) + // Minimum execution time: 14_272_000 picoseconds. + Weight::from_parts(15_204_000, 0) } fn bn128_mul() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 995_239_000 picoseconds. - Weight::from_parts(999_139_000, 0) + // Minimum execution time: 980_350_000 picoseconds. + Weight::from_parts(988_695_000, 0) } /// The range of component `n` is `[0, 20]`. fn bn128_pairing(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 878_000 picoseconds. - Weight::from_parts(5_030_299_123, 0) - // Standard Error: 10_919_976 - .saturating_add(Weight::from_parts(6_054_223_916, 0).saturating_mul(n.into())) + // Minimum execution time: 760_000 picoseconds. + Weight::from_parts(4_873_448_313, 0) + // Standard Error: 10_617_668 + .saturating_add(Weight::from_parts(5_964_183_373, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1200]`. fn blake2f(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 935_000 picoseconds. - Weight::from_parts(1_220_086, 0) + // Minimum execution time: 914_000 picoseconds. + Weight::from_parts(1_152_510, 0) // Standard Error: 10 - .saturating_add(Weight::from_parts(29_448, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(28_870, 0).saturating_mul(n.into())) } fn seal_ecdsa_to_eth_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_803_000 picoseconds. - Weight::from_parts(12_970_000, 0) + // Minimum execution time: 12_862_000 picoseconds. + Weight::from_parts(13_004_000, 0) } /// Storage: `Revive::CodeInfoOf` (r:2 w:2) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) @@ -1244,47 +1238,47 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 1]`. fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `391 + r * (401 ±0)` - // Estimated: `6331 + r * (2129 ±0)` - // Minimum execution time: 14_932_000 picoseconds. - Weight::from_parts(15_917_336, 6331) - // Standard Error: 70_380 - .saturating_add(Weight::from_parts(48_772_363, 0).saturating_mul(r.into())) + // Measured: `391 + r * (468 ±0)` + // Estimated: `6331 + r * (2162 ±0)` + // Minimum execution time: 14_987_000 picoseconds. + Weight::from_parts(15_935_167, 6331) + // Standard Error: 52_524 + .saturating_add(Weight::from_parts(45_530_232, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2129).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2162).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn evm_opcode(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_174_000 picoseconds. - Weight::from_parts(1_193_820, 0) - // Standard Error: 72 - .saturating_add(Weight::from_parts(7_757, 0).saturating_mul(r.into())) + // Minimum execution time: 1_206_000 picoseconds. + Weight::from_parts(1_895_352, 0) + // Standard Error: 19 + .saturating_add(Weight::from_parts(6_177, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_398_000 picoseconds. - Weight::from_parts(54_093_845, 0) - // Standard Error: 448 - .saturating_add(Weight::from_parts(145_701, 0).saturating_mul(r.into())) + // Minimum execution time: 12_772_000 picoseconds. + Weight::from_parts(53_405_104, 0) + // Standard Error: 346 + .saturating_add(Weight::from_parts(125_622, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr_empty_loop(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_321_000 picoseconds. - Weight::from_parts(4_114_920, 0) - // Standard Error: 49 - .saturating_add(Weight::from_parts(71_850, 0).saturating_mul(r.into())) + // Minimum execution time: 3_147_000 picoseconds. + Weight::from_parts(1_883_710, 0) + // Standard Error: 47 + .saturating_add(Weight::from_parts(71_984, 0).saturating_mul(r.into())) } /// Storage: `Revive::PristineCode` (r:1 w:0) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -1293,10 +1287,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `457 + n * (1 ±0)` // Estimated: `3922 + n * (1 ±0)` - // Minimum execution time: 14_071_000 picoseconds. - Weight::from_parts(13_669_837, 3922) - // Standard Error: 6 - .saturating_add(Weight::from_parts(866, 0).saturating_mul(n.into())) + // Minimum execution time: 14_211_000 picoseconds. + Weight::from_parts(13_786_057, 3922) + // Standard Error: 14 + .saturating_add(Weight::from_parts(1_062, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1308,8 +1302,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `316` // Estimated: `6256` - // Minimum execution time: 11_950_000 picoseconds. - Weight::from_parts(12_604_000, 6256) + // Minimum execution time: 11_898_000 picoseconds. + Weight::from_parts(12_772_000, 6256) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -1323,15 +1317,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `439` // Estimated: `6794` - // Minimum execution time: 63_848_000 picoseconds. - Weight::from_parts(65_443_000, 6794) + // Minimum execution time: 62_964_000 picoseconds. + Weight::from_parts(64_865_000, 6794) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } /// Storage: `Revive::BlockHash` (r:1 w:1) /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) - /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::InflightTransactions` (r:1 w:1) + /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) @@ -1347,8 +1341,6 @@ impl WeightInfo for SubstrateWeight { Weight::from_parts(63_904_853, 6815) // Standard Error: 3_877 .saturating_add(Weight::from_parts(377_767, 0).saturating_mul(n.into())) - .saturating_add(T::DbWeight::get().reads(3_u64)) - .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 62).saturating_mul(n.into())) } /// The range of component `d` is `[0, 1000]`. @@ -1364,12 +1356,10 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 2).saturating_mul(d.into())) } - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// Storage: `Revive::BlockHash` (r:1 w:1) /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) - /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::InflightTransactions` (r:1 w:1) + /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) @@ -1377,23 +1367,19 @@ impl WeightInfo for SubstrateWeight { /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `e` is `[0, 100]`. - fn on_finalize_per_event(_e: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `1377` - // Estimated: `4842` - // Minimum execution time: 44_047_000 picoseconds. - Weight::from_parts(46_397_297, 4842) - .saturating_add(T::DbWeight::get().reads(4_u64)) + fn on_finalize_per_event(e: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `631 + e * (56 ±0)` + // Estimated: `2423 + e * (70 ±1)` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(13_249_502, 2423) + // Standard Error: 6_871 + .saturating_add(Weight::from_parts(1_198_945, 0).saturating_mul(e.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(e.into())) } - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Revive::BlockHash` (r:1 w:1) - /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) - /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) + /// Storage: `Revive::EthereumBlock` (r:0 w:1) /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) @@ -1401,14 +1387,15 @@ impl WeightInfo for SubstrateWeight { /// The range of component `d` is `[0, 16384]`. fn on_finalize_per_event_data(d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1377` - // Estimated: `4842` - // Minimum execution time: 44_057_000 picoseconds. - Weight::from_parts(45_847_456, 4842) - // Standard Error: 6 - .saturating_add(Weight::from_parts(17, 0).saturating_mul(d.into())) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `631 + d * (1 ±0)` + // Estimated: `2423 + d * (1 ±0)` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(13_249_502, 2423) + // Standard Error: 42 + .saturating_add(Weight::from_parts(3_336, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(d.into())) } } @@ -1420,8 +1407,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `147` // Estimated: `1632` - // Minimum execution time: 3_210_000 picoseconds. - Weight::from_parts(3_331_000, 1632) + // Minimum execution time: 3_103_000 picoseconds. + Weight::from_parts(3_288_000, 1632) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -1431,10 +1418,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `458 + k * (69 ±0)` // Estimated: `448 + k * (70 ±0)` - // Minimum execution time: 14_886_000 picoseconds. - Weight::from_parts(15_123_000, 448) - // Standard Error: 2_243 - .saturating_add(Weight::from_parts(1_272_153, 0).saturating_mul(k.into())) + // Minimum execution time: 14_393_000 picoseconds. + Weight::from_parts(14_689_000, 448) + // Standard Error: 1_032 + .saturating_add(Weight::from_parts(1_205_681, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -1458,10 +1445,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1172 + c * (1 ±0)` // Estimated: `7107 + c * (1 ±0)` - // Minimum execution time: 88_436_000 picoseconds. - Weight::from_parts(126_734_069, 7107) - // Standard Error: 11 - .saturating_add(Weight::from_parts(1_694, 0).saturating_mul(c.into())) + // Minimum execution time: 85_415_000 picoseconds. + Weight::from_parts(120_226_734, 7107) + // Standard Error: 10 + .saturating_add(Weight::from_parts(1_539, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -1479,14 +1466,12 @@ impl WeightInfo for () { /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// The range of component `c` is `[1, 10240]`. - fn call_with_evm_code_per_byte(c: u32, ) -> Weight { + fn call_with_evm_code_per_byte(_c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1112` // Estimated: `7051` - // Minimum execution time: 83_193_000 picoseconds. - Weight::from_parts(87_821_931, 7051) - // Standard Error: 33 - .saturating_add(Weight::from_parts(65, 0).saturating_mul(c.into())) + // Minimum execution time: 80_503_000 picoseconds. + Weight::from_parts(84_811_467, 7051) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1507,8 +1492,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `4516` // Estimated: `10456` - // Minimum execution time: 126_074_000 picoseconds. - Weight::from_parts(131_886_612, 10456) + // Minimum execution time: 123_461_000 picoseconds. + Weight::from_parts(128_775_940, 10456) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1532,12 +1517,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6811` - // Minimum execution time: 760_383_000 picoseconds. - Weight::from_parts(14_368_942, 6811) - // Standard Error: 37 - .saturating_add(Weight::from_parts(21_385, 0).saturating_mul(c.into())) - // Standard Error: 28 - .saturating_add(Weight::from_parts(5_571, 0).saturating_mul(i.into())) + // Minimum execution time: 749_503_000 picoseconds. + Weight::from_parts(59_829_896, 6811) + // Standard Error: 35 + .saturating_add(Weight::from_parts(20_233, 0).saturating_mul(c.into())) + // Standard Error: 27 + .saturating_add(Weight::from_parts(5_057, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -1553,8 +1538,6 @@ impl WeightInfo for () { /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) - /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:0 w:1) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `c` is `[0, 102400]`. @@ -1564,17 +1547,17 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6821 + d * (2475 ±0)` - // Minimum execution time: 297_538_000 picoseconds. - Weight::from_parts(206_359_544, 6821) - // Standard Error: 22 - .saturating_add(Weight::from_parts(15_660, 0).saturating_mul(c.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(450, 0).saturating_mul(i.into())) - // Standard Error: 1_474_523 - .saturating_add(Weight::from_parts(39_823_491, 0).saturating_mul(d.into())) - .saturating_add(RocksDbWeight::get().reads(8_u64)) + // Minimum execution time: 277_185_000 picoseconds. + Weight::from_parts(147_220_906, 6821) + // Standard Error: 29 + .saturating_add(Weight::from_parts(15_202, 0).saturating_mul(c.into())) + // Standard Error: 23 + .saturating_add(Weight::from_parts(642, 0).saturating_mul(i.into())) + // Standard Error: 1_934_039 + .saturating_add(Weight::from_parts(34_192_978, 0).saturating_mul(d.into())) + .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(d.into()))) - .saturating_add(RocksDbWeight::get().writes(7_u64)) + .saturating_add(RocksDbWeight::get().writes(6_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(d.into()))) .saturating_add(Weight::from_parts(0, 2475).saturating_mul(d.into())) } @@ -1595,12 +1578,12 @@ impl WeightInfo for () { /// The range of component `i` is `[0, 131072]`. fn instantiate(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1623` - // Estimated: `5077` - // Minimum execution time: 176_565_000 picoseconds. - Weight::from_parts(181_735_147, 5077) - // Standard Error: 10 - .saturating_add(Weight::from_parts(4_287, 0).saturating_mul(i.into())) + // Measured: `1610` + // Estimated: `5060` + // Minimum execution time: 168_670_000 picoseconds. + Weight::from_parts(175_522_603, 5060) + // Standard Error: 12 + .saturating_add(Weight::from_parts(4_260, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -1620,8 +1603,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734` - // Minimum execution time: 90_352_000 picoseconds. - Weight::from_parts(93_883_000, 7734) + // Minimum execution time: 86_819_000 picoseconds. + Weight::from_parts(89_536_000, 7734) .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1637,20 +1620,18 @@ impl WeightInfo for () { /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) - /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `d` is `[0, 1]`. fn eth_call(d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734 + d * (2475 ±0)` - // Minimum execution time: 96_966_000 picoseconds. - Weight::from_parts(101_532_838, 7734) - // Standard Error: 485_092 - .saturating_add(Weight::from_parts(25_810_261, 0).saturating_mul(d.into())) - .saturating_add(RocksDbWeight::get().reads(8_u64)) + // Minimum execution time: 85_649_000 picoseconds. + Weight::from_parts(90_277_271, 7734) + // Standard Error: 333_872 + .saturating_add(Weight::from_parts(26_832_228, 0).saturating_mul(d.into())) + .saturating_add(RocksDbWeight::get().reads(7_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(d.into()))) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(d.into()))) .saturating_add(Weight::from_parts(0, 2475).saturating_mul(d.into())) } @@ -1665,10 +1646,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `303` // Estimated: `3768` - // Minimum execution time: 57_740_000 picoseconds. - Weight::from_parts(50_519_259, 3768) - // Standard Error: 19 - .saturating_add(Weight::from_parts(14_777, 0).saturating_mul(c.into())) + // Minimum execution time: 56_015_000 picoseconds. + Weight::from_parts(44_756_550, 3768) + // Standard Error: 17 + .saturating_add(Weight::from_parts(14_377, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1682,8 +1663,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `458` // Estimated: `3923` - // Minimum execution time: 53_859_000 picoseconds. - Weight::from_parts(55_170_000, 3923) + // Minimum execution time: 51_807_000 picoseconds. + Weight::from_parts(53_562_000, 3923) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1701,8 +1682,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `797` // Estimated: `6737` - // Minimum execution time: 67_863_000 picoseconds. - Weight::from_parts(69_274_000, 6737) + // Minimum execution time: 65_431_000 picoseconds. + Weight::from_parts(66_763_000, 6737) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -1714,8 +1695,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `510` // Estimated: `3975` - // Minimum execution time: 56_675_000 picoseconds. - Weight::from_parts(57_728_000, 3975) + // Minimum execution time: 54_271_000 picoseconds. + Weight::from_parts(55_618_000, 3975) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1727,8 +1708,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `93` // Estimated: `3558` - // Minimum execution time: 40_236_000 picoseconds. - Weight::from_parts(41_542_000, 3558) + // Minimum execution time: 38_990_000 picoseconds. + Weight::from_parts(39_656_000, 3558) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1740,8 +1721,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 13_229_000 picoseconds. - Weight::from_parts(13_841_000, 3610) + // Minimum execution time: 13_086_000 picoseconds. + Weight::from_parts(13_681_000, 3610) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// The range of component `r` is `[0, 1600]`. @@ -1749,24 +1730,24 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_024_000 picoseconds. - Weight::from_parts(9_239_929, 0) - // Standard Error: 289 - .saturating_add(Weight::from_parts(175_656, 0).saturating_mul(r.into())) + // Minimum execution time: 7_423_000 picoseconds. + Weight::from_parts(9_149_999, 0) + // Standard Error: 227 + .saturating_add(Weight::from_parts(180_894, 0).saturating_mul(r.into())) } fn seal_caller() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 326_000 picoseconds. - Weight::from_parts(360_000, 0) + // Minimum execution time: 294_000 picoseconds. + Weight::from_parts(330_000, 0) } fn seal_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 319_000 picoseconds. - Weight::from_parts(348_000, 0) + // Minimum execution time: 270_000 picoseconds. + Weight::from_parts(317_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -1774,8 +1755,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `567` // Estimated: `4032` - // Minimum execution time: 8_005_000 picoseconds. - Weight::from_parts(8_473_000, 4032) + // Minimum execution time: 7_773_000 picoseconds. + Weight::from_parts(8_282_000, 4032) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) @@ -1784,16 +1765,16 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `403` // Estimated: `3868` - // Minimum execution time: 9_367_000 picoseconds. - Weight::from_parts(9_726_000, 3868) + // Minimum execution time: 9_567_000 picoseconds. + Weight::from_parts(9_975_000, 3868) .saturating_add(RocksDbWeight::get().reads(1_u64)) } fn own_code_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `366` + // Measured: `0` // Estimated: `0` - // Minimum execution time: 6_717_000 picoseconds. - Weight::from_parts(7_168_000, 0) + // Minimum execution time: 252_000 picoseconds. + Weight::from_parts(301_000, 0) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) @@ -1803,51 +1784,51 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `475` // Estimated: `3940` - // Minimum execution time: 12_765_000 picoseconds. - Weight::from_parts(13_443_000, 3940) + // Minimum execution time: 13_090_000 picoseconds. + Weight::from_parts(13_527_000, 3940) .saturating_add(RocksDbWeight::get().reads(2_u64)) } fn caller_is_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 976_000 picoseconds. - Weight::from_parts(1_083_000, 0) + // Minimum execution time: 337_000 picoseconds. + Weight::from_parts(375_000, 0) } fn caller_is_root() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 930_000 picoseconds. - Weight::from_parts(1_078_000, 0) + // Minimum execution time: 258_000 picoseconds. + Weight::from_parts(300_000, 0) } fn seal_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 296_000 picoseconds. - Weight::from_parts(356_000, 0) + // Minimum execution time: 308_000 picoseconds. + Weight::from_parts(352_000, 0) } fn weight_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 924_000 picoseconds. - Weight::from_parts(1_041_000, 0) + // Minimum execution time: 687_000 picoseconds. + Weight::from_parts(776_000, 0) } fn seal_ref_time_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 281_000 picoseconds. - Weight::from_parts(317_000, 0) + // Minimum execution time: 247_000 picoseconds. + Weight::from_parts(278_000, 0) } fn seal_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `469` + // Measured: `540` // Estimated: `0` - // Minimum execution time: 12_323_000 picoseconds. - Weight::from_parts(12_690_000, 0) + // Minimum execution time: 12_447_000 picoseconds. + Weight::from_parts(13_433_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -1859,8 +1840,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `791` // Estimated: `4256` - // Minimum execution time: 18_748_000 picoseconds. - Weight::from_parts(19_140_000, 4256) + // Minimum execution time: 18_806_000 picoseconds. + Weight::from_parts(19_217_000, 4256) .saturating_add(RocksDbWeight::get().reads(3_u64)) } /// Storage: `Revive::ImmutableDataOf` (r:1 w:0) @@ -1870,10 +1851,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `271 + n * (1 ±0)` // Estimated: `3736 + n * (1 ±0)` - // Minimum execution time: 5_915_000 picoseconds. - Weight::from_parts(6_623_622, 3736) - // Standard Error: 5 - .saturating_add(Weight::from_parts(544, 0).saturating_mul(n.into())) + // Minimum execution time: 5_800_000 picoseconds. + Weight::from_parts(6_657_021, 3736) + // Standard Error: 6 + .saturating_add(Weight::from_parts(595, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1884,67 +1865,67 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_959_000 picoseconds. - Weight::from_parts(2_250_085, 0) - // Standard Error: 3 - .saturating_add(Weight::from_parts(564, 0).saturating_mul(n.into())) + // Minimum execution time: 2_057_000 picoseconds. + Weight::from_parts(2_320_795, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(558, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().writes(1_u64)) } fn seal_value_transferred() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 306_000 picoseconds. - Weight::from_parts(344_000, 0) + // Minimum execution time: 260_000 picoseconds. + Weight::from_parts(293_000, 0) } fn minimum_balance() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_222_000 picoseconds. - Weight::from_parts(1_306_000, 0) + // Minimum execution time: 233_000 picoseconds. + Weight::from_parts(291_000, 0) } fn seal_return_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 254_000 picoseconds. - Weight::from_parts(294_000, 0) + // Minimum execution time: 232_000 picoseconds. + Weight::from_parts(262_000, 0) } fn seal_call_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 262_000 picoseconds. - Weight::from_parts(300_000, 0) + // Minimum execution time: 234_000 picoseconds. + Weight::from_parts(273_000, 0) } fn seal_gas_limit() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 534_000 picoseconds. - Weight::from_parts(594_000, 0) + // Minimum execution time: 441_000 picoseconds. + Weight::from_parts(523_000, 0) } fn seal_gas_price() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 270_000 picoseconds. - Weight::from_parts(309_000, 0) + // Minimum execution time: 254_000 picoseconds. + Weight::from_parts(294_000, 0) } fn seal_base_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 273_000 picoseconds. - Weight::from_parts(311_000, 0) + // Minimum execution time: 229_000 picoseconds. + Weight::from_parts(269_000, 0) } fn seal_block_number() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 236_000 picoseconds. - Weight::from_parts(317_000, 0) + // Minimum execution time: 254_000 picoseconds. + Weight::from_parts(290_000, 0) } /// Storage: `Session::Validators` (r:1 w:0) /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -1952,60 +1933,58 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `141` // Estimated: `1626` - // Minimum execution time: 22_010_000 picoseconds. - Weight::from_parts(22_637_000, 1626) + // Minimum execution time: 21_852_000 picoseconds. + Weight::from_parts(22_526_000, 1626) .saturating_add(RocksDbWeight::get().reads(1_u64)) } - /// Storage: `Revive::BlockHash` (r:1 w:0) - /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) /// Storage: `System::BlockHash` (r:1 w:0) /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `Measured`) fn seal_block_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `295` - // Estimated: `3760` - // Minimum execution time: 8_650_000 picoseconds. - Weight::from_parts(9_015_000, 3760) - .saturating_add(RocksDbWeight::get().reads(2_u64)) + // Measured: `30` + // Estimated: `3495` + // Minimum execution time: 3_600_000 picoseconds. + Weight::from_parts(3_830_000, 3495) + .saturating_add(RocksDbWeight::get().reads(1_u64)) } fn seal_now() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 267_000 picoseconds. - Weight::from_parts(327_000, 0) + // Minimum execution time: 239_000 picoseconds. + Weight::from_parts(276_000, 0) } fn seal_weight_to_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_553_000 picoseconds. - Weight::from_parts(1_725_000, 0) + // Minimum execution time: 1_595_000 picoseconds. + Weight::from_parts(1_665_000, 0) } /// The range of component `n` is `[0, 1048572]`. fn seal_copy_to_contract(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 442_000 picoseconds. - Weight::from_parts(41_341, 0) + // Minimum execution time: 402_000 picoseconds. + Weight::from_parts(496_964, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(240, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(239, 0).saturating_mul(n.into())) } fn seal_call_data_load() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 264_000 picoseconds. - Weight::from_parts(309_000, 0) + // Minimum execution time: 250_000 picoseconds. + Weight::from_parts(289_000, 0) } /// The range of component `n` is `[0, 1048576]`. fn seal_call_data_copy(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 247_000 picoseconds. - Weight::from_parts(270_000, 0) + // Minimum execution time: 230_000 picoseconds. + Weight::from_parts(255_000, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(151, 0).saturating_mul(n.into())) } @@ -2014,8 +1993,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 304_000 picoseconds. - Weight::from_parts(514_465, 0) + // Minimum execution time: 253_000 picoseconds. + Weight::from_parts(544_296, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(237, 0).saturating_mul(n.into())) } @@ -2038,17 +2017,17 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 1]`. fn seal_terminate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `583 + r * (368 ±0)` - // Estimated: `4048 + r * (2208 ±0)` - // Minimum execution time: 16_705_000 picoseconds. - Weight::from_parts(17_856_526, 4048) - // Standard Error: 65_022 - .saturating_add(Weight::from_parts(46_778_473, 0).saturating_mul(r.into())) + // Measured: `583 + r * (402 ±0)` + // Estimated: `4048 + r * (2225 ±0)` + // Minimum execution time: 16_727_000 picoseconds. + Weight::from_parts(17_739_285, 4048) + // Standard Error: 59_932 + .saturating_add(Weight::from_parts(44_553_014, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2208).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2225).saturating_mul(r.into())) } /// The range of component `t` is `[0, 4]`. /// The range of component `n` is `[0, 416]`. @@ -2056,12 +2035,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_560_000 picoseconds. - Weight::from_parts(4_530_282, 0) - // Standard Error: 3_946 - .saturating_add(Weight::from_parts(250_732, 0).saturating_mul(t.into())) - // Standard Error: 43 - .saturating_add(Weight::from_parts(1_229, 0).saturating_mul(n.into())) + // Minimum execution time: 4_226_000 picoseconds. + Weight::from_parts(4_252_357, 0) + // Standard Error: 3_401 + .saturating_add(Weight::from_parts(233_040, 0).saturating_mul(t.into())) + // Standard Error: 37 + .saturating_add(Weight::from_parts(1_172, 0).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -2069,8 +2048,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 7_204_000 picoseconds. - Weight::from_parts(7_628_000, 648) + // Minimum execution time: 6_909_000 picoseconds. + Weight::from_parts(7_499_000, 648) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -2079,8 +2058,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 41_838_000 picoseconds. - Weight::from_parts(42_977_000, 10658) + // Minimum execution time: 41_173_000 picoseconds. + Weight::from_parts(42_303_000, 10658) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -2089,8 +2068,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 8_403_000 picoseconds. - Weight::from_parts(8_907_000, 648) + // Minimum execution time: 8_428_000 picoseconds. + Weight::from_parts(8_817_000, 648) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2100,8 +2079,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 44_050_000 picoseconds. - Weight::from_parts(45_950_000, 10658) + // Minimum execution time: 43_627_000 picoseconds. + Weight::from_parts(44_777_000, 10658) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2113,12 +2092,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + o * (1 ±0)` // Estimated: `247 + o * (1 ±0)` - // Minimum execution time: 9_101_000 picoseconds. - Weight::from_parts(9_596_435, 247) - // Standard Error: 49 - .saturating_add(Weight::from_parts(700, 0).saturating_mul(n.into())) - // Standard Error: 49 - .saturating_add(Weight::from_parts(702, 0).saturating_mul(o.into())) + // Minimum execution time: 8_934_000 picoseconds. + Weight::from_parts(9_589_880, 247) + // Standard Error: 65 + .saturating_add(Weight::from_parts(667, 0).saturating_mul(n.into())) + // Standard Error: 65 + .saturating_add(Weight::from_parts(821, 0).saturating_mul(o.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(o.into())) @@ -2130,10 +2109,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_637_000 picoseconds. - Weight::from_parts(9_578_824, 247) - // Standard Error: 97 - .saturating_add(Weight::from_parts(735, 0).saturating_mul(n.into())) + // Minimum execution time: 8_527_000 picoseconds. + Weight::from_parts(9_507_817, 247) + // Standard Error: 73 + .saturating_add(Weight::from_parts(860, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -2145,10 +2124,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_202_000 picoseconds. - Weight::from_parts(9_192_652, 247) - // Standard Error: 90 - .saturating_add(Weight::from_parts(1_535, 0).saturating_mul(n.into())) + // Minimum execution time: 8_076_000 picoseconds. + Weight::from_parts(9_106_693, 247) + // Standard Error: 73 + .saturating_add(Weight::from_parts(1_668, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -2159,10 +2138,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 7_868_000 picoseconds. - Weight::from_parts(8_576_110, 247) - // Standard Error: 64 - .saturating_add(Weight::from_parts(1_126, 0).saturating_mul(n.into())) + // Minimum execution time: 7_571_000 picoseconds. + Weight::from_parts(8_454_639, 247) + // Standard Error: 69 + .saturating_add(Weight::from_parts(888, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -2173,10 +2152,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 9_377_000 picoseconds. - Weight::from_parts(10_379_997, 247) - // Standard Error: 100 - .saturating_add(Weight::from_parts(1_590, 0).saturating_mul(n.into())) + // Minimum execution time: 9_140_000 picoseconds. + Weight::from_parts(10_132_276, 247) + // Standard Error: 70 + .saturating_add(Weight::from_parts(1_866, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -2185,36 +2164,36 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_606_000 picoseconds. - Weight::from_parts(1_741_000, 0) + // Minimum execution time: 1_655_000 picoseconds. + Weight::from_parts(1_744_000, 0) } fn set_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_980_000 picoseconds. - Weight::from_parts(2_095_000, 0) + // Minimum execution time: 1_987_000 picoseconds. + Weight::from_parts(2_135_000, 0) } fn get_transient_storage_empty() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_636_000 picoseconds. - Weight::from_parts(1_701_000, 0) + // Minimum execution time: 1_641_000 picoseconds. + Weight::from_parts(1_751_000, 0) } fn get_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_749_000 picoseconds. - Weight::from_parts(1_847_000, 0) + // Minimum execution time: 1_732_000 picoseconds. + Weight::from_parts(1_891_000, 0) } fn rollback_transient_storage() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_201_000 picoseconds. - Weight::from_parts(1_395_000, 0) + // Minimum execution time: 1_237_000 picoseconds. + Weight::from_parts(1_378_000, 0) } /// The range of component `n` is `[0, 416]`. /// The range of component `o` is `[0, 416]`. @@ -2222,50 +2201,50 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_296_000 picoseconds. - Weight::from_parts(2_693_939, 0) - // Standard Error: 23 - .saturating_add(Weight::from_parts(146, 0).saturating_mul(n.into())) - // Standard Error: 23 - .saturating_add(Weight::from_parts(197, 0).saturating_mul(o.into())) + // Minimum execution time: 2_283_000 picoseconds. + Weight::from_parts(2_636_514, 0) + // Standard Error: 19 + .saturating_add(Weight::from_parts(296, 0).saturating_mul(n.into())) + // Standard Error: 19 + .saturating_add(Weight::from_parts(374, 0).saturating_mul(o.into())) } /// The range of component `n` is `[0, 416]`. fn seal_clear_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_105_000 picoseconds. - Weight::from_parts(2_584_360, 0) - // Standard Error: 27 - .saturating_add(Weight::from_parts(316, 0).saturating_mul(n.into())) + // Minimum execution time: 2_171_000 picoseconds. + Weight::from_parts(2_555_844, 0) + // Standard Error: 23 + .saturating_add(Weight::from_parts(468, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_get_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_104_000 picoseconds. - Weight::from_parts(2_370_667, 0) - // Standard Error: 18 - .saturating_add(Weight::from_parts(362, 0).saturating_mul(n.into())) + // Minimum execution time: 1_985_000 picoseconds. + Weight::from_parts(2_277_401, 0) + // Standard Error: 21 + .saturating_add(Weight::from_parts(394, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_contains_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_872_000 picoseconds. - Weight::from_parts(2_142_743, 0) - // Standard Error: 18 - .saturating_add(Weight::from_parts(175, 0).saturating_mul(n.into())) + // Minimum execution time: 1_784_000 picoseconds. + Weight::from_parts(2_034_472, 0) + // Standard Error: 16 + .saturating_add(Weight::from_parts(214, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_take_transient_storage(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_780_000 picoseconds. - Weight::from_parts(3_060_959, 0) + // Minimum execution time: 2_653_000 picoseconds. + Weight::from_parts(2_929_498, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -2282,14 +2261,14 @@ impl WeightInfo for () { /// The range of component `i` is `[0, 1048576]`. fn seal_call(t: u32, d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1982` - // Estimated: `5447` - // Minimum execution time: 91_620_000 picoseconds. - Weight::from_parts(71_144_460, 5447) - // Standard Error: 190_178 - .saturating_add(Weight::from_parts(19_343_545, 0).saturating_mul(t.into())) - // Standard Error: 190_178 - .saturating_add(Weight::from_parts(25_751_547, 0).saturating_mul(d.into())) + // Measured: `1925` + // Estimated: `5390` + // Minimum execution time: 88_292_000 picoseconds. + Weight::from_parts(67_934_136, 5390) + // Standard Error: 161_519 + .saturating_add(Weight::from_parts(19_069_368, 0).saturating_mul(t.into())) + // Standard Error: 161_519 + .saturating_add(Weight::from_parts(25_783_515, 0).saturating_mul(d.into())) // Standard Error: 0 .saturating_add(Weight::from_parts(4, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) @@ -2305,16 +2284,16 @@ impl WeightInfo for () { fn seal_call_precompile(d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `366 + d * (212 ±0)` - // Estimated: `2021 + d * (2022 ±0)` - // Minimum execution time: 24_855_000 picoseconds. - Weight::from_parts(11_891_687, 2021) - // Standard Error: 56_218 - .saturating_add(Weight::from_parts(14_087_455, 0).saturating_mul(d.into())) + // Estimated: `2021 + d * (2021 ±0)` + // Minimum execution time: 24_082_000 picoseconds. + Weight::from_parts(11_635_002, 2021) + // Standard Error: 32_873 + .saturating_add(Weight::from_parts(13_461_671, 0).saturating_mul(d.into())) // Standard Error: 0 - .saturating_add(Weight::from_parts(396, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(395, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(d.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(d.into()))) - .saturating_add(Weight::from_parts(0, 2022).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(0, 2021).saturating_mul(d.into())) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) @@ -2326,8 +2305,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1363` // Estimated: `4828` - // Minimum execution time: 32_172_000 picoseconds. - Weight::from_parts(33_534_000, 4828) + // Minimum execution time: 31_965_000 picoseconds. + Weight::from_parts(33_059_000, 4828) .saturating_add(RocksDbWeight::get().reads(3_u64)) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) @@ -2343,136 +2322,138 @@ impl WeightInfo for () { /// The range of component `i` is `[0, 131072]`. fn seal_instantiate(t: u32, d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1394` - // Estimated: `4860` - // Minimum execution time: 152_004_000 picoseconds. - Weight::from_parts(108_663_174, 4860) - // Standard Error: 504_319 - .saturating_add(Weight::from_parts(18_594_769, 0).saturating_mul(t.into())) - // Standard Error: 504_319 - .saturating_add(Weight::from_parts(30_804_841, 0).saturating_mul(d.into())) - // Standard Error: 5 - .saturating_add(Weight::from_parts(4_039, 0).saturating_mul(i.into())) + // Measured: `1413` + // Estimated: `4857 + d * (28 ±1) + t * (28 ±1)` + // Minimum execution time: 150_124_000 picoseconds. + Weight::from_parts(100_922_263, 4857) + // Standard Error: 553_691 + .saturating_add(Weight::from_parts(21_824_333, 0).saturating_mul(t.into())) + // Standard Error: 553_691 + .saturating_add(Weight::from_parts(30_090_103, 0).saturating_mul(d.into())) + // Standard Error: 6 + .saturating_add(Weight::from_parts(4_031, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) + .saturating_add(Weight::from_parts(0, 28).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(0, 28).saturating_mul(t.into())) } /// The range of component `n` is `[0, 1048576]`. fn sha2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_234_000 picoseconds. - Weight::from_parts(11_952_857, 0) + // Minimum execution time: 1_198_000 picoseconds. + Weight::from_parts(5_902_477, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_283, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_301, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn identity(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 734_000 picoseconds. - Weight::from_parts(701_255, 0) + // Minimum execution time: 710_000 picoseconds. + Weight::from_parts(583_657, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(149, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(148, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn ripemd_160(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_223_000 picoseconds. - Weight::from_parts(2_447_915, 0) - // Standard Error: 0 - .saturating_add(Weight::from_parts(3_789, 0).saturating_mul(n.into())) + // Minimum execution time: 1_145_000 picoseconds. + Weight::from_parts(5_218_490, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(3_770, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_keccak_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_113_000 picoseconds. - Weight::from_parts(1_182_000, 0) + // Minimum execution time: 1_133_000 picoseconds. + Weight::from_parts(12_018_626, 0) // Standard Error: 1 - .saturating_add(Weight::from_parts(3_677, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_591, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn hash_blake2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_658_000 picoseconds. - Weight::from_parts(1_723_000, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_521, 0).saturating_mul(n.into())) + // Minimum execution time: 1_594_000 picoseconds. + Weight::from_parts(16_080_940, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1_437, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn hash_blake2_128(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_656_000 picoseconds. - Weight::from_parts(4_821_621, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(1_492, 0).saturating_mul(n.into())) + // Minimum execution time: 1_493_000 picoseconds. + Weight::from_parts(12_215_603, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1_440, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048321]`. fn seal_sr25519_verify(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 43_703_000 picoseconds. - Weight::from_parts(87_853_224, 0) - // Standard Error: 5 - .saturating_add(Weight::from_parts(4_768, 0).saturating_mul(n.into())) + // Minimum execution time: 42_270_000 picoseconds. + Weight::from_parts(93_835_987, 0) + // Standard Error: 4 + .saturating_add(Weight::from_parts(5_026, 0).saturating_mul(n.into())) } fn ecdsa_recover() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 45_721_000 picoseconds. - Weight::from_parts(46_364_000, 0) + // Minimum execution time: 45_951_000 picoseconds. + Weight::from_parts(46_894_000, 0) } fn bn128_add() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 14_825_000 picoseconds. - Weight::from_parts(15_868_000, 0) + // Minimum execution time: 14_272_000 picoseconds. + Weight::from_parts(15_204_000, 0) } fn bn128_mul() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 995_239_000 picoseconds. - Weight::from_parts(999_139_000, 0) + // Minimum execution time: 980_350_000 picoseconds. + Weight::from_parts(988_695_000, 0) } /// The range of component `n` is `[0, 20]`. fn bn128_pairing(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 878_000 picoseconds. - Weight::from_parts(5_030_299_123, 0) - // Standard Error: 10_919_976 - .saturating_add(Weight::from_parts(6_054_223_916, 0).saturating_mul(n.into())) + // Minimum execution time: 760_000 picoseconds. + Weight::from_parts(4_873_448_313, 0) + // Standard Error: 10_617_668 + .saturating_add(Weight::from_parts(5_964_183_373, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1200]`. fn blake2f(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 935_000 picoseconds. - Weight::from_parts(1_220_086, 0) + // Minimum execution time: 914_000 picoseconds. + Weight::from_parts(1_152_510, 0) // Standard Error: 10 - .saturating_add(Weight::from_parts(29_448, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(28_870, 0).saturating_mul(n.into())) } fn seal_ecdsa_to_eth_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_803_000 picoseconds. - Weight::from_parts(12_970_000, 0) + // Minimum execution time: 12_862_000 picoseconds. + Weight::from_parts(13_004_000, 0) } /// Storage: `Revive::CodeInfoOf` (r:2 w:2) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) @@ -2485,47 +2466,47 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 1]`. fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `391 + r * (401 ±0)` - // Estimated: `6331 + r * (2129 ±0)` - // Minimum execution time: 14_932_000 picoseconds. - Weight::from_parts(15_917_336, 6331) - // Standard Error: 70_380 - .saturating_add(Weight::from_parts(48_772_363, 0).saturating_mul(r.into())) + // Measured: `391 + r * (468 ±0)` + // Estimated: `6331 + r * (2162 ±0)` + // Minimum execution time: 14_987_000 picoseconds. + Weight::from_parts(15_935_167, 6331) + // Standard Error: 52_524 + .saturating_add(Weight::from_parts(45_530_232, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2129).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2162).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn evm_opcode(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_174_000 picoseconds. - Weight::from_parts(1_193_820, 0) - // Standard Error: 72 - .saturating_add(Weight::from_parts(7_757, 0).saturating_mul(r.into())) + // Minimum execution time: 1_206_000 picoseconds. + Weight::from_parts(1_895_352, 0) + // Standard Error: 19 + .saturating_add(Weight::from_parts(6_177, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_398_000 picoseconds. - Weight::from_parts(54_093_845, 0) - // Standard Error: 448 - .saturating_add(Weight::from_parts(145_701, 0).saturating_mul(r.into())) + // Minimum execution time: 12_772_000 picoseconds. + Weight::from_parts(53_405_104, 0) + // Standard Error: 346 + .saturating_add(Weight::from_parts(125_622, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr_empty_loop(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_321_000 picoseconds. - Weight::from_parts(4_114_920, 0) - // Standard Error: 49 - .saturating_add(Weight::from_parts(71_850, 0).saturating_mul(r.into())) + // Minimum execution time: 3_147_000 picoseconds. + Weight::from_parts(1_883_710, 0) + // Standard Error: 47 + .saturating_add(Weight::from_parts(71_984, 0).saturating_mul(r.into())) } /// Storage: `Revive::PristineCode` (r:1 w:0) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -2534,10 +2515,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `457 + n * (1 ±0)` // Estimated: `3922 + n * (1 ±0)` - // Minimum execution time: 14_071_000 picoseconds. - Weight::from_parts(13_669_837, 3922) - // Standard Error: 6 - .saturating_add(Weight::from_parts(866, 0).saturating_mul(n.into())) + // Minimum execution time: 14_211_000 picoseconds. + Weight::from_parts(13_786_057, 3922) + // Standard Error: 14 + .saturating_add(Weight::from_parts(1_062, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -2549,8 +2530,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `316` // Estimated: `6256` - // Minimum execution time: 11_950_000 picoseconds. - Weight::from_parts(12_604_000, 6256) + // Minimum execution time: 11_898_000 picoseconds. + Weight::from_parts(12_772_000, 6256) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -2564,15 +2545,15 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `439` // Estimated: `6794` - // Minimum execution time: 63_848_000 picoseconds. - Weight::from_parts(65_443_000, 6794) + // Minimum execution time: 62_964_000 picoseconds. + Weight::from_parts(64_865_000, 6794) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } /// Storage: `Revive::BlockHash` (r:1 w:1) /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) - /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::InflightTransactions` (r:1 w:1) + /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) @@ -2604,13 +2585,13 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 2).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(0, 62).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(0, 2).saturating_mul(d.into())) } - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// Storage: `Revive::BlockHash` (r:1 w:1) /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) - /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::InflightTransactions` (r:1 w:1) + /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) @@ -2618,23 +2599,19 @@ impl WeightInfo for () { /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `e` is `[0, 100]`. - fn on_finalize_per_event(_e: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `1377` - // Estimated: `4842` - // Minimum execution time: 44_047_000 picoseconds. - Weight::from_parts(46_397_297, 4842) - .saturating_add(RocksDbWeight::get().reads(4_u64)) + fn on_finalize_per_event(e: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `631 + e * (56 ±0)` + // Estimated: `2423 + e * (70 ±1)` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(13_249_502, 2423) + // Standard Error: 6_871 + .saturating_add(Weight::from_parts(1_198_945, 0).saturating_mul(e.into())) + .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(e.into())) } - /// Storage: `System::Account` (r:1 w:0) - /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) - /// Storage: `Revive::BlockHash` (r:1 w:1) - /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) - /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) - /// Storage: `Timestamp::Now` (r:1 w:0) - /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) + /// Storage: `Revive::EthereumBlock` (r:0 w:1) /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) @@ -2642,13 +2619,14 @@ impl WeightInfo for () { /// The range of component `d` is `[0, 16384]`. fn on_finalize_per_event_data(d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1377` - // Estimated: `4842` - // Minimum execution time: 44_057_000 picoseconds. - Weight::from_parts(45_847_456, 4842) - // Standard Error: 6 - .saturating_add(Weight::from_parts(17, 0).saturating_mul(d.into())) - .saturating_add(RocksDbWeight::get().reads(4_u64)) + // Measured: `631 + d * (1 ±0)` + // Estimated: `2423 + d * (1 ±0)` + // Minimum execution time: 20_000_000 picoseconds. + Weight::from_parts(13_249_502, 2423) + // Standard Error: 42 + .saturating_add(Weight::from_parts(3_336, 0).saturating_mul(d.into())) + .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 1).saturating_mul(d.into())) } } From 72d75f52c565565e00c9a9cfe6d511b26909078b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 24 Sep 2025 08:58:12 +0000 Subject: [PATCH 185/273] Revert "Add EnsureEVM origin to pallets" This reverts commit 56ba0d16a0b1cb0f911606010e64e0209004730d. --- cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs | 1 - polkadot/xcm/pallet-xcm/src/mock.rs | 1 - substrate/frame/assets/src/mock.rs | 1 - 3 files changed, 3 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 b5e9a9dae7824..f707e83be1ac5 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -1192,7 +1192,6 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; // 10^(18 - 12) Eth is 10^18, Native is 10^12. type EthGasEncoder = (); type FindAuthor = ::FindAuthor; - type EVMOrigin = frame_system::EnsureNever; } parameter_types! { diff --git a/polkadot/xcm/pallet-xcm/src/mock.rs b/polkadot/xcm/pallet-xcm/src/mock.rs index 3b5eedbce43a1..6d159013cf8ca 100644 --- a/polkadot/xcm/pallet-xcm/src/mock.rs +++ b/polkadot/xcm/pallet-xcm/src/mock.rs @@ -342,7 +342,6 @@ impl pallet_revive::Config for Test { type Time = Timestamp; type UploadOrigin = frame_system::EnsureSigned; type InstantiateOrigin = frame_system::EnsureSigned; - type EVMOrigin = frame_system::EnsureNever; } // This child parachain is a system parachain trusted to teleport native token. diff --git a/substrate/frame/assets/src/mock.rs b/substrate/frame/assets/src/mock.rs index 9829f032932ee..78fb2b78e4f47 100644 --- a/substrate/frame/assets/src/mock.rs +++ b/substrate/frame/assets/src/mock.rs @@ -61,7 +61,6 @@ impl pallet_revive::Config for Test { type AddressMapper = pallet_revive::TestAccountMapper; type Currency = Balances; type Precompiles = (ERC20>,); - type EVMOrigin = frame_system::EnsureNever; } pub struct AssetsCallbackHandle; From addc6a44c943c5a3e9ffc337b6854415f9e62c14 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 24 Sep 2025 08:58:14 +0000 Subject: [PATCH 186/273] Revert "frame: Ensure EVMOrigin for eth_call and eth_instantiate" This reverts commit 0e5f274153a0200b3b1553717e9b9eddb6f83deb. Signed-off-by: Alexandru Vasile --- .../frame/revive/dev-node/runtime/src/lib.rs | 1 - substrate/frame/revive/src/lib.rs | 21 +++---------------- substrate/frame/revive/src/tests.rs | 1 - 3 files changed, 3 insertions(+), 20 deletions(-) diff --git a/substrate/frame/revive/dev-node/runtime/src/lib.rs b/substrate/frame/revive/dev-node/runtime/src/lib.rs index e0f07afd9304d..fcfc12afc66e7 100644 --- a/substrate/frame/revive/dev-node/runtime/src/lib.rs +++ b/substrate/frame/revive/dev-node/runtime/src/lib.rs @@ -328,7 +328,6 @@ impl pallet_revive::Config for Runtime { type NativeToEthRatio = ConstU32<1_000_000>; type UploadOrigin = EnsureSigned; type InstantiateOrigin = EnsureSigned; - type EVMOrigin = frame_system::EnsureNever; type Time = Timestamp; } diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index d286254ea8bf0..182c86fc006c2 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -78,7 +78,7 @@ use frame_support::{ use frame_system::{ ensure_signed, pallet_prelude::{BlockNumberFor, OriginFor}, - EnsureNever, Pallet as System, + Pallet as System, }; use pallet_transaction_payment::OnChargeTransaction; use scale_info::TypeInfo; @@ -254,20 +254,6 @@ pub mod pallet { #[pallet::no_default_bounds] type InstantiateOrigin: EnsureOrigin; - /// Origin allowed to call EVM-only dispatchables like `eth_call` and - /// `eth_instantiate_with_code`. - /// - /// This should be configured to prevent external extrinsics from calling these functions - /// directly, as they are intended to be called only through the EVM compatibility layer. - /// - /// # Note - /// - /// Setting this to `EnsureNever` will completely disable external access to these - /// functions. Setting this to a custom origin allows controlled access from specific - /// runtime contexts. - #[pallet::no_default_bounds] - type EVMOrigin: EnsureOrigin; - /// The amount of memory in bytes that parachain nodes a lot to the runtime. /// /// This is used in [`Pallet::integrity_test`] to make sure that the runtime has enough @@ -362,7 +348,6 @@ pub mod pallet { type AllowEVMBytecode = ConstBool; type UploadOrigin = EnsureSigned; type InstantiateOrigin = EnsureSigned; - type EVMOrigin = EnsureNever; type WeightInfo = (); type WeightPrice = Self; type RuntimeMemory = ConstU32<{ 128 * 1024 * 1024 }>; @@ -1098,7 +1083,7 @@ pub mod pallet { data: Vec, transaction_encoded: Vec, ) -> DispatchResultWithPostInfo { - T::EVMOrigin::ensure_origin(origin.clone())?; + ensure_signed(origin.clone())?; block_storage::with_ethereum_context(|| { let code_len = code.len() as u32; @@ -1155,7 +1140,7 @@ pub mod pallet { data: Vec, transaction_encoded: Vec, ) -> DispatchResultWithPostInfo { - T::EVMOrigin::ensure_origin(origin.clone())?; + ensure_signed(origin.clone())?; block_storage::with_ethereum_context(|| { let mut output = Self::bare_call( diff --git a/substrate/frame/revive/src/tests.rs b/substrate/frame/revive/src/tests.rs index 563897172fb26..bc47a2802f82a 100644 --- a/substrate/frame/revive/src/tests.rs +++ b/substrate/frame/revive/src/tests.rs @@ -362,7 +362,6 @@ impl Config for Test { type AllowEVMBytecode = AllowEvmBytecode; type UploadOrigin = EnsureAccount; type InstantiateOrigin = EnsureAccount; - type EVMOrigin = frame_system::EnsureSigned; type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent; type ChainId = ChainId; type FindAuthor = Test; From 5596841730512287fadb679b5364fefbb5cccf18 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Wed, 24 Sep 2025 11:12:10 +0200 Subject: [PATCH 187/273] Revert "Add EnsureEVM origin to subtrate-node runtime" This reverts commit 2ea7b214e15488e337fe27fcea53bf74d2280323. --- substrate/bin/node/runtime/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index e011e5fcfb539..587ba68879452 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1492,7 +1492,6 @@ impl pallet_revive::Config for Runtime { type EthGasEncoder = (); type FindAuthor = ::FindAuthor; type AllowEVMBytecode = ConstBool; - type EVMOrigin = frame_system::EnsureNever; } impl pallet_sudo::Config for Runtime { From 9782821bb53ca5856bed83beb716fec72b8a6e42 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 24 Sep 2025 09:13:16 +0000 Subject: [PATCH 188/273] Revert "Add EnsureEVM origin to subtrate-node runtime" This reverts commit 2ea7b214e15488e337fe27fcea53bf74d2280323. --- substrate/bin/node/runtime/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index e011e5fcfb539..587ba68879452 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1492,7 +1492,6 @@ impl pallet_revive::Config for Runtime { type EthGasEncoder = (); type FindAuthor = ::FindAuthor; type AllowEVMBytecode = ConstBool; - type EVMOrigin = frame_system::EnsureNever; } impl pallet_sudo::Config for Runtime { From f49c7137fe4dce88319941138c3659dfcfbbc860 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 24 Sep 2025 11:50:50 +0000 Subject: [PATCH 189/273] Update cargo.lock with minimal changes Signed-off-by: Alexandru Vasile --- Cargo.lock | 5452 +++++++++++++++++++++++++--------------------------- 1 file changed, 2576 insertions(+), 2876 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0fed4905acf50..a4f9b02578568 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,20 +12,29 @@ dependencies = [ "regex", ] +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli 0.28.0", +] + [[package]] name = "addr2line" version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli", + "gimli 0.31.1", ] [[package]] -name = "adler2" -version = "2.0.1" +name = "adler" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "adler32" @@ -45,9 +54,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.8.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" dependencies = [ "cfg-if", "cipher 0.4.4", @@ -65,27 +74,27 @@ dependencies = [ "cipher 0.4.4", "ctr", "ghash", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] name = "ahash" -version = "0.8.12" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom 0.3.3", + "getrandom 0.2.10", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.32", ] [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" dependencies = [ "memchr", ] @@ -98,9 +107,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-consensus" -version = "1.0.32" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a3bd0305a44fb457cae77de1e82856eadd42ea3cdf0dae29df32eb3b592979" +checksum = "d213580c17d239ae83c0d897ac3315db7cda83d2d4936a9823cc3517552f2e24" dependencies = [ "alloy-eips", "alloy-primitives", @@ -117,14 +126,14 @@ dependencies = [ "secp256k1 0.30.0", "serde", "serde_with", - "thiserror 2.0.16", + "thiserror 2.0.12", ] [[package]] name = "alloy-core" -version = "1.3.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe6c56d58fbfa9f0f6299376e8ce33091fc6494239466814c3f54b55743cb09" +checksum = "a3c5a28f166629752f2e7246b813cdea3243cca59aab2d4264b1fd68392c10eb" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -135,9 +144,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "1.3.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f56873f3cac7a2c63d8e98a4314b8311aa96adb1a0f82ae923eb2119809d2c" +checksum = "18cc14d832bc3331ca22a1c7819de1ede99f58f61a7d123952af7dde8de124a6" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -146,7 +155,7 @@ dependencies = [ "itoa", "serde", "serde_json", - "winnow 0.7.13", + "winnow 0.7.10", ] [[package]] @@ -159,7 +168,7 @@ dependencies = [ "alloy-rlp", "crc", "serde", - "thiserror 2.0.16", + "thiserror 2.0.12", ] [[package]] @@ -183,14 +192,14 @@ dependencies = [ "alloy-rlp", "k256", "serde", - "thiserror 2.0.16", + "thiserror 2.0.12", ] [[package]] name = "alloy-eips" -version = "1.0.32" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cd749c57f38f8cbf433e651179fc5a676255e6b95044f467d49255d2b81725a" +checksum = "2a15b4b0f6bab47aae017d52bb5a739bda381553c09fb9918b7172721ef5f5de" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -205,14 +214,14 @@ dependencies = [ "serde", "serde_with", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 2.0.12", ] [[package]] name = "alloy-json-abi" -version = "1.3.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125a1c373261b252e53e04d6e92c37d881833afc1315fceab53fd46045695640" +checksum = "3ccaa79753d7bf15f06399ea76922afbfaf8d18bebed9e8fc452984b4a90dcc9" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -231,15 +240,15 @@ dependencies = [ "cfg-if", "const-hex", "derive_more 2.0.1", - "foldhash 0.1.5", - "hashbrown 0.15.5", - "indexmap 2.11.3", + "foldhash", + "hashbrown 0.15.3", + "indexmap 2.9.0", "itoa", "k256", "keccak-asm", "paste", "proptest", - "rand 0.9.2", + "rand 0.9.0", "ruint", "rustc-hash 2.1.1", "serde", @@ -264,16 +273,16 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "alloy-serde" -version = "1.0.32" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dfe41a47805a34b848c83448946ca96f3d36842e8c074bcf8fa0870e337d12" +checksum = "f1b3b1078b8775077525bc9fe9f6577e815ceaecd6c412a4f3b4d8aa2836e8f6" dependencies = [ "alloy-primitives", "serde", @@ -282,67 +291,67 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.3.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20d867dcf42019d4779519a1ceb55eba8d7f3d0e4f0a89bcba82b8f9eb01e48" +checksum = "8612e0658964d616344f199ab251a49d48113992d81b92dab93ed855faa66383" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.3.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b74e91b0b553c115d14bd0ed41898309356dc85d0e3d4b9014c4e7715e48c8ad" +checksum = "7a384edac7283bc4c010a355fb648082860c04b826bb7a814c45263c8f304c74" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.11.3", + "indexmap 2.9.0", "proc-macro-error2", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.3.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84194d31220803f5f62d0a00f583fd3a062b36382e2bea446f1af96727754565" +checksum = "0dd588c2d516da7deb421b8c166dc60b7ae31bca5beea29ab6621fcfa53d6ca5" dependencies = [ "const-hex", "dunce", "heck 0.5.0", "macro-string", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.3.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8c27b3cf6b2bb8361904732f955bc7c05e00be5f469cec7e2280b6167f3ff0" +checksum = "e86ddeb70792c7ceaad23e57d52250107ebbb86733e52f4a25d8dc1abc931837" dependencies = [ "serde", - "winnow 0.7.13", + "winnow 0.7.10", ] [[package]] name = "alloy-sol-types" -version = "1.3.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5383d34ea00079e6dd89c652bcbdb764db160cef84e6250926961a0b2295d04" +checksum = "584cb97bfc5746cb9dcc4def77da11694b5d6d7339be91b7480a6a68dc129387" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -368,15 +377,15 @@ dependencies = [ [[package]] name = "alloy-tx-macros" -version = "1.0.32" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e434e0917dce890f755ea774f59d6f12557bc8c7dd9fa06456af80cfe0f0181e" +checksum = "cc79013f9ac3a8ddeb60234d43da09e6d6abfc1c9dd29d3fe97adfbece3f4a08" dependencies = [ "alloy-primitives", "darling 0.21.3", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -385,6 +394,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4436e0292ab1bb631b42973c61205e704475fe8126af845c8d923c0996328127" +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -402,59 +417,57 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.20" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", - "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.11" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.48.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" dependencies = [ "anstyle", - "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.48.0", ] [[package]] name = "anyhow" -version = "1.0.99" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "approx" @@ -474,16 +487,16 @@ dependencies = [ "include_dir", "itertools 0.10.5", "proc-macro-error", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "arbitrary" -version = "1.4.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" dependencies = [ "derive_arbitrary", ] @@ -617,7 +630,7 @@ dependencies = [ "ark-std 0.5.0", "educe", "fnv", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "itertools 0.13.0", "num-bigint", "num-integer", @@ -722,7 +735,7 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rustc_version 0.4.1", + "rustc_version 0.4.0", "zeroize", ] @@ -774,7 +787,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -797,7 +810,7 @@ checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ "num-bigint", "num-traits", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "syn 1.0.109", ] @@ -810,9 +823,9 @@ checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" dependencies = [ "num-bigint", "num-traits", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -853,7 +866,7 @@ dependencies = [ "ark-std 0.5.0", "educe", "fnv", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "rayon", ] @@ -954,7 +967,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "syn 1.0.109", ] @@ -965,9 +978,9 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -1038,25 +1051,24 @@ dependencies = [ [[package]] name = "array-bytes" -version = "6.2.3" +version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" +checksum = "6f840fb7195bcfc5e17ea40c26e5ce6d5b9ce5d584466e17703209657e459ae0" [[package]] name = "array-bytes" -version = "9.3.0" +version = "9.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27d55334c98d756b32dcceb60248647ab34f027690f87f9a362fd292676ee927" +checksum = "4449507daf4f07a8c8309e122d32a53d15c9f33e77eaf01c839fea42ccd4d673" dependencies = [ "smallvec", - "thiserror 2.0.16", ] [[package]] name = "arrayref" -version = "0.3.9" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" @@ -1075,25 +1087,25 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "asn1-rs" -version = "0.6.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" +checksum = "22ad1373757efa0f70ec53939aabc7152e1591cb485208052993070ac8d2429d" dependencies = [ - "asn1-rs-derive 0.5.1", + "asn1-rs-derive 0.5.0", "asn1-rs-impl", "displaydoc", "nom 7.1.3", "num-traits", "rusticata-macros", - "thiserror 1.0.69", + "thiserror 1.0.65", "time", ] [[package]] name = "asn1-rs" -version = "0.7.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56624a96882bb8c26d61312ae18cb45868e5a9992ea73c58e45c3101e56a1e60" +checksum = "607495ec7113b178fbba7a6166a27f99e774359ef4823adbefd756b5b81d7970" dependencies = [ "asn1-rs-derive 0.6.0", "asn1-rs-impl", @@ -1101,20 +1113,20 @@ dependencies = [ "nom 7.1.3", "num-traits", "rusticata-macros", - "thiserror 2.0.16", + "thiserror 2.0.12", "time", ] [[package]] name = "asn1-rs-derive" -version = "0.5.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" +checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", - "synstructure 0.13.2", + "syn 2.0.98", + "synstructure 0.13.1", ] [[package]] @@ -1123,10 +1135,10 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", - "synstructure 0.13.2", + "syn 2.0.98", + "synstructure 0.13.1", ] [[package]] @@ -1135,21 +1147,20 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "assert_cmd" -version = "2.0.17" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bd389a4b2970a01282ee455294913c0a43724daedcd1a24c3eb0ec1c1320b66" +checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" dependencies = [ "anstyle", "bstr", "doc-comment", - "libc", "predicates", "predicates-core", "predicates-tree", @@ -1543,11 +1554,12 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.5.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +checksum = "9f2776ead772134d55b62dd45e59a79e21612d85d0af729b8b7d3967d601a62a" dependencies = [ "concurrent-queue", + "event-listener 5.3.1", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -1555,69 +1567,99 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.3" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" +checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" dependencies = [ + "async-lock 2.8.0", "async-task", "concurrent-queue", - "fastrand 2.3.0", - "futures-lite 2.6.1", - "pin-project-lite", + "fastrand 1.9.0", + "futures-lite 1.13.0", "slab", ] [[package]] name = "async-fs" -version = "2.2.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8034a681df4aed8b8edbd7fbe472401ecf009251c8b40556b304567052e294c5" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ - "async-lock", + "async-lock 3.4.0", "blocking", - "futures-lite 2.6.1", + "futures-lite 2.3.0", ] [[package]] name = "async-global-executor" -version = "2.4.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" +checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" dependencies = [ - "async-channel 2.5.0", + "async-channel 1.9.0", "async-executor", - "async-io", - "async-lock", + "async-io 1.13.0", + "async-lock 2.8.0", "blocking", - "futures-lite 2.6.1", + "futures-lite 1.13.0", "once_cell", ] [[package]] name = "async-io" -version = "2.6.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ + "async-lock 2.8.0", "autocfg", "cfg-if", "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.23", + "slab", + "socket2 0.4.9", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" +dependencies = [ + "async-lock 3.4.0", + "cfg-if", + "concurrent-queue", "futures-io", - "futures-lite 2.6.1", + "futures-lite 2.3.0", "parking", - "polling 3.11.0", - "rustix 1.1.2", + "polling 3.4.0", + "rustix 0.38.42", "slab", - "windows-sys 0.61.0", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", ] [[package]] name = "async-lock" -version = "3.4.1" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 5.4.1", + "event-listener 5.3.1", "event-listener-strategy", "pin-project-lite", ] @@ -1628,64 +1670,65 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" dependencies = [ - "async-io", + "async-io 2.3.3", "blocking", - "futures-lite 2.6.1", + "futures-lite 2.3.0", ] [[package]] name = "async-process" -version = "2.5.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" +checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ - "async-channel 2.5.0", - "async-io", - "async-lock", + "async-channel 2.3.0", + "async-io 2.3.3", + "async-lock 3.4.0", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener 5.4.1", - "futures-lite 2.6.1", - "rustix 1.1.2", + "event-listener 5.3.1", + "futures-lite 2.3.0", + "rustix 0.38.42", + "tracing", ] [[package]] name = "async-signal" -version = "0.2.13" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" +checksum = "dfb3634b73397aa844481f814fad23bbf07fdb0eabec10f2eb95e58944b1ec32" dependencies = [ - "async-io", - "async-lock", + "async-io 2.3.3", + "async-lock 3.4.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 1.1.2", + "rustix 0.38.42", "signal-hook-registry", "slab", - "windows-sys 0.61.0", + "windows-sys 0.52.0", ] [[package]] name = "async-std" -version = "1.13.2" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8e079a4ab67ae52b7403632e4618815d6db36d2a010cfe41b02c1b1578f93b" +checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" dependencies = [ "async-attributes", "async-channel 1.9.0", "async-global-executor", - "async-io", - "async-lock", + "async-io 1.13.0", + "async-lock 2.8.0", "crossbeam-utils", "futures-channel", "futures-core", "futures-io", - "futures-lite 2.6.1", - "gloo-timers 0.3.0", + "futures-lite 1.13.0", + "gloo-timers", "kv-log-macro", "log", "memchr", @@ -1698,9 +1741,9 @@ dependencies = [ [[package]] name = "async-stream" -version = "0.3.6" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ "async-stream-impl", "futures-core", @@ -1709,13 +1752,13 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.6" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -1726,13 +1769,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.89" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -1778,9 +1821,9 @@ checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" [[package]] name = "atomic-waker" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" [[package]] name = "attohttpc" @@ -1788,7 +1831,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" dependencies = [ - "http 0.2.12", + "http 0.2.9", "log", "url", ] @@ -1809,16 +1852,16 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "autocfg" -version = "1.5.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "average" @@ -1843,24 +1886,24 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.10", "instant", "rand 0.8.5", ] [[package]] name = "backtrace" -version = "0.3.75" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ - "addr2line", + "addr2line 0.21.0", + "cc", "cfg-if", "libc", "miniz_oxide", - "object", + "object 0.32.2", "rustc-demangle", - "windows-targets 0.52.6", ] [[package]] @@ -1881,6 +1924,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + [[package]] name = "base64" version = "0.21.7" @@ -1895,15 +1944,15 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "binary-merkle-tree" version = "13.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "hash-db", "log", "parity-scale-codec", @@ -1930,36 +1979,35 @@ dependencies = [ "cexpr", "clang-sys", "itertools 0.13.0", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "regex", "rustc-hash 2.1.1", "shlex", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "bip32" -version = "0.5.3" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db40d3dfbeab4e031d78c844642fa0caa0b0db11ce1607ac9d2986dff1405c69" +checksum = "aa13fae8b6255872fd86f7faf4b41168661d7d78609f7bfe6771b85c6739a15b" dependencies = [ "bs58", "hmac 0.12.1", "k256", "rand_core 0.6.4", "ripemd", - "secp256k1 0.27.0", "sha2 0.10.9", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] [[package]] name = "bip39" -version = "2.2.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d193de1f7487df1914d3a568b772458861d33f9c54249612cc2893d6915054" +checksum = "33415e24172c1b7d6066f6d999545375ab8e1d95421d6784bdfff9496f292387" dependencies = [ "bitcoin_hashes 0.13.0", "serde", @@ -2000,7 +2048,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" dependencies = [ "bitcoin-internals", - "hex-conservative 0.1.2", + "hex-conservative 0.1.1", ] [[package]] @@ -2074,37 +2122,37 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.1", + "constant_time_eq 0.3.0", ] [[package]] name = "blake2s_simd" -version = "1.0.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e90f7deecfac93095eb874a40febd69427776e24e1bd7f87f33ac62d6f0174df" +checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.1", + "constant_time_eq 0.2.6", ] [[package]] name = "blake3" -version = "1.8.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" +checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" dependencies = [ "arrayref", "arrayvec 0.7.6", "cc", "cfg-if", - "constant_time_eq 0.3.1", + "constant_time_eq 0.3.0", ] [[package]] @@ -2127,15 +2175,17 @@ dependencies = [ [[package]] name = "blocking" -version = "1.6.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" dependencies = [ - "async-channel 2.5.0", + "async-channel 1.9.0", + "async-lock 2.8.0", "async-task", - "futures-io", - "futures-lite 2.6.1", - "piper", + "atomic-waker", + "fastrand 1.9.0", + "futures-lite 1.13.0", + "log", ] [[package]] @@ -2164,9 +2214,9 @@ dependencies = [ [[package]] name = "bounded-collections" -version = "0.2.4" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ad8a0bed7827f0b07a5d23cec2e58cc02038a99e4ca81616cb2bb2025f804d" +checksum = "32ed0a820ed50891d36358e997d27741a6142e382242df40ff01c89bcdcc7a2b" dependencies = [ "log", "parity-scale-codec", @@ -2184,7 +2234,7 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "schemars 1.0.4", + "schemars", "serde", ] @@ -2194,7 +2244,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68534a48cbf63a4b1323c433cf21238c9ec23711e0df13b08c33e5c2082663ce" dependencies = [ - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -2915,12 +2965,12 @@ dependencies = [ [[package]] name = "bstr" -version = "1.12.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" dependencies = [ "memchr", - "regex-automata", + "regex-automata 0.3.6", "serde", ] @@ -2956,9 +3006,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" [[package]] name = "byteorder" @@ -2977,11 +3027,12 @@ dependencies = [ [[package]] name = "bzip2-sys" -version = "0.1.13+1.0.8" +version = "0.1.11+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" dependencies = [ "cc", + "libc", "pkg-config", ] @@ -3012,18 +3063,18 @@ dependencies = [ [[package]] name = "camino" -version = "1.2.0" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1de8bc0aa9e9385ceb3bf0c152e3a9b9544f6c4a912c8ae504e80c1f0368603" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ - "serde_core", + "serde", ] [[package]] name = "cargo-platform" -version = "0.1.9" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" dependencies = [ "serde", ] @@ -3036,10 +3087,10 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.27", + "semver 1.0.18", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -3056,9 +3107,9 @@ checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6" [[package]] name = "cc" -version = "1.2.37" +version = "1.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65193589c6404eb80b450d618eaf9a2cafaaafd57ecce47370519ef674a7bd44" +checksum = "590f9024a68a8c40351881787f1934dc11afd69090f5edb6831464694d836ea3" dependencies = [ "find-msvc-tools", "jobserver", @@ -3083,18 +3134,18 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.8" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" dependencies = [ "smallvec", ] [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "cfg_aliases" @@ -3165,23 +3216,24 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link 0.2.0", + "windows-link", ] [[package]] name = "ciborium" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" dependencies = [ "ciborium-io", "ciborium-ll", @@ -3190,15 +3242,15 @@ dependencies = [ [[package]] name = "ciborium-io" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" +checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" [[package]] name = "ciborium-ll" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" dependencies = [ "ciborium-io", "half", @@ -3225,7 +3277,7 @@ checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a" dependencies = [ "core2", "multibase", - "multihash 0.19.3", + "multihash 0.19.1", "unsigned-varint 0.8.0", ] @@ -3251,9 +3303,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.8.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" dependencies = [ "glob", "libc", @@ -3261,9 +3313,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.47" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", "clap_derive", @@ -3271,9 +3323,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.47" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", @@ -3284,39 +3336,39 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.58" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75bf0b32ad2e152de789bb635ea4d3078f6b838ad7974143e99b99f45a04af4a" +checksum = "aa3c596da3cf0983427b0df0dba359df9182c13bd5b519b585a482b0c351f4e8" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.47" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "clap_lex" -version = "0.7.5" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "cmd_lib" -version = "1.9.6" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1af0f9b65935ff457da75535a6b6ff117ac858f03f71191188b3b696f90aec5a" +checksum = "371c15a3c178d0117091bd84414545309ca979555b1aad573ef591ad58818d41" dependencies = [ "cmd_lib_macros", - "env_logger 0.10.2", + "env_logger 0.10.1", "faccess", "lazy_static", "log", @@ -3325,24 +3377,25 @@ dependencies = [ [[package]] name = "cmd_lib_macros" -version = "1.9.6" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e69eee115667ccda8b9ed7010bcf13356ad45269fc92aa78534890b42809a64" +checksum = "cb844bd05be34d91eb67101329aeba9d3337094c04fd8507d821db7ebb488eaf" dependencies = [ "proc-macro-error2", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "coarsetime" -version = "0.1.36" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91849686042de1b41cd81490edc83afbcb0abe5a9b6f2c4114f23ce8cca1bcf4" +checksum = "a90d114103adbc625300f346d4d09dfb4ab1c4a8df6868435dd903392ecf4354" dependencies = [ "libc", - "wasix", + "once_cell", + "wasi 0.11.0+wasi-snapshot-preview1", "wasm-bindgen", ] @@ -3352,18 +3405,17 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" dependencies = [ - "thiserror 2.0.16", + "thiserror 2.0.12", ] [[package]] name = "codespan-reporting" -version = "0.12.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" dependencies = [ - "serde", "termcolor", - "unicode-width", + "unicode-width 0.1.10", ] [[package]] @@ -3487,9 +3539,9 @@ dependencies = [ [[package]] name = "color-eyre" -version = "0.6.5" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5920befb47832a6d61ee3a3a846565cfa39b331331e68a3b1d1116630f2f26d" +checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" dependencies = [ "backtrace", "eyre", @@ -3500,46 +3552,47 @@ dependencies = [ [[package]] name = "color-print" -version = "0.3.7" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aa954171903797d5623e047d9ab69d91b493657917bdfb8c2c80ecaf9cdb6f4" +checksum = "f2a5e6504ed8648554968650feecea00557a3476bc040d0ffc33080e66b646d0" dependencies = [ "color-print-proc-macro", ] [[package]] name = "color-print-proc-macro" -version = "0.3.7" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692186b5ebe54007e45a59aea47ece9eb4108e141326c304cdc91699a7118a22" +checksum = "d51beaa537d73d2d1ff34ee70bc095f170420ab2ec5d687ecd3ec2b0d092514b" dependencies = [ "nom 7.1.3", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 1.0.109", ] [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "colored" -version = "2.2.0" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" +checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" dependencies = [ + "is-terminal", "lazy_static", - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] name = "combine" -version = "4.6.7" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" dependencies = [ "bytes", "memchr", @@ -3547,12 +3600,12 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.2.1" +version = "7.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" +checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" dependencies = [ "unicode-segmentation", - "unicode-width", + "unicode-width 0.2.0", ] [[package]] @@ -3572,15 +3625,15 @@ dependencies = [ [[package]] name = "console" -version = "0.15.11" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ "encode_unicode", + "lazy_static", "libc", - "once_cell", - "unicode-width", - "windows-sys 0.59.0", + "unicode-width 0.1.10", + "windows-sys 0.52.0", ] [[package]] @@ -3595,39 +3648,42 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.16.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6407bff74dea37e0fa3dc1c1c974e5d46405f0c987bf9997a0762adce71eda6" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if", "cpufeatures", + "hex", "proptest", - "serde_core", + "serde", ] [[package]] name = "const-oid" -version = "0.9.6" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" [[package]] name = "const-random" -version = "0.1.18" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +checksum = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e" dependencies = [ "const-random-macro", + "proc-macro-hack", ] [[package]] name = "const-random-macro" -version = "0.1.16" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +checksum = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.10", "once_cell", + "proc-macro-hack", "tiny-keccak", ] @@ -3646,9 +3702,9 @@ version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "unicode-xid 0.2.6", + "unicode-xid 0.2.4", ] [[package]] @@ -3659,9 +3715,15 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "convert_case" @@ -3688,21 +3750,11 @@ dependencies = [ "libc", ] -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" -version = "0.8.7" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core2" @@ -3912,9 +3964,9 @@ dependencies = [ [[package]] name = "cpp_demangle" -version = "0.4.4" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96e58d342ad113c2b878f16d5d034c03be492ae460cdbc02b7f0f2284d310c7d" +checksum = "7e8227005286ec39567949b33df9896bcadfa6051bccca2488129f108ca23119" dependencies = [ "cfg-if", ] @@ -3931,9 +3983,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.17" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" dependencies = [ "libc", ] @@ -3990,8 +4042,8 @@ dependencies = [ "cranelift-control", "cranelift-entity", "cranelift-isle", - "gimli", - "hashbrown 0.15.5", + "gimli 0.31.1", + "hashbrown 0.15.3", "log", "pulley-interpreter", "regalloc2 0.12.2", @@ -4077,9 +4129,9 @@ checksum = "b530783809a55cb68d070e0de60cfbb3db0dc94c8850dd5725411422bedcf6bb" [[package]] name = "crc" -version = "3.3.0" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" dependencies = [ "crc-catalog", ] @@ -4092,9 +4144,9 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc32fast" -version = "1.5.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ "cfg-if", ] @@ -4154,53 +4206,58 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ + "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.18" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ + "autocfg", + "cfg-if", "crossbeam-utils", + "memoffset", + "scopeguard", ] [[package]] name = "crossbeam-queue" -version = "0.3.12" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crunchy" -version = "0.2.4" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-bigint" -version = "0.5.5" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" dependencies = [ "generic-array 0.14.7", "rand_core 0.6.4", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] @@ -4232,7 +4289,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.7", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -4246,7 +4303,7 @@ dependencies = [ "generic-array 0.14.7", "poly1305", "salsa20", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] @@ -4261,20 +4318,19 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.5.0" +version = "3.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881c5d0a13b2f1498e2306e82cbada78390e152d4b1378fb28a84f4dcd0dc4f3" +checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" dependencies = [ - "dispatch", - "nix 0.30.1", - "windows-sys 0.61.0", + "nix 0.29.0", + "windows-sys 0.59.0", ] [[package]] name = "cumulus-client-bootnodes" version = "0.1.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -4323,7 +4379,7 @@ dependencies = [ "cumulus-test-runtime", "futures", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", @@ -4356,7 +4412,7 @@ dependencies = [ "cumulus-test-relay-sproof-builder", "futures", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -4443,7 +4499,7 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -4455,7 +4511,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "futures", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-consensus", "sp-api", "sp-block-builder", @@ -4480,7 +4536,7 @@ dependencies = [ "futures", "futures-timer", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-parachain-primitives", @@ -4653,7 +4709,7 @@ dependencies = [ "frame-support", "frame-system", "futures", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "hex-literal", "impl-trait-for-tuples", "log", @@ -4690,10 +4746,10 @@ dependencies = [ name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -4811,7 +4867,7 @@ dependencies = [ "sp-io", "sp-maybe-compressed-blob", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] @@ -4953,14 +5009,14 @@ dependencies = [ "sp-blockchain", "sp-state-machine", "sp-version", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.7.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "async-trait", "cumulus-client-bootnodes", @@ -5224,7 +5280,7 @@ version = "0.1.0" dependencies = [ "anyhow", "cumulus-zombienet-sdk-helpers", - "env_logger 0.11.8", + "env_logger 0.11.3", "futures", "log", "polkadot-primitives", @@ -5241,24 +5297,24 @@ dependencies = [ [[package]] name = "curl" -version = "0.4.49" +version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79fc3b6dd0b87ba36e565715bf9a2ced221311db47bd18011676f24a6066edbc" +checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6" dependencies = [ "curl-sys", "libc", "openssl-probe", "openssl-sys", "schannel", - "socket2 0.6.0", - "windows-sys 0.59.0", + "socket2 0.5.9", + "windows-sys 0.52.0", ] [[package]] name = "curl-sys" -version = "0.4.83+curl-8.15.0" +version = "0.4.72+curl-8.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5830daf304027db10c82632a464879d46a3f7c4ba17a31592657ad16c719b483" +checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea" dependencies = [ "cc", "libc", @@ -5267,7 +5323,7 @@ dependencies = [ "openssl-sys", "pkg-config", "vcpkg", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -5281,20 +5337,20 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version 0.4.1", - "subtle 2.6.1", + "rustc_version 0.4.0", + "subtle 2.5.0", "zeroize", ] [[package]] name = "curve25519-dalek-derive" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -5312,75 +5368,56 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.184" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4a0beb369d20d0de6aa7084ee523e4c9a31d7d8c61ba357b119bb574d7f368" +checksum = "28403c86fc49e3401fdf45499ba37fad6493d9329449d6449d7f0e10f4654d28" dependencies = [ "cc", - "cxx-build", - "cxxbridge-cmd", "cxxbridge-flags", "cxxbridge-macro", - "foldhash 0.2.0", "link-cplusplus", ] [[package]] name = "cxx-build" -version = "1.0.184" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27d955b93e56a8e45cbc34df0ae920d8b5ad01541a4571222c78527c00e1a40a" +checksum = "78da94fef01786dc3e0c76eafcd187abcaa9972c78e05ff4041e24fdf059c285" dependencies = [ "cc", "codespan-reporting", - "indexmap 2.11.3", - "proc-macro2 1.0.101", + "once_cell", + "proc-macro2 1.0.95", "quote 1.0.40", "scratch", - "syn 2.0.106", -] - -[[package]] -name = "cxxbridge-cmd" -version = "1.0.184" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052f6c468d9dabdc2b8b228bcb2d7843b2bea0f3fb9c4e2c6ba5852574ec0150" -dependencies = [ - "clap", - "codespan-reporting", - "indexmap 2.11.3", - "proc-macro2 1.0.101", - "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "cxxbridge-flags" -version = "1.0.184" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fd145fa180986cb8002c63217d03b2c782fdcd5fa323adcd1f62d2d6ece6144" +checksum = "e2a6f5e1dfb4b34292ad4ea1facbfdaa1824705b231610087b00b17008641809" [[package]] name = "cxxbridge-macro" -version = "1.0.184" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02ac4a3bc4484a2daa0a8421c9588bd26522be9682a2fe02c7087bc4e8bc3c60" +checksum = "50c49547d73ba8dcfd4ad7325d64c6d5391ff4224d498fc39a6f3f49825a530d" dependencies = [ - "indexmap 2.11.3", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "rustversion", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "darling" -version = "0.20.11" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core 0.20.11", - "darling_macro 0.20.11", + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] @@ -5395,16 +5432,16 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.11" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "strsim", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -5415,21 +5452,21 @@ checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "strsim", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "darling_macro" -version = "0.20.11" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core 0.20.11", + "darling_core 0.20.10", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -5440,33 +5477,33 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "dashmap" -version = "5.5.3" +version = "5.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +checksum = "edd72493923899c6f10c641bdbdeddc7183d6396641d99c1a0d1597f37f92e28" dependencies = [ "cfg-if", "hashbrown 0.14.5", "lock_api", "once_cell", - "parking_lot_core 0.9.11", + "parking_lot_core 0.9.8", ] [[package]] name = "data-encoding" -version = "2.9.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "data-encoding-macro" -version = "0.1.18" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" +checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -5474,12 +5511,12 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.16" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" +checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" dependencies = [ "data-encoding", - "syn 2.0.106", + "syn 1.0.109", ] [[package]] @@ -5493,9 +5530,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.10" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" dependencies = [ "const-oid", "pem-rfc7468", @@ -5508,7 +5545,7 @@ version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" dependencies = [ - "asn1-rs 0.6.2", + "asn1-rs 0.6.1", "displaydoc", "nom 7.1.3", "num-bigint", @@ -5522,7 +5559,7 @@ version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" dependencies = [ - "asn1-rs 0.7.1", + "asn1-rs 0.7.0", "displaydoc", "nom 7.1.3", "num-bigint", @@ -5532,9 +5569,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.3" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", "serde", @@ -5546,7 +5583,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "syn 1.0.109", ] @@ -5557,9 +5594,9 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -5568,33 +5605,33 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "derive_arbitrary" -version = "1.4.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "derive_more" -version = "0.99.20" +version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case 0.4.0", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "rustc_version 0.4.1", - "syn 2.0.106", + "rustc_version 0.4.0", + "syn 1.0.109", ] [[package]] @@ -5621,9 +5658,9 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -5633,10 +5670,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ "convert_case 0.7.1", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", - "unicode-xid 0.2.6", + "syn 2.0.98", + "unicode-xid 0.2.4", ] [[package]] @@ -5678,7 +5715,7 @@ dependencies = [ "block-buffer 0.10.4", "const-oid", "crypto-common", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -5732,38 +5769,30 @@ dependencies = [ "winapi", ] -[[package]] -name = "dispatch" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - [[package]] name = "displaydoc" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "dissimilar" -version = "1.0.10" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8975ffdaa0ef3661bfe02dbdcc06c9f829dfafe6a3c474de366a8d5e44276921" +checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632" [[package]] name = "dlmalloc" -version = "0.2.11" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06cdfe340b16dd990c54cce79743613fa09fbb16774f33a77c9fd196f8f3fa30" +checksum = "203540e710bfadb90e5e29930baf5d10270cec1f43ab34f46f78b147b2de715a" dependencies = [ - "cfg-if", "libc", - "windows-sys 0.60.2", ] [[package]] @@ -5790,12 +5819,12 @@ dependencies = [ "common-path", "derive-syn-parse", "once_cell", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "regex", - "syn 2.0.106", + "syn 2.0.98", "termcolor", - "toml 0.8.23", + "toml", "walkdir", ] @@ -5813,9 +5842,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "downcast-rs" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "drawille" @@ -5829,21 +5858,21 @@ dependencies = [ [[package]] name = "dtoa" -version = "1.0.10" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" [[package]] name = "dunce" -version = "1.0.5" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "dyn-clonable" -version = "0.9.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a36efbb9bfd58e1723780aa04b61aba95ace6a05d9ffabfdb0b43672552f0805" +checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" dependencies = [ "dyn-clonable-impl", "dyn-clone", @@ -5851,20 +5880,20 @@ dependencies = [ [[package]] name = "dyn-clonable-impl" -version = "0.9.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8671d54058979a37a26f3511fbf8d198ba1aa35ffb202c42587d918d77213a" +checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 1.0.109", ] [[package]] name = "dyn-clone" -version = "1.0.20" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "easy-cast" @@ -5877,9 +5906,9 @@ dependencies = [ [[package]] name = "ecdsa" -version = "0.16.9" +version = "0.16.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" dependencies = [ "der", "digest 0.10.7", @@ -5892,9 +5921,9 @@ dependencies = [ [[package]] name = "ed25519" -version = "2.2.3" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d" dependencies = [ "pkcs8", "signature", @@ -5902,32 +5931,31 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.2.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek", "ed25519", "rand_core 0.6.4", "serde", "sha2 0.10.9", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] [[package]] name = "ed25519-zebra" -version = "4.1.0" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0017d969298eec91e3db7a2985a8cab4df6341d86e6f3a6f5878b13fb7846bc9" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ "curve25519-dalek", "ed25519", - "hashbrown 0.15.5", - "pkcs8", + "hashbrown 0.14.5", + "hex", "rand_core 0.6.4", "sha2 0.10.9", - "subtle 2.6.1", "zeroize", ] @@ -5938,9 +5966,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" dependencies = [ "enum-ordinalize", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -5968,7 +5996,7 @@ dependencies = [ "rand_core 0.6.4", "sec1", "serdect", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] @@ -6028,29 +6056,29 @@ dependencies = [ [[package]] name = "encode_unicode" -version = "1.0.0" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.35" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" dependencies = [ "cfg-if", ] [[package]] name = "enum-as-inner" -version = "0.6.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" +checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" dependencies = [ - "heck 0.5.0", - "proc-macro2 1.0.101", + "heck 0.4.1", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -6068,40 +6096,40 @@ version = "4.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "enumflags2" -version = "0.7.12" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" +checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.12" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "enumn" -version = "0.1.14" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" +checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -6126,9 +6154,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.10.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" dependencies = [ "humantime", "is-terminal", @@ -6139,14 +6167,14 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.8" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" +checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" dependencies = [ "anstream", "anstyle", "env_filter", - "jiff", + "humantime", "log", ] @@ -6158,9 +6186,9 @@ checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "equivocation-detector" @@ -6178,13 +6206,11 @@ dependencies = [ [[package]] name = "erased-serde" -version = "0.4.8" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" +checksum = "2b73807008a3c7f171cc40312f37d95ef0396e048b5848d775f54b1a4dd4a0d3" dependencies = [ "serde", - "serde_core", - "typeid", ] [[package]] @@ -6199,12 +6225,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.14" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.61.0", + "windows-sys 0.59.0", ] [[package]] @@ -6274,9 +6300,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "5.4.1" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ "concurrent-queue", "parking", @@ -6285,11 +6311,11 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 5.4.1", + "event-listener 5.3.1", "pin-project-lite", ] @@ -6312,16 +6338,16 @@ dependencies = [ "file-guard", "fs-err", "prettyplease", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "eyre" -version = "0.6.12" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" dependencies = [ "indenter", "once_cell", @@ -6351,8 +6377,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" dependencies = [ "bit-set", - "regex-automata", - "regex-syntax", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -6399,7 +6425,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec6f82451ff7f0568c6181287189126d492b5654e30a788add08027b6363d019" dependencies = [ "fatality-proc-macro", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -6409,11 +6435,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" dependencies = [ "expander", - "indexmap 2.11.3", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "indexmap 2.9.0", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -6423,7 +6449,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" dependencies = [ "libc", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -6444,19 +6470,19 @@ dependencies = [ [[package]] name = "ff" -version = "0.13.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ "rand_core 0.6.4", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] name = "fiat-crypto" -version = "0.2.9" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" [[package]] name = "file-guard" @@ -6470,14 +6496,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.26" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ "cfg-if", "libc", - "libredox", - "windows-sys 0.60.2", + "redox_syscall 0.3.5", + "windows-sys 0.48.0", ] [[package]] @@ -6492,7 +6518,7 @@ dependencies = [ "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "scale-info", ] @@ -6508,15 +6534,15 @@ dependencies = [ "futures", "log", "num-traits", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "relay-utils", ] [[package]] name = "find-msvc-tools" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d" +checksum = "e178e4fba8a2726903f6ba98a6d221e76f9c12c650d5dc0e6afdc50677b49650" [[package]] name = "findshlibs" @@ -6558,17 +6584,11 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - [[package]] name = "flate2" -version = "1.1.2" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "miniz_oxide", @@ -6603,12 +6623,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" -[[package]] -name = "foldhash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" - [[package]] name = "foreign-types" version = "0.3.2" @@ -6633,9 +6647,9 @@ dependencies = [ [[package]] name = "form_urlencoded" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -6647,7 +6661,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" dependencies = [ "nonempty", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -6662,15 +6676,15 @@ dependencies = [ [[package]] name = "fragile" -version = "2.0.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "28.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "frame-support", "frame-support-procedural", "frame-system", @@ -6700,7 +6714,7 @@ name = "frame-benchmarking-cli" version = "32.0.0" dependencies = [ "Inflector", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "chrono", "clap", "comfy-table", @@ -6757,7 +6771,7 @@ dependencies = [ "substrate-test-runtime", "subxt 0.43.0", "subxt-signer 0.43.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "thousands", "westend-runtime", ] @@ -6781,7 +6795,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7cb8796f93fa038f979a014234d632e9688a120e745f936e2635123c77537f7" dependencies = [ - "frame-metadata 21.0.0", + "frame-metadata 20.0.0", "parity-scale-codec", "scale-decode", "scale-info", @@ -6810,12 +6824,12 @@ dependencies = [ "frame-election-provider-support", "frame-support", "parity-scale-codec", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", "scale-info", "sp-arithmetic", - "syn 2.0.106", + "syn 2.0.98", "trybuild", ] @@ -6855,7 +6869,7 @@ name = "frame-executive" version = "28.0.0" dependencies = [ "aquamarine", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "frame-support", "frame-system", "frame-try-runtime", @@ -6885,17 +6899,6 @@ dependencies = [ "serde", ] -[[package]] -name = "frame-metadata" -version = "21.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20dfd1d7eae1d94e32e869e2fb272d81f52dd8db57820a373adb83ea24d7d862" -dependencies = [ - "cfg-if", - "parity-scale-codec", - "scale-info", -] - [[package]] name = "frame-metadata" version = "23.0.0" @@ -6912,7 +6915,7 @@ dependencies = [ name = "frame-metadata-hash-extension" version = "0.1.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "const-hex", "docify", "frame-metadata 23.0.0", @@ -6945,7 +6948,7 @@ dependencies = [ "sp-runtime", "sp-statement-store", "tempfile", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] @@ -6989,7 +6992,7 @@ version = "28.0.0" dependencies = [ "Inflector", "aquamarine", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "binary-merkle-tree", "bitflags 1.3.2", "docify", @@ -7046,7 +7049,7 @@ dependencies = [ "parity-scale-codec", "pretty_assertions", "proc-macro-warning", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "regex", "scale-info", @@ -7054,7 +7057,7 @@ dependencies = [ "sp-io", "sp-metadata-ir", "sp-runtime", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -7062,19 +7065,19 @@ name = "frame-support-procedural-tools" version = "10.0.0" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "frame-support-procedural-tools-derive" version = "11.0.0" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -7196,12 +7199,9 @@ dependencies = [ [[package]] name = "fs-err" -version = "2.11.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" -dependencies = [ - "autocfg", -] +checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541" [[package]] name = "fs2" @@ -7219,7 +7219,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.44", + "rustix 0.38.42", "windows-sys 0.48.0", ] @@ -7296,7 +7296,7 @@ checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", "lock_api", - "parking_lot 0.12.4", + "parking_lot 0.12.3", ] [[package]] @@ -7322,9 +7322,9 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.6.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ "fastrand 2.3.0", "futures-core", @@ -7339,9 +7339,9 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -7351,7 +7351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.23.31", + "rustls 0.23.18", "rustls-pki-types", ] @@ -7373,7 +7373,7 @@ version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ - "gloo-timers 0.2.6", + "gloo-timers", "send_wrapper", ] @@ -7410,16 +7410,15 @@ dependencies = [ [[package]] name = "generator" -version = "0.8.7" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" dependencies = [ - "cc", "cfg-if", "libc", "log", "rustversion", - "windows 0.61.3", + "windows 0.58.0", ] [[package]] @@ -7454,29 +7453,25 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", - "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "wasm-bindgen", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" dependencies = [ "cfg-if", - "js-sys", "libc", - "r-efi", - "wasi 0.14.7+wasi-0.2.4", - "wasm-bindgen", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", ] [[package]] @@ -7491,14 +7486,20 @@ dependencies = [ [[package]] name = "ghash" -version = "0.5.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ - "opaque-debug 0.3.1", + "opaque-debug 0.3.0", "polyval", ] +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + [[package]] name = "gimli" version = "0.31.1" @@ -7506,15 +7507,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" dependencies = [ "fallible-iterator", - "indexmap 2.11.3", + "indexmap 2.9.0", "stable_deref_trait", ] [[package]] name = "git2" -version = "0.20.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" +checksum = "3fda788993cc341f69012feba8bf45c0ba4f3291fcc08e214b4d5a7332d88aff" dependencies = [ "bitflags 2.9.4", "libc", @@ -7525,9 +7526,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.3" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "glob-match" @@ -7545,12 +7546,12 @@ dependencies = [ "futures-core", "futures-sink", "gloo-utils", - "http 1.3.1", + "http 1.1.0", "js-sys", "pin-project", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -7568,18 +7569,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "gloo-timers" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "gloo-utils" version = "0.2.0" @@ -7641,9 +7630,9 @@ dependencies = [ [[package]] name = "gmp-mpfr-sys" -version = "1.6.8" +version = "1.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60f8970a75c006bb2f8ae79c6768a116dd215fa8346a87aed99bf9d82ca43394" +checksum = "a636fb6a653382a379ee1e5593dacdc628667994167024c143214cafd40c1a86" dependencies = [ "libc", "windows-sys 0.60.2", @@ -7671,9 +7660,9 @@ dependencies = [ [[package]] name = "governor" -version = "0.6.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +checksum = "821239e5672ff23e2a7060901fa622950bbd80b649cdaadd78d1c1767ed14eb4" dependencies = [ "cfg-if", "dashmap", @@ -7681,12 +7670,10 @@ dependencies = [ "futures-timer", "no-std-compat", "nonzero_ext", - "parking_lot 0.12.4", - "portable-atomic", + "parking_lot 0.12.3", "quanta", "rand 0.8.5", "smallvec", - "spinning_top", ] [[package]] @@ -7697,22 +7684,22 @@ checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", "rand_core 0.6.4", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] name = "h2" -version = "0.3.27" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", "futures-core", "futures-sink", "futures-util", - "http 0.2.12", - "indexmap 2.11.3", + "http 0.2.9", + "indexmap 2.9.0", "slab", "tokio", "tokio-util", @@ -7721,17 +7708,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.12" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.3.1", - "indexmap 2.11.3", + "http 1.1.0", + "indexmap 2.9.0", "slab", "tokio", "tokio-util", @@ -7740,26 +7727,22 @@ dependencies = [ [[package]] name = "half" -version = "2.6.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" -dependencies = [ - "cfg-if", - "crunchy", -] +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" [[package]] name = "handlebars" -version = "5.1.2" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" +checksum = "ab283476b99e66691dee3f1640fea91487a8d81f50fb5ecc75538f8f8879a1e4" dependencies = [ "log", "pest", "pest_derive", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -7805,13 +7788,13 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.5" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" dependencies = [ "allocator-api2", "equivalent", - "foldhash 0.1.5", + "foldhash", "serde", ] @@ -7826,11 +7809,11 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.10.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" dependencies = [ - "hashbrown 0.15.5", + "hashbrown 0.14.5", ] [[package]] @@ -7847,21 +7830,24 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.5.2" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] [[package]] name = "hex-conservative" -version = "0.1.2" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" +checksum = "30ed443af458ccb6d81c1e7e661545f94d3176752fb1df2f543b902a1e0f51e2" [[package]] name = "hex-conservative" @@ -7880,9 +7866,9 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "hickory-proto" -version = "0.24.4" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248" +checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512" dependencies = [ "async-trait", "cfg-if", @@ -7891,12 +7877,12 @@ dependencies = [ "futures-channel", "futures-io", "futures-util", - "idna", + "idna 0.4.0", "ipnet", "once_cell", "rand 0.8.5", - "socket2 0.5.10", - "thiserror 1.0.69", + "socket2 0.5.9", + "thiserror 1.0.65", "tinyvec", "tokio", "tracing", @@ -7916,12 +7902,12 @@ dependencies = [ "futures-channel", "futures-io", "futures-util", - "idna", + "idna 1.0.3", "ipnet", "once_cell", - "rand 0.9.2", - "ring 0.17.14", - "thiserror 2.0.16", + "rand 0.9.0", + "ring 0.17.8", + "thiserror 2.0.12", "tinyvec", "tokio", "tracing", @@ -7930,21 +7916,21 @@ dependencies = [ [[package]] name = "hickory-resolver" -version = "0.24.4" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e" +checksum = "0a2e2aba9c389ce5267d31cf1e4dace82390ae276b0b364ea55630b1fa1b44b4" dependencies = [ "cfg-if", "futures-util", - "hickory-proto 0.24.4", + "hickory-proto 0.24.1", "ipconfig", "lru-cache", "once_cell", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "resolv-conf", "smallvec", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tracing", ] @@ -7961,11 +7947,11 @@ dependencies = [ "ipconfig", "moka", "once_cell", - "parking_lot 0.12.4", - "rand 0.9.2", + "parking_lot 0.12.3", + "rand 0.9.0", "resolv-conf", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.12", "tokio", "tracing", ] @@ -8011,31 +7997,41 @@ dependencies = [ [[package]] name = "home" -version = "0.5.11" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] name = "honggfuzz" -version = "0.5.57" +version = "0.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc563d4f41b17364d5c48ded509f2bcf1c3f6ae9c7f203055b4a5c325072d57e" +checksum = "848e9c511092e0daa0a35a63e8e6e475a3e8f870741448b9f6028d69b142f18e" dependencies = [ "arbitrary", "lazy_static", - "memmap2 0.9.8", - "rustc_version 0.4.1", - "semver 1.0.27", + "memmap2 0.5.10", + "rustc_version 0.4.0", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", ] [[package]] name = "http" -version = "0.2.12" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes", "fnv", @@ -8044,9 +8040,9 @@ dependencies = [ [[package]] name = "http" -version = "1.3.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -8055,35 +8051,35 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.6" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", - "http 0.2.12", + "http 0.2.9", "pin-project-lite", ] [[package]] name = "http-body" -version = "1.0.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" dependencies = [ "bytes", - "http 1.3.1", + "http 1.1.0", ] [[package]] name = "http-body-util" -version = "0.1.3" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", - "futures-core", - "http 1.3.1", - "http-body 1.0.1", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", "pin-project-lite", ] @@ -8095,9 +8091,9 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "httparse" -version = "1.10.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" +checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" [[package]] name = "httpdate" @@ -8107,9 +8103,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.3.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "humantime-serde" @@ -8123,22 +8119,22 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.32" +version = "0.14.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" dependencies = [ "bytes", "futures-channel", "futures-core", "futures-util", - "h2 0.3.27", - "http 0.2.12", - "http-body 0.4.6", + "h2 0.3.26", + "http 0.2.9", + "http-body 0.4.5", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.10", + "socket2 0.5.9", "tokio", "tower-service", "tracing", @@ -8147,22 +8143,20 @@ dependencies = [ [[package]] name = "hyper" -version = "1.7.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ - "atomic-waker", "bytes", "futures-channel", - "futures-core", - "h2 0.4.12", - "http 1.3.1", - "http-body 1.0.1", + "futures-util", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.0", "httparse", "httpdate", "itoa", "pin-project-lite", - "pin-utils", "smallvec", "tokio", "want", @@ -8175,10 +8169,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http 0.2.12", - "hyper 0.14.32", + "http 0.2.9", + "hyper 0.14.29", "log", - "rustls 0.21.12", + "rustls 0.21.7", "rustls-native-certs 0.6.3", "tokio", "tokio-rustls 0.24.1", @@ -8186,21 +8180,22 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ - "http 1.3.1", - "hyper 1.7.0", + "futures-util", + "http 1.1.0", + "hyper 1.6.0", "hyper-util", "log", - "rustls 0.23.31", - "rustls-native-certs 0.8.1", + "rustls 0.23.18", + "rustls-native-certs 0.8.0", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.3", + "tokio-rustls 0.26.0", "tower-service", - "webpki-roots 1.0.2", + "webpki-roots 0.26.3", ] [[package]] @@ -8209,7 +8204,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper 0.14.32", + "hyper 0.14.29", "pin-project-lite", "tokio", "tokio-io-timeout", @@ -8223,7 +8218,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.7.0", + "hyper 1.6.0", "hyper-util", "native-tls", "tokio", @@ -8233,43 +8228,35 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.17" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ - "base64 0.22.1", "bytes", "futures-channel", - "futures-core", "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "hyper 1.7.0", - "ipnet", - "libc", - "percent-encoding", + "http 1.1.0", + "http-body 1.0.0", + "hyper 1.6.0", "pin-project-lite", - "socket2 0.6.0", - "system-configuration", + "socket2 0.5.9", "tokio", "tower-service", "tracing", - "windows-registry", ] [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", - "log", "wasm-bindgen", - "windows-core 0.62.0", + "windows 0.48.0", ] [[package]] @@ -8283,22 +8270,21 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ "displaydoc", - "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locale_core" -version = "2.0.0" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ "displaydoc", "litemap", @@ -8307,11 +8293,31 @@ dependencies = [ "zerovec", ] +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ "displaydoc", "icu_collections", @@ -8319,54 +8325,67 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", + "utf16_iter", + "utf8_iter", + "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] name = "icu_properties" -version = "2.0.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ "displaydoc", "icu_collections", - "icu_locale_core", + "icu_locid_transform", "icu_properties_data", "icu_provider", - "potential_utf", - "zerotrie", + "tinystr", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] name = "icu_provider" -version = "2.0.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ "displaydoc", - "icu_locale_core", + "icu_locid", + "icu_provider_macros", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", - "zerotrie", "zerovec", ] +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -8375,9 +8394,19 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.1.0" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ "idna_adapter", "smallvec", @@ -8386,9 +8415,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ "icu_normalizer", "icu_properties", @@ -8406,25 +8435,21 @@ dependencies = [ [[package]] name = "if-watch" -version = "3.2.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf9d64cfcf380606e64f9a0bcf493616b65331199f984151a6fa11a7b3cde38" +checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" dependencies = [ - "async-io", - "core-foundation 0.9.4", + "async-io 2.3.3", + "core-foundation", "fnv", "futures", "if-addrs", "ipnet", "log", - "netlink-packet-core", - "netlink-packet-route", - "netlink-proto", - "netlink-sys", "rtnetlink", - "system-configuration", + "system-configuration 0.5.1", "tokio", - "windows 0.53.0", + "windows 0.51.1", ] [[package]] @@ -8437,8 +8462,8 @@ dependencies = [ "attohttpc", "bytes", "futures", - "http 0.2.12", - "hyper 0.14.32", + "http 0.2.9", + "hyper 0.14.29", "log", "rand 0.8.5", "tokio", @@ -8499,35 +8524,35 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "include_dir" -version = "0.7.4" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" +checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" dependencies = [ "include_dir_macros", ] [[package]] name = "include_dir_macros" -version = "0.7.4" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" +checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", ] [[package]] name = "indenter" -version = "0.3.4" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" @@ -8542,14 +8567,13 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.3" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92119844f513ffa41556430369ab02c295a3578af21cf945caa3e9e0c2481ac3" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "serde", - "serde_core", ] [[package]] @@ -8560,22 +8584,22 @@ checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" [[package]] name = "indicatif" -version = "0.17.11" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" +checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" dependencies = [ "console", + "instant", "number_prefix", "portable-atomic", - "unicode-width", - "web-time", + "unicode-width 0.1.10", ] [[package]] name = "inout" -version = "0.1.4" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ "generic-array 0.14.7", ] @@ -8599,14 +8623,14 @@ dependencies = [ ] [[package]] -name = "io-uring" -version = "0.7.10" +name = "io-lifetimes" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "bitflags 2.9.4", - "cfg-if", + "hermit-abi", "libc", + "windows-sys 0.48.0", ] [[package]] @@ -8621,7 +8645,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.10", + "socket2 0.5.9", "widestring", "windows-sys 0.48.0", "winreg", @@ -8629,46 +8653,30 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.11.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" [[package]] -name = "iri-string" -version = "0.7.8" +name = "is-terminal" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" -dependencies = [ - "memchr", - "serde", -] - -[[package]] -name = "is-terminal" -version = "0.4.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "libc", - "windows-sys 0.59.0", + "rustix 0.38.42", + "windows-sys 0.48.0", ] [[package]] name = "is_executable" -version = "1.0.5" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baabb8b4867b26294d818bf3f651a454b6901431711abb96e296245888d6e8c4" +checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" dependencies = [ - "windows-sys 0.60.2", + "winapi", ] -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - [[package]] name = "isahc" version = "1.7.2" @@ -8683,7 +8691,7 @@ dependencies = [ "encoding_rs", "event-listener 2.5.3", "futures-lite 1.13.0", - "http 0.2.12", + "http 0.2.9", "log", "mime", "once_cell", @@ -8743,15 +8751,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jam-codec" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb948eace373d99de60501a02fb17125d30ac632570de20dccc74370cdd611b9" +checksum = "d72f2fb8cfd27f6c52ea7d0528df594f7f2ed006feac153e9393ec567aafea98" dependencies = [ "arrayvec 0.7.6", "bitvec", @@ -8765,54 +8773,28 @@ dependencies = [ [[package]] name = "jam-codec-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "319af585c4c8a6b5552a52b7787a1ab3e4d59df7614190b1f85b9b842488789d" -dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.40", - "syn 2.0.106", -] - -[[package]] -name = "jiff" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" -dependencies = [ - "jiff-static", - "log", - "portable-atomic", - "portable-atomic-util", - "serde", -] - -[[package]] -name = "jiff-static" -version = "0.2.15" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" +checksum = "09985146f40378e13af626964ac9c206d9d9b67c40c70805898d9954f709bcf5" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "jni" -version = "0.21.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" dependencies = [ "cesu8", - "cfg-if", "combine", "jni-sys", "log", - "thiserror 1.0.69", + "thiserror 1.0.65", "walkdir", - "windows-sys 0.45.0", ] [[package]] @@ -8823,21 +8805,19 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.34" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ - "getrandom 0.3.3", "libc", ] [[package]] name = "js-sys" -version = "0.3.80" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852f13bec5eba4ba9afbeb93fd7c13fe56147f055939ae21c43a29a0ecb2702e" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ - "once_cell", "wasm-bindgen", ] @@ -8849,7 +8829,7 @@ checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" dependencies = [ "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -8862,7 +8842,7 @@ dependencies = [ "pest_derive", "regex", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -8878,9 +8858,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.24.9" +version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b26c20e2178756451cfeb0661fb74c47dd5988cb7e3939de7e9241fd604d42" +checksum = "834af00800e962dee8f7bfc0f60601de215e73e78e5497d733a2919da837d3c8" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -8896,24 +8876,24 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bacb85abf4117092455e1573625e21b8f8ef4dec8aff13361140b2dc266cdff2" +checksum = "548125b159ba1314104f5bb5f38519e03a41862786aa3925cf349aae9cdd546e" dependencies = [ "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", - "http 1.3.1", + "http 1.1.0", "jsonrpsee-core", "pin-project", - "rustls 0.23.31", + "rustls 0.23.18", "rustls-pki-types", "rustls-platform-verifier", "soketto", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", - "tokio-rustls 0.26.3", + "tokio-rustls 0.26.0", "tokio-util", "tracing", "url", @@ -8921,25 +8901,25 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456196007ca3a14db478346f58c7238028d55ee15c1df15115596e411ff27925" +checksum = "f2882f6f8acb9fdaec7cefc4fd607119a9bd709831df7d7672a1d3b644628280" dependencies = [ "async-trait", "bytes", "futures-timer", "futures-util", - "http 1.3.1", - "http-body 1.0.1", + "http 1.1.0", + "http-body 1.0.0", "http-body-util", "jsonrpsee-types", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-stream", "tracing", @@ -8948,53 +8928,53 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c872b6c9961a4ccc543e321bb5b89f6b2d2c7fe8b61906918273a3333c95400c" +checksum = "b3638bc4617f96675973253b3a45006933bde93c2fd8a6170b33c777cc389e5b" dependencies = [ "async-trait", "base64 0.22.1", - "http-body 1.0.1", - "hyper 1.7.0", - "hyper-rustls 0.27.7", + "http-body 1.0.0", + "hyper 1.6.0", + "hyper-rustls 0.27.3", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", - "rustls 0.23.31", + "rustls 0.23.18", "rustls-platform-verifier", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", - "tower 0.4.13", + "tower", "tracing", "url", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e65763c942dfc9358146571911b0cd1c361c2d63e2d2305622d40d36376ca80" +checksum = "c06c01ae0007548e73412c08e2285ffe5d723195bf268bce67b1b77c3bb2a14d" dependencies = [ "heck 0.5.0", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "jsonrpsee-server" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55e363146da18e50ad2b51a0a7925fc423137a0b1371af8235b1c231a0647328" +checksum = "82ad8ddc14be1d4290cd68046e7d1d37acd408efed6d3ca08aefcc3ad6da069c" dependencies = [ "futures-util", - "http 1.3.1", - "http-body 1.0.1", + "http 1.1.0", + "http-body 1.0.0", "http-body-util", - "hyper 1.7.0", + "hyper 1.6.0", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", @@ -9003,31 +8983,31 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-stream", "tokio-util", - "tower 0.4.13", + "tower", "tracing", ] [[package]] name = "jsonrpsee-types" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a8e70baf945b6b5752fc8eb38c918a48f1234daf11355e07106d963f860089" +checksum = "a178c60086f24cc35bb82f57c651d0d25d99c4742b4d335de04e97fa1f08a8a1" dependencies = [ - "http 1.3.1", + "http 1.1.0", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "jsonrpsee-wasm-client" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6558a9586cad43019dafd0b6311d0938f46efc116b34b28c74778bc11a2edf6" +checksum = "1a01cd500915d24ab28ca17527e23901ef1be6d659a2322451e1045532516c25" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -9036,11 +9016,11 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b3323d890aa384f12148e8d2a1fd18eb66e9e7e825f9de4fa53bcc19b93eef" +checksum = "0fe322e0896d0955a3ebdd5bf813571c53fea29edd713bc315b76620b327e86d" dependencies = [ - "http 1.3.1", + "http 1.1.0", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", @@ -9077,9 +9057,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" dependencies = [ "cpufeatures", ] @@ -9131,7 +9111,7 @@ checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" name = "kitchensink-runtime" version = "3.0.0-dev" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "log", "node-primitives", "pallet-example-mbm", @@ -9170,9 +9150,9 @@ dependencies = [ "either", "futures", "home", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", + "http 0.2.9", + "http-body 0.4.5", + "hyper 0.14.29", "hyper-rustls 0.24.2", "hyper-timeout", "jsonpath-rust", @@ -9181,17 +9161,17 @@ dependencies = [ "pem", "pin-project", "rand 0.8.5", - "rustls 0.21.12", - "rustls-pemfile", + "rustls 0.21.7", + "rustls-pemfile 1.0.3", "secrecy 0.8.0", "serde", "serde_json", "serde_yaml", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-tungstenite 0.20.1", "tokio-util", - "tower 0.4.13", + "tower", "tower-http 0.4.4", "tracing", ] @@ -9204,13 +9184,13 @@ checksum = "b5bba93d054786eba7994d03ce522f368ef7d48c88a1826faa28478d85fb63ae" dependencies = [ "chrono", "form_urlencoded", - "http 0.2.12", + "http 0.2.9", "json-patch", "k8s-openapi", "once_cell", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -9228,12 +9208,12 @@ dependencies = [ "json-patch", "k8s-openapi", "kube-client", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "serde", "serde_json", "smallvec", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-util", "tracing", @@ -9264,7 +9244,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parking_lot 0.12.4", + "parking_lot 0.12.3", ] [[package]] @@ -9275,7 +9255,7 @@ checksum = "e8beb5ce840610e5a945f0306f6e7a2d5b3e68ea3e64e9a4f081fa4ee5aa6525" dependencies = [ "kvdb", "num_cpus", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "regex", "rocksdb", ] @@ -9291,13 +9271,13 @@ dependencies = [ [[package]] name = "landlock" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9baa9eeb6e315942429397e617a190f4fdc696ef1ee0342939d641029cbb4ea7" +checksum = "1530c5b973eeed4ac216af7e24baf5737645a6272e361f1fb95710678b67d9cc" dependencies = [ "enumflags2", "libc", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -9309,6 +9289,12 @@ dependencies = [ "spin 0.9.8", ] +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + [[package]] name = "leb128fmt" version = "0.1.0" @@ -9317,9 +9303,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.175" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libflate" @@ -9343,19 +9329,20 @@ dependencies = [ [[package]] name = "libfuzzer-sys" -version = "0.4.10" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" +checksum = "a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7" dependencies = [ "arbitrary", "cc", + "once_cell", ] [[package]] name = "libgit2-sys" -version = "0.18.2+1.9.1" +version = "0.18.0+1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c42fe03df2bd3c53a3a9c7317ad91d80c81cd1fb0caec8d7cc4cd2bfa10c222" +checksum = "e1a117465e7e1597e8febea8bb0c410f1c7fb93b1e1cddf34363f8390367ffec" dependencies = [ "cc", "libc", @@ -9365,15 +9352,15 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.15" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libnghttp2-sys" -version = "0.1.11+1.64.0" +version = "0.1.9+1.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6c24e48a7167cffa7119da39d577fa482e66c688a4aac016bee862e1a713c4" +checksum = "b57e858af2798e167e709b9d969325b6d8e9d50232fcbc494d7d54f976854a64" dependencies = [ "cc", "libc", @@ -9389,7 +9376,7 @@ dependencies = [ "either", "futures", "futures-timer", - "getrandom 0.2.16", + "getrandom 0.2.10", "libp2p-allow-block-list", "libp2p-connection-limits", "libp2p-core", @@ -9408,10 +9395,10 @@ dependencies = [ "libp2p-upnp", "libp2p-websocket", "libp2p-yamux", - "multiaddr 0.18.2", + "multiaddr 0.18.1", "pin-project", "rw-stream-sink", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -9449,17 +9436,17 @@ dependencies = [ "futures", "futures-timer", "libp2p-identity", - "multiaddr 0.18.2", - "multihash 0.19.3", + "multiaddr 0.18.1", + "multihash 0.19.1", "multistream-select", "once_cell", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "quick-protobuf", "rand 0.8.5", "rw-stream-sink", "smallvec", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "unsigned-varint 0.8.0", "void", @@ -9474,10 +9461,10 @@ checksum = "97f37f30d5c7275db282ecd86e54f29dd2176bd3ac656f06abf43bedb21eb8bd" dependencies = [ "async-trait", "futures", - "hickory-resolver 0.24.4", + "hickory-resolver 0.24.2", "libp2p-core", "libp2p-identity", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "smallvec", "tracing", ] @@ -9500,25 +9487,25 @@ dependencies = [ "quick-protobuf", "quick-protobuf-codec", "smallvec", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "void", ] [[package]] name = "libp2p-identity" -version = "0.2.12" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3104e13b51e4711ff5738caa1fb54467c8604c2e94d607e27745bcf709068774" +checksum = "55cca1eb2bc1fd29f099f3daaab7effd01e1a54b7c577d0ed082521034d912e8" dependencies = [ "bs58", "ed25519-dalek", "hkdf", - "multihash 0.19.3", + "multihash 0.19.1", "quick-protobuf", "rand 0.8.5", "sha2 0.10.9", - "thiserror 2.0.16", + "thiserror 1.0.65", "tracing", "zeroize", ] @@ -9545,7 +9532,7 @@ dependencies = [ "rand 0.8.5", "sha2 0.10.9", "smallvec", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "uint 0.9.5", "void", @@ -9560,14 +9547,14 @@ checksum = "14b8546b6644032565eb29046b42744aee1e9f261ed99671b2c93fb140dba417" dependencies = [ "data-encoding", "futures", - "hickory-proto 0.24.4", + "hickory-proto 0.24.1", "if-watch", "libp2p-core", "libp2p-identity", "libp2p-swarm", "rand 0.8.5", "smallvec", - "socket2 0.5.10", + "socket2 0.5.9", "tokio", "tracing", "void", @@ -9603,15 +9590,15 @@ dependencies = [ "futures", "libp2p-core", "libp2p-identity", - "multiaddr 0.18.2", - "multihash 0.19.3", + "multiaddr 0.18.1", + "multihash 0.19.1", "once_cell", "quick-protobuf", "rand 0.8.5", "sha2 0.10.9", "snow", "static_assertions", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "x25519-dalek", "zeroize", @@ -9648,13 +9635,13 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-tls", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "quinn", "rand 0.8.5", - "ring 0.17.14", - "rustls 0.23.31", - "socket2 0.5.10", - "thiserror 1.0.69", + "ring 0.17.8", + "rustls 0.23.18", + "socket2 0.5.9", + "thiserror 1.0.65", "tokio", "tracing", ] @@ -9710,9 +9697,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "206e0aa0ebe004d778d79fb0966aa0de996c19894e2c0605ba2f8524dd4443d8" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -9727,7 +9714,7 @@ dependencies = [ "libc", "libp2p-core", "libp2p-identity", - "socket2 0.5.10", + "socket2 0.5.9", "tokio", "tracing", ] @@ -9743,10 +9730,10 @@ dependencies = [ "libp2p-core", "libp2p-identity", "rcgen", - "ring 0.17.14", - "rustls 0.23.31", - "rustls-webpki 0.101.7", - "thiserror 1.0.69", + "ring 0.17.8", + "rustls 0.23.18", + "rustls-webpki 0.101.4", + "thiserror 1.0.65", "x509-parser 0.16.0", "yasna", ] @@ -9778,14 +9765,14 @@ dependencies = [ "futures-rustls", "libp2p-core", "libp2p-identity", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project-lite", "rw-stream-sink", "soketto", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "url", - "webpki-roots 0.25.4", + "webpki-roots 0.25.2", ] [[package]] @@ -9797,21 +9784,10 @@ dependencies = [ "either", "futures", "libp2p-core", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "yamux 0.12.1", - "yamux 0.13.6", -] - -[[package]] -name = "libredox" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" -dependencies = [ - "bitflags 2.9.4", - "libc", - "redox_syscall 0.5.17", + "yamux 0.13.5", ] [[package]] @@ -9830,12 +9806,12 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.7.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ "arrayref", - "base64 0.22.1", + "base64 0.13.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -9855,7 +9831,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -9889,9 +9865,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.22" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", "libc", @@ -9901,9 +9877,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.12" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f78c730aaa7d0b9336a299029ea49f9ee53b0ed06e9202e8cb7db9bae7b8c82" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" dependencies = [ "cc", ] @@ -9916,33 +9892,39 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linked_hash_set" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae85b5be22d9843c80e5fc80e9b64c8a3b1f98f867c709956eca3efff4e92e2" +checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" dependencies = [ "linked-hash-map", ] [[package]] name = "linregress" -version = "0.5.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9eda9dcf4f2a99787827661f312ac3219292549c2ee992bf9a6248ffb066bf7" +checksum = "4de0b5f52a9f84544d268f5fabb71b38962d6aa3c6600b8bcd27d44ccf9c9c45" dependencies = [ "nalgebra", ] [[package]] name = "linux-raw-sys" -version = "0.4.15" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "lioness" @@ -9976,9 +9958,9 @@ dependencies = [ [[package]] name = "litemap" -version = "0.8.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "litep2p" @@ -9994,13 +9976,13 @@ dependencies = [ "futures", "futures-timer", "hickory-resolver 0.25.2", - "indexmap 2.11.3", + "indexmap 2.9.0", "libc", "mockall", "multiaddr 0.17.1", "multihash 0.17.0", "network-interface", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "prost 0.13.5", "prost-build", @@ -10010,8 +9992,8 @@ dependencies = [ "simple-dns", "smallvec", "snow", - "socket2 0.5.10", - "thiserror 2.0.16", + "socket2 0.5.9", + "thiserror 2.0.12", "tokio", "tokio-stream", "tokio-tungstenite 0.27.0", @@ -10022,16 +10004,16 @@ dependencies = [ "url", "x25519-dalek", "x509-parser 0.17.0", - "yamux 0.13.6", + "yamux 0.13.5", "yasna", "zeroize", ] [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", @@ -10039,9 +10021,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" dependencies = [ "serde", "value-bag", @@ -10057,16 +10039,16 @@ dependencies = [ "generator", "scoped-tls", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] name = "lru" -version = "0.12.5" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" dependencies = [ - "hashbrown 0.15.5", + "hashbrown 0.14.5", ] [[package]] @@ -10078,26 +10060,21 @@ dependencies = [ "linked-hash-map", ] -[[package]] -name = "lru-slab" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" - [[package]] name = "lz4" -version = "1.28.1" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4" +checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" dependencies = [ + "libc", "lz4-sys", ] [[package]] name = "lz4-sys" -version = "1.11.1+lz4-1.10.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" +checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" dependencies = [ "cc", "libc", @@ -10105,9 +10082,9 @@ dependencies = [ [[package]] name = "mach2" -version = "0.4.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" dependencies = [ "libc", ] @@ -10118,9 +10095,9 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -10132,7 +10109,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -10144,9 +10121,9 @@ dependencies = [ "const-random", "derive-syn-parse", "macro_magic_core_macros", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -10155,9 +10132,9 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -10168,7 +10145,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -10177,20 +10154,26 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + [[package]] name = "matchers" -version = "0.2.0" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] name = "matrixmultiply" -version = "0.3.10" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" dependencies = [ "autocfg", "rawpointer", @@ -10208,17 +10191,17 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memfd" -version = "0.6.5" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad38eb12aea514a0466ea40a80fd8cc83637065948eb4a426e4aa46261175227" +checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" dependencies = [ - "rustix 1.1.2", + "rustix 0.37.23", ] [[package]] @@ -10232,22 +10215,31 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.8" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" +checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92" dependencies = [ "libc", ] +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + [[package]] name = "memory-db" version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e300c54e3239a86f9c61cc63ab0f03862eb40b1c6e065dc6fd6ceaeff6da93d" dependencies = [ - "foldhash 0.1.5", + "foldhash", "hash-db", - "hashbrown 0.15.5", + "hashbrown 0.15.3", ] [[package]] @@ -10256,7 +10248,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3e3e3f549d27d2dc054372f320ddf68045a833fab490563ff70d4cf1b9d91ea" dependencies = [ - "array-bytes 9.3.0", + "array-bytes 9.1.2", "blake3", "frame-metadata 23.0.0", "parity-scale-codec", @@ -10288,7 +10280,7 @@ dependencies = [ "hex", "log", "num-traits", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "relay-utils", "sp-arithmetic", "sp-core 28.0.0", @@ -10332,22 +10324,23 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.9" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ - "adler2", + "adler", ] [[package]] name = "mio" -version = "1.0.4" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", ] [[package]] @@ -10366,12 +10359,12 @@ dependencies = [ "hashlink 0.8.4", "lioness", "log", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "rand_chacha 0.3.1", "rand_distr", - "subtle 2.6.1", - "thiserror 1.0.69", + "subtle 2.5.0", + "thiserror 1.0.65", "zeroize", ] @@ -10382,7 +10375,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-block-builder", "sc-client-api", "sc-offchain", @@ -10434,9 +10427,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" dependencies = [ "cfg-if", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -10449,12 +10442,12 @@ dependencies = [ "crossbeam-epoch", "crossbeam-utils", "loom", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "portable-atomic", - "rustc_version 0.4.1", + "rustc_version 0.4.0", "smallvec", "tagptr", - "thiserror 1.0.69", + "thiserror 1.0.65", "uuid", ] @@ -10485,20 +10478,20 @@ dependencies = [ [[package]] name = "multiaddr" -version = "0.18.2" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" +checksum = "8b852bc02a2da5feed68cd14fa50d0774b92790a5bdbfa932a813926c8472070" dependencies = [ "arrayref", "byteorder", "data-encoding", "libp2p-identity", "multibase", - "multihash 0.19.3", + "multihash 0.19.1", "percent-encoding", "serde", "static_assertions", - "unsigned-varint 0.8.0", + "unsigned-varint 0.7.2", "url", ] @@ -10532,23 +10525,23 @@ dependencies = [ [[package]] name = "multihash" -version = "0.19.3" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" +checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" dependencies = [ "core2", - "unsigned-varint 0.8.0", + "unsigned-varint 0.7.2", ] [[package]] name = "multihash-derive" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate 1.3.1", "proc-macro-error", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "syn 1.0.109", "synstructure 0.12.6", @@ -10556,9 +10549,9 @@ dependencies = [ [[package]] name = "multimap" -version = "0.10.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "multistream-select" @@ -10576,12 +10569,13 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.33.2" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" +checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" dependencies = [ "approx", "matrixmultiply", + "nalgebra-macros", "num-complex", "num-rational", "num-traits", @@ -10589,6 +10583,17 @@ dependencies = [ "typenum", ] +[[package]] +name = "nalgebra-macros" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" +dependencies = [ + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 1.0.109", +] + [[package]] name = "names" version = "0.14.0" @@ -10606,9 +10611,9 @@ checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" [[package]] name = "native-tls" -version = "0.2.14" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" dependencies = [ "libc", "log", @@ -10616,27 +10621,28 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework 2.11.1", + "security-framework", "security-framework-sys", "tempfile", ] [[package]] name = "netlink-packet-core" -version = "0.7.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" +checksum = "345b8ab5bd4e71a2986663e88c56856699d060e78e152e6e9d7966fcd5491297" dependencies = [ "anyhow", "byteorder", + "libc", "netlink-packet-utils", ] [[package]] name = "netlink-packet-route" -version = "0.17.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66" +checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", "bitflags 1.3.2", @@ -10655,28 +10661,29 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "netlink-proto" -version = "0.11.5" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60" +checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" dependencies = [ "bytes", "futures", "log", "netlink-packet-core", "netlink-sys", - "thiserror 2.0.16", + "thiserror 1.0.65", + "tokio", ] [[package]] name = "netlink-sys" -version = "0.8.7" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" +checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" dependencies = [ "bytes", "futures", @@ -10687,21 +10694,21 @@ dependencies = [ [[package]] name = "network-interface" -version = "2.0.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07709a6d4eba90ab10ec170a0530b3aafc81cb8a2d380e4423ae41fc55fe5745" +checksum = "c3329f515506e4a2de3aa6e07027a6758e22e0f0e8eaf64fa47261cec2282602" dependencies = [ "cc", "libc", - "thiserror 2.0.16", + "thiserror 1.0.65", "winapi", ] [[package]] name = "nix" -version = "0.26.4" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ "bitflags 1.3.2", "cfg-if", @@ -10731,18 +10738,6 @@ dependencies = [ "libc", ] -[[package]] -name = "nix" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" -dependencies = [ - "bitflags 2.9.4", - "cfg-if", - "cfg_aliases 0.2.1", - "libc", -] - [[package]] name = "no-std-compat" version = "0.4.1" @@ -10753,10 +10748,10 @@ checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" name = "node-bench" version = "0.9.0-dev" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-trait", "clap", - "derive_more 0.99.20", + "derive_more 0.99.17", "fs_extra", "futures", "hash-db", @@ -10940,18 +10935,19 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.50.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ - "windows-sys 0.52.0", + "overload", + "winapi", ] [[package]] name = "num" -version = "0.4.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" dependencies = [ "num-bigint", "num-complex", @@ -10990,9 +10986,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.6" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -11009,9 +11005,9 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -11035,9 +11031,9 @@ dependencies = [ [[package]] name = "num-iter" -version = "0.1.45" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ "autocfg", "num-integer", @@ -11046,10 +11042,11 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ + "autocfg", "num-bigint", "num-integer", "num-traits", @@ -11067,9 +11064,9 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.17.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ "hermit-abi", "libc", @@ -11091,10 +11088,10 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -11126,6 +11123,15 @@ dependencies = [ "smallvec", ] +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + [[package]] name = "object" version = "0.36.7" @@ -11133,18 +11139,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "crc32fast", - "hashbrown 0.15.5", - "indexmap 2.11.3", + "hashbrown 0.15.3", + "indexmap 2.9.0", "memchr", ] [[package]] name = "oid-registry" -version = "0.7.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" +checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d" dependencies = [ - "asn1-rs 0.6.2", + "asn1-rs 0.6.1", ] [[package]] @@ -11153,7 +11159,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" dependencies = [ - "asn1-rs 0.7.1", + "asn1-rs 0.7.0", ] [[package]] @@ -11166,17 +11172,11 @@ dependencies = [ "portable-atomic", ] -[[package]] -name = "once_cell_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" - [[package]] name = "oorandom" -version = "11.1.5" +version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" [[package]] name = "opaque-debug" @@ -11186,15 +11186,15 @@ checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] name = "opaque-debug" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ "bitflags 2.9.4", "cfg-if", @@ -11211,22 +11211,22 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "openssl-probe" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.109" +version = "0.9.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" dependencies = [ "cc", "libc", @@ -11253,7 +11253,7 @@ dependencies = [ "orchestra-proc-macro", "pin-project", "prioritized-metered-channel", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", ] @@ -11264,11 +11264,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43dfaf083aef571385fccfdc3a2f8ede8d0a1863160455d4f2b014d8f7d04a3f" dependencies = [ "expander", - "indexmap 2.11.3", + "indexmap 2.9.0", "itertools 0.11.0", - "petgraph 0.6.5", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "petgraph", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", "syn 1.0.109", ] @@ -11284,19 +11284,25 @@ dependencies = [ [[package]] name = "os_pipe" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db335f4760b14ead6290116f2427bf33a14d4f0617d49f78a246de10c1831224" +checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" dependencies = [ "libc", "windows-sys 0.59.0", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "owo-colors" -version = "4.2.2" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e" +checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" [[package]] name = "p256" @@ -11361,7 +11367,7 @@ dependencies = [ name = "pallet-alliance" version = "27.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "frame-benchmarking", "frame-support", "frame-system", @@ -11716,7 +11722,7 @@ dependencies = [ name = "pallet-beefy-mmr" version = "28.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "binary-merkle-tree", "frame-benchmarking", "frame-support", @@ -11969,7 +11975,7 @@ dependencies = [ name = "pallet-contracts" version = "27.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "environmental", "frame-benchmarking", @@ -12015,7 +12021,7 @@ dependencies = [ "parity-wasm", "sp-runtime", "tempfile", - "toml 0.8.23", + "toml", "twox-hash 1.6.3", ] @@ -12054,9 +12060,9 @@ dependencies = [ name = "pallet-contracts-proc-macro" version = "18.0.0" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -12228,7 +12234,7 @@ dependencies = [ "pallet-staking", "pallet-timestamp", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "scale-info", "sp-core 28.0.0", "sp-io", @@ -12249,7 +12255,7 @@ dependencies = [ "log", "pallet-balances", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "scale-info", "sp-arithmetic", @@ -12274,7 +12280,7 @@ dependencies = [ "log", "pallet-balances", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "scale-info", "sp-arithmetic", @@ -13136,9 +13142,9 @@ dependencies = [ "alloy-consensus", "alloy-core", "alloy-trie", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", - "derive_more 0.99.20", + "derive_more 0.99.17", "environmental", "ethereum-standards", "ethereum-types", @@ -13198,7 +13204,7 @@ dependencies = [ "alloy-core", "anyhow", "clap", - "env_logger 0.11.8", + "env_logger 0.11.3", "futures", "git2", "hex", @@ -13227,7 +13233,7 @@ dependencies = [ "substrate-prometheus-endpoint", "subxt 0.43.0", "subxt-signer 0.43.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -13244,16 +13250,16 @@ dependencies = [ "serde_json", "sp-core 28.0.0", "sp-io", - "toml 0.8.23", + "toml", ] [[package]] name = "pallet-revive-proc-macro" version = "0.1.0" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -13330,7 +13336,7 @@ dependencies = [ name = "pallet-sassafras" version = "0.3.5-dev" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "frame-benchmarking", "frame-support", "frame-system", @@ -13483,7 +13489,7 @@ name = "pallet-staking-async" version = "0.1.0" dependencies = [ "anyhow", - "env_logger 0.11.8", + "env_logger 0.11.3", "frame-benchmarking", "frame-election-provider-support", "frame-support", @@ -13811,11 +13817,11 @@ dependencies = [ name = "pallet-staking-reward-curve" version = "11.0.0" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", "sp-runtime", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -13986,7 +13992,7 @@ dependencies = [ name = "pallet-transaction-storage" version = "27.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "frame-benchmarking", "frame-support", "frame-system", @@ -14337,9 +14343,9 @@ checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67" [[package]] name = "parity-db" -version = "0.4.13" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" +checksum = "59e9ab494af9e6e813c72170f0d3c1de1500990d62c97cc05cc7576f91aa402f" dependencies = [ "blake2 0.10.6", "crc32fast", @@ -14349,11 +14355,10 @@ dependencies = [ "log", "lz4", "memmap2 0.5.10", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "siphasher 0.3.11", "snap", - "winapi", ] [[package]] @@ -14379,10 +14384,10 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -14410,12 +14415,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.11", + "parking_lot_core 0.9.8", ] [[package]] @@ -14434,15 +14439,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.3.5", "smallvec", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] @@ -14459,7 +14464,7 @@ checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" dependencies = [ "base64ct", "rand_core 0.6.4", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -14481,9 +14486,9 @@ dependencies = [ [[package]] name = "pem" -version = "3.0.5" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ "base64 0.22.1", "serde", @@ -14783,26 +14788,25 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.8.2" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e0a3a33733faeaf8651dfee72dd0f388f0c8e5ad496a3478fa5a922f49cfa8" +checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" dependencies = [ - "memchr", - "thiserror 2.0.16", + "thiserror 1.0.65", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.8.2" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc58706f770acb1dbd0973e6530a3cff4746fb721207feb3a8a6064cd0b6c663" +checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853" dependencies = [ "pest", "pest_generator", @@ -14810,45 +14814,36 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.2" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d4f36811dfe07f7b8573462465d5cb8965fffc2e71ae377a33aecf14c2c9a2f" +checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "pest_meta" -version = "2.8.2" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42919b05089acbd0a5dcd5405fb304d17d1053847b81163d09c4ad18ce8e8420" +checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48" dependencies = [ + "once_cell", "pest", "sha2 0.10.9", ] [[package]] name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset 0.4.2", - "indexmap 2.11.3", -] - -[[package]] -name = "petgraph" -version = "0.7.1" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ - "fixedbitset 0.5.7", - "indexmap 2.11.3", + "fixedbitset", + "indexmap 2.9.0", ] [[package]] @@ -14879,9 +14874,9 @@ checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" dependencies = [ "phf_generator", "phf_shared", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -14908,16 +14903,16 @@ version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -14925,17 +14920,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "piper" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" -dependencies = [ - "atomic-waker", - "fastrand 2.3.0", - "futures-io", -] - [[package]] name = "pkcs1" version = "0.7.5" @@ -14965,9 +14949,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plotters" -version = "0.3.7" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" dependencies = [ "num-traits", "plotters-backend", @@ -14978,15 +14962,15 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.7" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" [[package]] name = "plotters-svg" -version = "0.3.7" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" dependencies = [ "plotters-backend", ] @@ -15032,7 +15016,7 @@ dependencies = [ "rand_chacha 0.3.1", "rand_core 0.6.4", "sc-keystore", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "sp-application-crypto", "sp-authority-discovery", "sp-core 28.0.0", @@ -15091,7 +15075,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15121,7 +15105,7 @@ dependencies = [ "sp-core 28.0.0", "sp-keyring", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tracing-gum", ] @@ -15158,7 +15142,7 @@ dependencies = [ "sp-keyring", "sp-runtime", "substrate-build-script-utils", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -15188,7 +15172,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-util", "tracing-gum", @@ -15214,7 +15198,7 @@ dependencies = [ "fatality", "futures", "futures-timer", - "indexmap 2.11.3", + "indexmap 2.9.0", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -15229,7 +15213,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15245,7 +15229,7 @@ dependencies = [ "reed-solomon-novelpoly", "sp-core 28.0.0", "sp-trie", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -15256,7 +15240,7 @@ dependencies = [ "async-trait", "futures", "futures-timer", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", @@ -15289,7 +15273,7 @@ dependencies = [ "futures", "futures-timer", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -15302,7 +15286,7 @@ dependencies = [ "sp-consensus", "sp-core 28.0.0", "sp-keyring", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15324,7 +15308,7 @@ dependencies = [ "schnellru", "sp-core 28.0.0", "sp-keyring", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15335,14 +15319,14 @@ dependencies = [ "assert_matches", "async-trait", "bitvec", - "derive_more 0.99.20", + "derive_more 0.99.17", "futures", "futures-timer", "itertools 0.11.0", "kvdb-memorydb", "merlin", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", @@ -15356,7 +15340,7 @@ dependencies = [ "rand_core 0.6.4", "sc-keystore", "schnellru", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "sp-application-crypto", "sp-consensus", "sp-consensus-babe", @@ -15366,7 +15350,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15392,7 +15376,7 @@ dependencies = [ "rand 0.8.5", "rand_core 0.6.4", "sc-keystore", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "sp-consensus", "sp-consensus-babe", "sp-core 28.0.0", @@ -15411,7 +15395,7 @@ dependencies = [ "futures-timer", "kvdb-memorydb", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -15423,7 +15407,7 @@ dependencies = [ "sp-core 28.0.0", "sp-keyring", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15451,7 +15435,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15466,7 +15450,7 @@ dependencies = [ "polkadot-primitives", "polkadot-primitives-test-helpers", "sp-keystore", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", "wasm-timer", ] @@ -15528,14 +15512,14 @@ dependencies = [ "futures-timer", "kvdb-memorydb", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", "polkadot-node-subsystem-util", "polkadot-primitives", "sp-core 28.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15563,7 +15547,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15579,7 +15563,7 @@ dependencies = [ "polkadot-primitives", "sp-blockchain", "sp-inherents", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15599,7 +15583,7 @@ dependencies = [ "rstest", "sp-core 28.0.0", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15621,7 +15605,7 @@ dependencies = [ "schnellru", "sp-application-crypto", "sp-keystore", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15630,7 +15614,7 @@ name = "polkadot-node-core-pvf" version = "7.0.0" dependencies = [ "always-assert", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "criterion", "futures", @@ -15662,7 +15646,7 @@ dependencies = [ "tempfile", "test-parachain-adder", "test-parachain-halt", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tracing-gum", ] @@ -15711,7 +15695,7 @@ dependencies = [ "sp-io", "sp-tracing 16.0.0", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15780,7 +15764,7 @@ dependencies = [ "futures", "futures-timer", "http-body-util", - "hyper 1.7.0", + "hyper 1.6.0", "hyper-util", "parity-scale-codec", "polkadot-primitives", @@ -15802,7 +15786,7 @@ dependencies = [ "async-channel 1.9.0", "async-trait", "bitvec", - "derive_more 0.99.20", + "derive_more 0.99.17", "fatality", "futures", "hex", @@ -15816,7 +15800,7 @@ dependencies = [ "sc-network-types", "sp-runtime", "strum 0.26.3", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15832,14 +15816,14 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-primitives", "sc-keystore", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "serde", "sp-application-crypto", "sp-consensus-babe", "sp-consensus-slots", "sp-keystore", "sp-maybe-compressed-blob", - "thiserror 1.0.69", + "thiserror 1.0.65", "zstd 0.12.4", ] @@ -15857,7 +15841,7 @@ version = "1.0.0" dependencies = [ "async-trait", "futures", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -15877,7 +15861,7 @@ name = "polkadot-node-subsystem-types" version = "7.0.0" dependencies = [ "async-trait", - "derive_more 0.99.20", + "derive_more 0.99.17", "fatality", "futures", "orchestra", @@ -15896,7 +15880,7 @@ dependencies = [ "sp-consensus-babe", "sp-runtime", "substrate-prometheus-endpoint", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -15911,7 +15895,7 @@ dependencies = [ "kvdb-shared-tests", "parity-db", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-erasure-coding", "polkadot-node-metrics", "polkadot-node-network-protocol", @@ -15929,7 +15913,7 @@ dependencies = [ "sp-core 28.0.0", "sp-keystore", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -16098,9 +16082,9 @@ dependencies = [ name = "polkadot-parachain-primitives" version = "6.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "bounded-collections 0.3.2", - "derive_more 0.99.20", + "derive_more 0.99.17", "parity-scale-codec", "polkadot-core-primitives", "scale-info", @@ -16135,7 +16119,7 @@ dependencies = [ "sp-runtime", "sp-staking", "sp-std 14.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -16870,7 +16854,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "parity-db", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -16958,7 +16942,7 @@ dependencies = [ "staging-xcm", "substrate-prometheus-endpoint", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", "westend-runtime", "westend-runtime-constants", @@ -16994,7 +16978,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -17239,7 +17223,7 @@ version = "0.1.0" dependencies = [ "anyhow", "cumulus-zombienet-sdk-helpers", - "env_logger 0.11.8", + "env_logger 0.11.3", "log", "parity-scale-codec", "polkadot-primitives", @@ -17361,9 +17345,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f2116a92e6e96220a398930f4c8a6cda1264206f3e2034fc9982bfd93f261f7" dependencies = [ "polkavm-common 0.18.0", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -17373,9 +17357,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6069dc7995cde6e612b868a02ce48b54397c6d2582bd1b97b63aabbe962cd779" dependencies = [ "polkavm-common 0.26.0", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -17385,9 +17369,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8abdd1210d96b1dda9ac21199ec469448fd628cea102e2ff0e0df1667c4c3b5f" dependencies = [ "polkavm-common 0.27.0", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -17397,7 +17381,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c16669ddc7433e34c1007d31080b80901e3e8e523cb9d4b441c3910cf9294b" dependencies = [ "polkavm-derive-impl 0.18.1", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -17407,7 +17391,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581d34cafec741dc5ffafbb341933c205b6457f3d76257a9d99fb56687219c91" dependencies = [ "polkavm-derive-impl 0.26.0", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -17417,7 +17401,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a45173d70138aa1879892c50777ed0d8b0c8556f7678372f09fa1d89bbbddb4" dependencies = [ "polkavm-derive-impl 0.27.0", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -17427,10 +17411,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "beb896023e5bd89bba40311797d8d42490fa4a1fd5256c74820753c5722d1e67" dependencies = [ "dirs", - "gimli", + "gimli 0.31.1", "hashbrown 0.14.5", "log", - "object", + "object 0.36.7", "polkavm-common 0.26.0", "regalloc2 0.9.3", "rustc-demangle", @@ -17443,10 +17427,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99fe3704d21e96c5d1e6a1b1a43ac57f9dce110d3331fbf8299e9f57d5884066" dependencies = [ "dirs", - "gimli", + "gimli 0.31.1", "hashbrown 0.14.5", "log", - "object", + "object 0.36.7", "polkavm-common 0.27.0", "regalloc2 0.9.3", "rustc-demangle", @@ -17482,16 +17466,16 @@ dependencies = [ [[package]] name = "polling" -version = "3.11.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi", "pin-project-lite", - "rustix 1.1.2", - "windows-sys 0.61.0", + "rustix 0.38.42", + "tracing", + "windows-sys 0.52.0", ] [[package]] @@ -17501,36 +17485,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.1", + "opaque-debug 0.3.0", "universal-hash", ] [[package]] name = "polyval" -version = "0.6.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" dependencies = [ "cfg-if", "cpufeatures", - "opaque-debug 0.3.1", + "opaque-debug 0.3.0", "universal-hash", ] [[package]] name = "portable-atomic" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" - -[[package]] -name = "portable-atomic-util" -version = "0.2.4" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" -dependencies = [ - "portable-atomic", -] +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "portpicker" @@ -17553,15 +17528,6 @@ dependencies = [ "serde", ] -[[package]] -name = "potential_utf" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" -dependencies = [ - "zerovec", -] - [[package]] name = "powerfmt" version = "0.2.0" @@ -17581,44 +17547,42 @@ dependencies = [ "log", "nix 0.27.1", "once_cell", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "smallvec", "symbolic-demangle", "tempfile", - "thiserror 2.0.16", + "thiserror 2.0.12", ] [[package]] name = "ppv-lite86" -version = "0.2.21" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "3.1.3" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" +checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9" dependencies = [ "anstyle", "difflib", + "itertools 0.10.5", "predicates-core", ] [[package]] name = "predicates-core" -version = "1.0.9" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" [[package]] name = "predicates-tree" -version = "1.0.12" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" dependencies = [ "predicates-core", "termtree", @@ -17626,9 +17590,9 @@ dependencies = [ [[package]] name = "pretty_assertions" -version = "1.4.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" dependencies = [ "diff", "yansi", @@ -17636,12 +17600,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.37" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" dependencies = [ - "proc-macro2 1.0.101", - "syn 2.0.106", + "proc-macro2 1.0.95", + "syn 2.0.98", ] [[package]] @@ -17687,31 +17651,31 @@ checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" dependencies = [ "coarsetime", "crossbeam-queue", - "derive_more 0.99.20", + "derive_more 0.99.17", "futures", "futures-timer", "nanorand", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", ] [[package]] name = "proc-macro-crate" -version = "1.1.3" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ - "thiserror 1.0.69", - "toml 0.5.11", + "once_cell", + "toml_edit 0.19.15", ] [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit 0.23.5", + "toml_edit 0.21.0", ] [[package]] @@ -17721,7 +17685,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "syn 1.0.109", "version_check", @@ -17733,7 +17697,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "version_check", ] @@ -17744,7 +17708,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", ] @@ -17755,20 +17719,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ "proc-macro-error-attr2", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + [[package]] name = "proc-macro-warning" -version = "1.84.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75eea531cfcd120e0851a3f8aed42c4841f78c889eefafd96339c72677ae42c3" +checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -17782,9 +17752,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -17801,7 +17771,7 @@ dependencies = [ "hex", "lazy_static", "procfs-core", - "rustix 0.38.44", + "rustix 0.38.42", ] [[package]] @@ -17817,16 +17787,16 @@ dependencies = [ [[package]] name = "prometheus" -version = "0.13.4" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" +checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" dependencies = [ "cfg-if", "fnv", "lazy_static", "memchr", - "parking_lot 0.12.4", - "thiserror 1.0.69", + "parking_lot 0.12.3", + "thiserror 1.0.65", ] [[package]] @@ -17837,7 +17807,7 @@ checksum = "504ee9ff529add891127c4827eb481bd69dc0ebc72e9a682e187db4caa60c3ca" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "prometheus-client-derive-encode", ] @@ -17847,38 +17817,38 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "prometheus-parse" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "811031bea65e5a401fb2e1f37d802cca6601e204ac463809a3189352d13b78a5" +checksum = "0c2aa5feb83bf4b2c8919eaf563f51dbab41183de73ba2353c0e03cd7b6bd892" dependencies = [ "chrono", - "itertools 0.12.1", + "itertools 0.10.5", "once_cell", "regex", ] [[package]] name = "proptest" -version = "1.7.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", "bitflags 2.9.4", "lazy_static", "num-traits", - "rand 0.9.2", - "rand_chacha 0.9.0", + "rand 0.8.5", + "rand_chacha 0.3.1", "rand_xorshift", - "regex-syntax", + "regex-syntax 0.8.5", "rusty-fork", "tempfile", "unarray", @@ -17916,21 +17886,22 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.13.5" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +checksum = "f8650aabb6c35b860610e9cff5dc1af886c9e25073b7b1712a68972af4281302" dependencies = [ + "bytes", "heck 0.5.0", - "itertools 0.14.0", + "itertools 0.13.0", "log", "multimap", "once_cell", - "petgraph 0.7.1", + "petgraph", "prettyplease", "prost 0.13.5", "prost-types", "regex", - "syn 2.0.106", + "syn 2.0.98", "tempfile", ] @@ -17942,7 +17913,7 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools 0.10.5", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "syn 1.0.109", ] @@ -17955,9 +17926,9 @@ checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", "itertools 0.12.1", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -17968,16 +17939,16 @@ checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", "itertools 0.14.0", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "prost-types" -version = "0.13.5" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" +checksum = "60caa6738c7369b940c3d49246a8d1749323674c65cb13010134f5c9bad5b519" dependencies = [ "prost 0.13.5", ] @@ -18000,9 +17971,9 @@ version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "938543690519c20c3a480d20a8efcc8e69abeb44093ab1df4e7c1f81f26c677a" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -18018,33 +17989,35 @@ dependencies = [ "prost 0.11.9", "reqwest", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "url", "winapi", ] [[package]] name = "pyroscope_pprofrs" -version = "0.2.10" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50da7a8950c542357de489aa9ee628f46322b1beaac1f4fa3313bcdebe85b4ea" +checksum = "614a25777053da6bdca9d84a67892490b5a57590248dbdee3d7bf0716252af70" dependencies = [ "log", "pprof2", "pyroscope", + "thiserror 1.0.65", ] [[package]] name = "quanta" -version = "0.12.6" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" +checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab" dependencies = [ "crossbeam-utils", "libc", + "mach2", "once_cell", "raw-cpuid", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", "web-sys", "winapi", ] @@ -18073,7 +18046,7 @@ dependencies = [ "asynchronous-codec 0.7.0", "bytes", "quick-protobuf", - "thiserror 1.0.69", + "thiserror 1.0.65", "unsigned-varint 0.8.0", ] @@ -18085,7 +18058,7 @@ checksum = "5253a3a0d56548d5b0be25414171dc780cc6870727746d05bd2bde352eee96c5" dependencies = [ "ahash", "hashbrown 0.13.2", - "parking_lot 0.12.4", + "parking_lot 0.12.3", ] [[package]] @@ -18101,58 +18074,51 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.9" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" dependencies = [ "bytes", - "cfg_aliases 0.2.1", "futures-io", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.31", - "socket2 0.6.0", - "thiserror 2.0.16", + "rustls 0.23.18", + "socket2 0.5.9", + "thiserror 1.0.65", "tokio", "tracing", - "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.13" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ "bytes", - "getrandom 0.3.3", - "lru-slab", - "rand 0.9.2", - "ring 0.17.14", + "rand 0.8.5", + "ring 0.17.8", "rustc-hash 2.1.1", - "rustls 0.23.31", - "rustls-pki-types", + "rustls 0.23.18", "slab", - "thiserror 2.0.16", + "thiserror 1.0.65", "tinyvec", "tracing", - "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.14" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" dependencies = [ - "cfg_aliases 0.2.1", "libc", "once_cell", - "socket2 0.6.0", + "socket2 0.5.9", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -18170,15 +18136,9 @@ version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", ] -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - [[package]] name = "radium" version = "0.7.0" @@ -18198,13 +18158,14 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.3", + "rand_core 0.9.1", "serde", + "zerocopy 0.8.20", ] [[package]] @@ -18224,7 +18185,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", + "rand_core 0.9.1", ] [[package]] @@ -18233,17 +18194,18 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.10", ] [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "a88e0da7a2c97baa202165137c158d0a2e824ac465d13d81046727b34cb247d3" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.1", "serde", + "zerocopy 0.8.20", ] [[package]] @@ -18267,20 +18229,20 @@ dependencies = [ [[package]] name = "rand_xorshift" -version = "0.4.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core 0.9.3", + "rand_core 0.6.4", ] [[package]] name = "raw-cpuid" -version = "11.6.0" +version = "10.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" +checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" dependencies = [ - "bitflags 2.9.4", + "bitflags 1.3.2", ] [[package]] @@ -18291,9 +18253,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.11.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -18301,9 +18263,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.13.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -18352,22 +18314,31 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ "bitflags 2.9.4", ] [[package]] name = "redox_users" -version = "0.4.6" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 1.0.69", + "getrandom 0.2.10", + "redox_syscall 0.2.16", + "thiserror 1.0.65", ] [[package]] @@ -18376,30 +18347,30 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87413ebb313323d431e85d0afc5a68222aaed972843537cbfe5f061cf1b4bcab" dependencies = [ - "derive_more 0.99.20", + "derive_more 0.99.17", "fs-err", "static_init", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "ref-cast" -version = "1.0.24" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.24" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -18423,7 +18394,7 @@ checksum = "5216b1837de2149f8bc8e6d5f88a9326b63b8c836ed58ce4a0a29ec736a59734" dependencies = [ "allocator-api2", "bumpalo", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "log", "rustc-hash 2.1.1", "smallvec", @@ -18431,38 +18402,59 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.2" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata", - "regex-syntax", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] name = "regex-automata" -version = "0.4.10" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" + +[[package]] +name = "regex-automata" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.8.5", ] [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "relative-path" -version = "1.9.3" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" +checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc" [[package]] name = "relay-substrate-client" @@ -18500,7 +18492,7 @@ dependencies = [ "sp-trie", "sp-version", "staging-xcm", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -18518,13 +18510,13 @@ dependencies = [ "jsonpath_lib", "log", "num-traits", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "serde_json", "sp-runtime", "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "sysinfo", - "thiserror 1.0.69", + "thiserror 1.0.65", "time", "tokio", ] @@ -18546,9 +18538,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.23" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64 0.22.1", "bytes", @@ -18556,45 +18548,52 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.12", - "http 1.3.1", - "http-body 1.0.1", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.0", "http-body-util", - "hyper 1.7.0", - "hyper-rustls 0.27.7", + "hyper 1.6.0", + "hyper-rustls 0.27.3", "hyper-tls", "hyper-util", + "ipnet", "js-sys", "log", "mime", "native-tls", + "once_cell", "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.31", + "rustls 0.23.18", + "rustls-pemfile 2.0.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", + "system-configuration 0.6.1", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.3", - "tower 0.5.2", - "tower-http 0.6.6", + "tokio-rustls 0.26.0", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 1.0.2", + "webpki-roots 0.26.3", + "windows-registry", ] [[package]] name = "resolv-conf" -version = "0.7.5" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +dependencies = [ + "hostname", + "quick-error", +] [[package]] name = "revive-dev-node" @@ -18613,7 +18612,7 @@ dependencies = [ name = "revive-dev-runtime" version = "0.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "parity-scale-codec", "polkadot-sdk", "scale-info", @@ -18816,7 +18815,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ "hmac 0.12.1", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -18836,14 +18835,15 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.14" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.16", + "getrandom 0.2.10", "libc", + "spin 0.9.8", "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -19112,20 +19112,20 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "rpassword" -version = "7.4.0" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d4c8b64f049c6721ec8ccec37ddfc3d641c4a7fca57e8f2a89de509c73df39" +checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" dependencies = [ "libc", "rtoolbox", - "windows-sys 0.59.0", + "winapi", ] [[package]] name = "rsa" -version = "0.9.8" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +checksum = "af6c4b23d99685a1408194da11270ef8e9809aff951cc70ec9b17350b087e474" dependencies = [ "const-oid", "digest 0.10.7", @@ -19137,7 +19137,7 @@ dependencies = [ "rand_core 0.6.4", "signature", "spki", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] @@ -19150,7 +19150,7 @@ dependencies = [ "futures", "futures-timer", "rstest_macros", - "rustc_version 0.4.1", + "rustc_version 0.4.0", ] [[package]] @@ -19161,41 +19161,38 @@ checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605" dependencies = [ "cfg-if", "glob", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "regex", "relative-path", - "rustc_version 0.4.1", - "syn 2.0.106", + "rustc_version 0.4.0", + "syn 2.0.98", "unicode-ident", ] [[package]] name = "rtnetlink" -version = "0.13.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0" +checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" dependencies = [ "futures", "log", - "netlink-packet-core", "netlink-packet-route", - "netlink-packet-utils", "netlink-proto", - "netlink-sys", - "nix 0.26.4", - "thiserror 1.0.69", + "nix 0.24.3", + "thiserror 1.0.65", "tokio", ] [[package]] name = "rtoolbox" -version = "0.0.3" +version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cc970b249fbe527d6e02e0a227762c9108b2f49d81094fe357ffc6d14d7f6f" +checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" dependencies = [ "libc", - "windows-sys 0.52.0", + "winapi", ] [[package]] @@ -19212,9 +19209,9 @@ dependencies = [ [[package]] name = "ruint" -version = "1.16.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecb38f82477f20c5c3d62ef52d7c4e536e38ea9b73fb570a20c5cae0e14bcf6" +checksum = "11256b5fe8c68f56ac6f39ef0720e592f33d2367a4782740d9c9142e889c7fb4" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", @@ -19229,7 +19226,7 @@ dependencies = [ "primitive-types 0.12.2", "proptest", "rand 0.8.5", - "rand 0.9.2", + "rand 0.9.0", "rlp 0.5.2", "ruint-macro", "serde", @@ -19245,9 +19242,9 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rustc-demangle" -version = "0.1.26" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustc-hash" @@ -19287,11 +19284,11 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.27", + "semver 1.0.18", ] [[package]] @@ -19305,54 +19302,68 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.44" +version = "0.37.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ "bitflags 2.9.4", "errno", "libc", - "linux-raw-sys 0.4.15", + "linux-raw-sys 0.4.14", "windows-sys 0.59.0", ] [[package]] name = "rustix" -version = "1.1.2" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ "bitflags 2.9.4", "errno", "libc", - "linux-raw-sys 0.11.0", - "windows-sys 0.61.0", + "linux-raw-sys 0.9.4", + "windows-sys 0.60.2", ] [[package]] name = "rustls" -version = "0.21.12" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" dependencies = [ "log", - "ring 0.17.14", - "rustls-webpki 0.101.7", + "ring 0.16.20", + "rustls-webpki 0.101.4", "sct", ] [[package]] name = "rustls" -version = "0.23.31" +version = "0.23.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "9c9cc1d47e243d655ace55ed38201c19ae02c148ae56412ab8750e8f0166ab7f" dependencies = [ "log", "once_cell", - "ring 0.17.14", + "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.103.6", - "subtle 2.6.1", + "rustls-webpki 0.102.8", + "subtle 2.5.0", "zeroize", ] @@ -19363,95 +19374,115 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.3", "schannel", - "security-framework 2.11.1", + "security-framework", ] [[package]] name = "rustls-native-certs" -version = "0.8.1" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.0.0", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" dependencies = [ "openssl-probe", + "rustls-pemfile 2.0.0", "rustls-pki-types", "schannel", - "security-framework 3.4.0", + "security-framework", ] [[package]] name = "rustls-pemfile" -version = "1.0.4" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ "base64 0.21.7", ] [[package]] -name = "rustls-pki-types" -version = "1.12.0" +name = "rustls-pemfile" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4" dependencies = [ - "web-time", - "zeroize", + "base64 0.21.7", + "rustls-pki-types", ] +[[package]] +name = "rustls-pki-types" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" + [[package]] name = "rustls-platform-verifier" -version = "0.5.3" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" +checksum = "b5f0d26fa1ce3c790f9590868f0109289a044acb954525f933e2aa3b871c157d" dependencies = [ - "core-foundation 0.10.1", + "core-foundation", "core-foundation-sys", "jni", "log", "once_cell", - "rustls 0.23.31", - "rustls-native-certs 0.8.1", + "rustls 0.23.18", + "rustls-native-certs 0.7.0", "rustls-platform-verifier-android", - "rustls-webpki 0.103.6", - "security-framework 3.4.0", + "rustls-webpki 0.102.8", + "security-framework", "security-framework-sys", - "webpki-root-certs 0.26.11", - "windows-sys 0.59.0", + "webpki-roots 0.26.3", + "winapi", ] [[package]] name = "rustls-platform-verifier-android" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" +checksum = "84e217e7fdc8466b5b35d30f8c0a30febd29173df4a3a0c2115d306b9c4117ad" [[package]] name = "rustls-webpki" -version = "0.101.7" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d" dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", + "ring 0.16.20", + "untrusted 0.7.1", ] [[package]] name = "rustls-webpki" -version = "0.103.6" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8572f3c2cb9934231157b45499fc41e1f58c589fdfb81a844ba873265e80f8eb" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "ring 0.17.14", + "ring 0.17.8", "rustls-pki-types", "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "rusty-fork" @@ -19472,7 +19503,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5174a470eeb535a721ae9fdd6e291c2411a906b96592182d05217591d5c5cf7b" dependencies = [ "byteorder", - "derive_more 0.99.20", + "derive_more 0.99.17", ] [[package]] @@ -19494,9 +19525,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "safe-mix" @@ -19509,9 +19540,9 @@ dependencies = [ [[package]] name = "safe_arch" -version = "0.7.4" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" dependencies = [ "bytemuck", ] @@ -19541,7 +19572,7 @@ dependencies = [ "log", "sp-core 28.0.0", "sp-wasm-interface 20.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -19576,7 +19607,7 @@ dependencies = [ "substrate-prometheus-endpoint", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -19587,7 +19618,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-block-builder", "sc-client-api", "sc-proposer-metrics", @@ -19625,10 +19656,10 @@ dependencies = [ name = "sc-chain-spec" version = "28.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "clap", "docify", - "memmap2 0.9.8", + "memmap2 0.9.3", "parity-scale-codec", "pretty_assertions", "regex", @@ -19657,17 +19688,17 @@ dependencies = [ name = "sc-chain-spec-derive" version = "11.0.0" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "sc-cli" version = "0.36.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "chrono", "clap", "fdlimit", @@ -19703,7 +19734,7 @@ dependencies = [ "sp-tracing 16.0.0", "sp-version", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -19715,7 +19746,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-executor", "sc-transaction-pool-api", "sc-utils", @@ -19737,7 +19768,7 @@ dependencies = [ name = "sc-client-db" version = "0.35.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "criterion", "hash-db", "kitchensink-runtime", @@ -19748,7 +19779,7 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "sc-client-api", "sc-state-db", @@ -19775,7 +19806,7 @@ dependencies = [ "futures", "log", "mockall", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-client-api", "sc-network-types", "sc-utils", @@ -19787,7 +19818,7 @@ dependencies = [ "sp-state-machine", "sp-test-primitives", "substrate-prometheus-endpoint", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -19799,7 +19830,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-block-builder", "sc-client-api", "sc-consensus", @@ -19825,7 +19856,7 @@ dependencies = [ "substrate-prometheus-endpoint", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -19841,7 +19872,7 @@ dependencies = [ "num-rational", "num-traits", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-block-builder", "sc-client-api", "sc-consensus", @@ -19867,7 +19898,7 @@ dependencies = [ "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -19893,7 +19924,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -19901,13 +19932,13 @@ dependencies = [ name = "sc-consensus-beefy" version = "13.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "async-trait", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-block-builder", "sc-client-api", "sc-consensus", @@ -19931,7 +19962,7 @@ dependencies = [ "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "wasm-timer", ] @@ -19944,7 +19975,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-consensus-beefy", "sc-rpc", "serde", @@ -19953,7 +19984,7 @@ dependencies = [ "sp-core 28.0.0", "sp-runtime", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -19974,7 +20005,7 @@ name = "sc-consensus-grandpa" version = "0.19.0" dependencies = [ "ahash", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "async-trait", "dyn-clone", @@ -19984,7 +20015,7 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "sc-block-builder", "sc-chain-spec", @@ -20014,7 +20045,7 @@ dependencies = [ "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -20038,7 +20069,7 @@ dependencies = [ "sp-keyring", "sp-runtime", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -20076,7 +20107,7 @@ dependencies = [ "substrate-prometheus-endpoint", "substrate-test-runtime-client", "substrate-test-runtime-transaction-pool", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -20089,7 +20120,7 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-client-api", "sc-consensus", "sp-api", @@ -20101,7 +20132,7 @@ dependencies = [ "sp-inherents", "sp-runtime", "substrate-prometheus-endpoint", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -20131,12 +20162,12 @@ dependencies = [ name = "sc-executor" version = "0.32.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "criterion", "num_cpus", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "paste", "sc-executor-common", "sc-executor-polkavm", @@ -20161,7 +20192,7 @@ dependencies = [ "substrate-test-runtime", "tempfile", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", "wat", ] @@ -20173,7 +20204,7 @@ dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface 20.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "wasm-instrument", ] @@ -20195,9 +20226,9 @@ dependencies = [ "cargo_metadata", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "paste", - "rustix 1.1.2", + "rustix 1.0.8", "sc-allocator", "sc-executor-common", "sc-runtime-test", @@ -20228,21 +20259,21 @@ dependencies = [ name = "sc-keystore" version = "25.0.0" dependencies = [ - "array-bytes 6.2.3", - "parking_lot 0.12.4", + "array-bytes 6.2.2", + "parking_lot 0.12.3", "serde_json", "sp-application-crypto", "sp-core 28.0.0", "sp-keystore", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "sc-mixnet" version = "0.4.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "arrayvec 0.7.6", "blake2 0.10.6", "bytes", @@ -20251,7 +20282,7 @@ dependencies = [ "log", "mixnet", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-client-api", "sc-network", "sc-network-types", @@ -20262,14 +20293,14 @@ dependencies = [ "sp-keystore", "sp-mixnet", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "sc-network" version = "0.34.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "async-channel 1.9.0", "async-trait", @@ -20289,7 +20320,7 @@ dependencies = [ "mockall", "multistream-select", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "partial_sort", "pin-project", "prost 0.12.6", @@ -20315,7 +20346,7 @@ dependencies = [ "substrate-test-runtime", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-stream", "tokio-util", @@ -20361,7 +20392,7 @@ dependencies = [ name = "sc-network-light" version = "0.33.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "futures", "log", @@ -20374,14 +20405,14 @@ dependencies = [ "sp-blockchain", "sp-core 28.0.0", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "sc-network-statement" version = "0.16.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "futures", "log", @@ -20400,7 +20431,7 @@ dependencies = [ name = "sc-network-sync" version = "0.33.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "async-trait", "fork-tree", @@ -20430,7 +20461,7 @@ dependencies = [ "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-stream", ] @@ -20445,7 +20476,7 @@ dependencies = [ "futures-timer", "libp2p", "log", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "sc-block-builder", "sc-client-api", @@ -20471,7 +20502,7 @@ dependencies = [ name = "sc-network-transactions" version = "0.33.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "futures", "log", "parity-scale-codec", @@ -20496,13 +20527,13 @@ dependencies = [ "libp2p-kad", "litep2p", "log", - "multiaddr 0.18.2", - "multihash 0.19.3", + "multiaddr 0.18.1", + "multihash 0.19.1", "quickcheck", "rand 0.8.5", "serde", "serde_with", - "thiserror 1.0.69", + "thiserror 1.0.65", "zeroize", ] @@ -20516,15 +20547,15 @@ dependencies = [ "futures", "futures-timer", "http-body-util", - "hyper 1.7.0", - "hyper-rustls 0.27.7", + "hyper 1.6.0", + "hyper-rustls 0.27.3", "hyper-util", "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", - "rustls 0.23.31", + "rustls 0.23.18", "sc-block-builder", "sc-client-api", "sc-client-db", @@ -20564,7 +20595,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pretty_assertions", "sc-block-builder", "sc-chain-spec", @@ -20609,7 +20640,7 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-version", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -20620,9 +20651,9 @@ dependencies = [ "forwarded-header-value", "futures", "governor", - "http 1.3.1", + "http 1.1.0", "http-body-util", - "hyper 1.7.0", + "hyper 1.6.0", "ip_network", "jsonrpsee", "log", @@ -20631,7 +20662,7 @@ dependencies = [ "serde_json", "substrate-prometheus-endpoint", "tokio", - "tower 0.4.13", + "tower", "tower-http 0.5.2", ] @@ -20639,7 +20670,7 @@ dependencies = [ name = "sc-rpc-spec-v2" version = "0.34.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "async-trait", "futures", @@ -20649,7 +20680,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pretty_assertions", "rand 0.8.5", "sc-block-builder", @@ -20676,7 +20707,7 @@ dependencies = [ "substrate-test-runtime", "substrate-test-runtime-client", "substrate-test-runtime-transaction-pool", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-stream", ] @@ -20708,7 +20739,7 @@ dependencies = [ "sp-version", "sp-wasm-interface 20.0.0", "subxt 0.43.0", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -20723,7 +20754,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "sc-chain-spec", @@ -20770,7 +20801,7 @@ dependencies = [ "substrate-test-runtime", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tracing", "tracing-futures", @@ -20780,13 +20811,13 @@ dependencies = [ name = "sc-service-test" version = "2.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "fdlimit", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-block-builder", "sc-client-api", "sc-client-db", @@ -20817,7 +20848,7 @@ version = "0.30.0" dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sp-core 28.0.0", ] @@ -20827,7 +20858,7 @@ version = "10.0.0" dependencies = [ "log", "parity-db", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-client-api", "sc-keystore", "sp-api", @@ -20849,7 +20880,7 @@ dependencies = [ "fs4", "log", "sp-core 28.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -20868,14 +20899,14 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "sc-sysinfo" version = "27.0.0" dependencies = [ - "derive_more 0.99.20", + "derive_more 0.99.17", "futures", "libc", "log", @@ -20899,13 +20930,13 @@ dependencies = [ "futures", "libp2p", "log", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "sc-utils", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "wasm-timer", ] @@ -20920,7 +20951,7 @@ dependencies = [ "libc", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "regex", "rustc-hash 1.1.0", "sc-client-api", @@ -20932,20 +20963,20 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "tracing-log", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -20958,14 +20989,14 @@ dependencies = [ "chrono", "criterion", "cumulus-zombienet-sdk-helpers", - "env_logger 0.11.8", + "env_logger 0.11.3", "futures", "futures-timer", - "indexmap 2.11.3", + "indexmap 2.9.0", "itertools 0.11.0", "linked-hash-map", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rstest", "sc-block-builder", "sc-client-api", @@ -20986,11 +21017,11 @@ dependencies = [ "substrate-test-runtime-client", "substrate-test-runtime-transaction-pool", "substrate-txtesttool", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-stream", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", "zombienet-configuration", "zombienet-sdk", ] @@ -21001,7 +21032,7 @@ version = "28.0.0" dependencies = [ "async-trait", "futures", - "indexmap 2.11.3", + "indexmap 2.9.0", "log", "parity-scale-codec", "serde", @@ -21009,7 +21040,7 @@ dependencies = [ "sp-blockchain", "sp-core 28.0.0", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -21020,7 +21051,7 @@ dependencies = [ "futures", "futures-timer", "log", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "prometheus", "sp-arithmetic", "tokio-test", @@ -21050,7 +21081,7 @@ dependencies = [ "scale-decode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.12", ] [[package]] @@ -21059,10 +21090,10 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f4b54a1211260718b92832b661025d1f1a4b6930fbadd6908e00edd265fa5f7" dependencies = [ - "darling 0.20.11", - "proc-macro2 1.0.101", + "darling 0.20.10", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -21077,7 +21108,7 @@ dependencies = [ "scale-encode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.16", + "thiserror 2.0.12", ] [[package]] @@ -21086,11 +21117,11 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78a3993a13b4eafa89350604672c8757b7ea84c7c5947d4b3691e3169c96379b" dependencies = [ - "darling 0.20.11", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "darling 0.20.10", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -21113,10 +21144,10 @@ version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -21135,11 +21166,11 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05c61b6b706a3eaad63b506ab50a1d2319f817ae01cf753adcc3f055f9f0fcd6" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "scale-info", - "syn 2.0.106", - "thiserror 2.0.16", + "syn 2.0.98", + "thiserror 2.0.12", ] [[package]] @@ -21157,85 +21188,48 @@ dependencies = [ "scale-encode", "scale-type-resolver", "serde", - "thiserror 2.0.16", + "thiserror 2.0.12", "yap", ] [[package]] name = "schannel" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" -dependencies = [ - "windows-sys 0.61.0", -] - -[[package]] -name = "schemars" -version = "0.8.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" -dependencies = [ - "dyn-clone", - "schemars_derive 0.8.22", - "serde", - "serde_json", -] - -[[package]] -name = "schemars" -version = "0.9.0" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", + "windows-sys 0.48.0", ] [[package]] name = "schemars" -version = "1.0.4" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +checksum = "763f8cd0d4c71ed8389c90cb8100cba87e763bd01a8e614d4f0af97bcd50a161" dependencies = [ "dyn-clone", - "ref-cast", - "schemars_derive 1.0.4", + "schemars_derive", "serde", "serde_json", ] [[package]] name = "schemars_derive" -version = "0.8.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" -dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.40", - "serde_derive_internals", - "syn 2.0.106", -] - -[[package]] -name = "schemars_derive" -version = "1.0.4" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d020396d1d138dc19f1165df7545479dcd58d93810dc5d646a16e55abefa80" +checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "serde_derive_internals", - "syn 2.0.106", + "syn 1.0.109", ] [[package]] name = "schnellru" -version = "0.2.4" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649" +checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" dependencies = [ "ahash", "cfg-if", @@ -21261,9 +21255,9 @@ dependencies = [ [[package]] name = "schnorrkel" -version = "0.11.5" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e9fcb6c2e176e86ec703e22560d99d65a5ee9056ae45a08e13e84ebf796296f" +checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" dependencies = [ "aead", "arrayref", @@ -21274,7 +21268,7 @@ dependencies = [ "rand_core 0.6.4", "serde_bytes", "sha2 0.10.9", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] @@ -21292,9 +21286,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scratch" -version = "1.0.9" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d68f2ec51b097e4c1a75b681a8bec621909b5e91f15bb7b840c4f2f7b01148b2" +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" [[package]] name = "scrypt" @@ -21310,12 +21304,12 @@ dependencies = [ [[package]] name = "sct" -version = "0.7.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", + "ring 0.16.20", + "untrusted 0.7.1", ] [[package]] @@ -21329,7 +21323,7 @@ dependencies = [ "generic-array 0.14.7", "pkcs8", "serdect", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] @@ -21342,15 +21336,6 @@ dependencies = [ "libc", ] -[[package]] -name = "secp256k1" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" -dependencies = [ - "secp256k1-sys 0.8.2", -] - [[package]] name = "secp256k1" version = "0.28.2" @@ -21378,19 +21363,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" dependencies = [ "bitcoin_hashes 0.14.0", - "rand 0.9.2", + "rand 0.9.0", "secp256k1-sys 0.11.0", ] -[[package]] -name = "secp256k1-sys" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4473013577ec77b4ee3668179ef1186df3146e2cf2d927bd200974c6fe60fd99" -dependencies = [ - "cc", -] - [[package]] name = "secp256k1-sys" version = "0.9.2" @@ -21439,35 +21415,23 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.9.4", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework" -version = "3.4.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ "bitflags 2.9.4", - "core-foundation 0.10.1", + "core-foundation", "core-foundation-sys", "libc", + "num-bigint", "security-framework-sys", ] [[package]] name = "security-framework-sys" -version = "2.15.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ "core-foundation-sys", "libc", @@ -21497,17 +21461,16 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ - "semver-parser 0.10.3", + "semver-parser 0.10.2", ] [[package]] name = "semver" -version = "1.0.27" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" dependencies = [ "serde", - "serde_core", ] [[package]] @@ -21518,9 +21481,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "semver-parser" -version = "0.10.3" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" dependencies = [ "pest", ] @@ -21533,11 +21496,10 @@ checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" [[package]] name = "serde" -version = "1.0.225" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6c24dee235d0da097043389623fb913daddf92c76e9f5a1db88607a0bcbd1d" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ - "serde_core", "serde_derive", ] @@ -21562,43 +21524,33 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.19" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" +checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" dependencies = [ "serde", - "serde_core", ] [[package]] -name = "serde_core" -version = "1.0.225" +name = "serde_derive" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "659356f9a0cb1e529b24c01e43ad2bdf520ec4ceaf83047b83ddcc2251f96383" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.225" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea936adf78b1f766949a4977b91d2f5595825bd6ec079aa9543ad2685fc4516" -dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.40", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "serde_derive_internals" -version = "0.29.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 1.0.109", ] [[package]] @@ -21612,36 +21564,26 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ - "indexmap 2.11.3", + "indexmap 2.9.0", "itoa", "memchr", "ryu", "serde", - "serde_core", ] [[package]] name = "serde_spanned" -version = "0.6.9" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" dependencies = [ "serde", ] -[[package]] -name = "serde_spanned" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2789234a13a53fc4be1b51ea1bab45a3c338bdb884862a257d10e5a74ae009e6" -dependencies = [ - "serde_core", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -21656,17 +21598,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.14.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.11.3", - "schemars 0.9.0", - "schemars 1.0.4", + "indexmap 2.9.0", "serde", "serde_derive", "serde_json", @@ -21676,14 +21616,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.14.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ - "darling 0.20.11", - "proc-macro2 1.0.101", + "darling 0.20.10", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -21692,7 +21632,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.11.3", + "indexmap 2.9.0", "itoa", "ryu", "serde", @@ -21730,7 +21670,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.1", + "opaque-debug 0.3.0", ] [[package]] @@ -21772,9 +21712,9 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.7" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" dependencies = [ "lazy_static", ] @@ -21787,18 +21727,18 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] [[package]] name = "signature" -version = "2.2.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" dependencies = [ "digest 0.10.7", "rand_core 0.6.4", @@ -21806,9 +21746,9 @@ dependencies = [ [[package]] name = "simba" -version = "0.9.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c99284beb21666094ba2b75bbceda012e610f5479dfcc2d6e2426f53197ffd95" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" dependencies = [ "approx", "num-complex", @@ -21846,9 +21786,12 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "slice-group-by" @@ -21868,9 +21811,9 @@ dependencies = [ [[package]] name = "slotmap" -version = "1.0.7" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" dependencies = [ "version_check", ] @@ -21888,9 +21831,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" dependencies = [ "serde", ] @@ -21901,15 +21844,15 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a33bd3e260892199c3ccfc487c88b2da2265080acb316cd920da72fdfd7c599f" dependencies = [ - "async-channel 2.5.0", + "async-channel 2.3.0", "async-executor", "async-fs", - "async-io", - "async-lock", + "async-io 2.3.3", + "async-lock 3.4.0", "async-net", "async-process", "blocking", - "futures-lite 2.6.1", + "futures-lite 2.3.0", ] [[package]] @@ -21919,7 +21862,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "966e72d77a3b2171bb7461d0cb91f43670c63558c62d7cf42809cae6c8b6b818" dependencies = [ "arrayvec 0.7.6", - "async-lock", + "async-lock 3.4.0", "atomic-take", "base64 0.22.1", "bip39", @@ -21927,12 +21870,12 @@ dependencies = [ "bs58", "chacha20", "crossbeam-queue", - "derive_more 0.99.20", + "derive_more 0.99.17", "ed25519-zebra", "either", - "event-listener 5.4.1", + "event-listener 5.3.1", "fnv", - "futures-lite 2.6.1", + "futures-lite 2.3.0", "futures-util", "hashbrown 0.14.5", "hex", @@ -21951,7 +21894,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "ruzstd 0.6.0", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "serde", "serde_json", "sha2 0.10.9", @@ -21973,7 +21916,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e16e5723359f0048bf64bfdfba64e5732a56847d42c4fd3fe56f18280c813413" dependencies = [ "arrayvec 0.7.6", - "async-lock", + "async-lock 3.4.0", "atomic-take", "base64 0.22.1", "bip39", @@ -21984,11 +21927,11 @@ dependencies = [ "derive_more 2.0.1", "ed25519-zebra", "either", - "event-listener 5.4.1", + "event-listener 5.3.1", "fnv", - "futures-lite 2.6.1", + "futures-lite 2.3.0", "futures-util", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "hex", "hmac 0.12.1", "itertools 0.14.0", @@ -22005,7 +21948,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "ruzstd 0.8.1", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "serde", "serde_json", "sha2 0.10.9", @@ -22014,7 +21957,7 @@ dependencies = [ "slab", "smallvec", "soketto", - "twox-hash 2.1.2", + "twox-hash 2.1.1", "wasmi 0.40.0", "x25519-dalek", "zeroize", @@ -22026,24 +21969,24 @@ version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a33b06891f687909632ce6a4e3fd7677b24df930365af3d0bcb078310129f3f" dependencies = [ - "async-channel 2.5.0", - "async-lock", + "async-channel 2.3.0", + "async-lock 3.4.0", "base64 0.22.1", "blake2-rfc", "bs58", - "derive_more 0.99.20", + "derive_more 0.99.17", "either", - "event-listener 5.4.1", + "event-listener 5.3.1", "fnv", "futures-channel", - "futures-lite 2.6.1", + "futures-lite 2.3.0", "futures-util", "hashbrown 0.14.5", "hex", "itertools 0.13.0", "log", "lru", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", @@ -22062,24 +22005,24 @@ version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bba9e591716567d704a8252feeb2f1261a286e1e2cbdd4e49e9197c34a14e2" dependencies = [ - "async-channel 2.5.0", - "async-lock", + "async-channel 2.3.0", + "async-lock 3.4.0", "base64 0.22.1", "blake2-rfc", "bs58", "derive_more 2.0.1", "either", - "event-listener 5.4.1", + "event-listener 5.3.1", "fnv", "futures-channel", - "futures-lite 2.6.1", + "futures-lite 2.3.0", "futures-util", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "hex", "itertools 0.14.0", "log", "lru", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", @@ -22094,9 +22037,9 @@ dependencies = [ [[package]] name = "snap" -version = "1.1.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" +checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" [[package]] name = "snow" @@ -22109,10 +22052,10 @@ dependencies = [ "chacha20poly1305", "curve25519-dalek", "rand_core 0.6.4", - "ring 0.17.14", - "rustc_version 0.4.1", + "ring 0.17.8", + "rustc_version 0.4.0", "sha2 0.10.9", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -22217,7 +22160,7 @@ dependencies = [ name = "snowbridge-merkle-tree" version = "0.2.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "hex", "hex-literal", "parity-scale-codec", @@ -22646,34 +22589,34 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.10" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", - "windows-sys 0.52.0", + "winapi", ] [[package]] name = "socket2" -version = "0.6.0" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] name = "soketto" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" +checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" dependencies = [ "base64 0.22.1", "bytes", "futures", - "http 1.3.1", + "http 1.1.0", "httparse", "log", "rand 0.8.5", @@ -22780,7 +22723,7 @@ dependencies = [ "sp-test-primitives", "sp-trie", "sp-version", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -22791,10 +22734,10 @@ dependencies = [ "assert_matches", "blake2 0.10.6", "expander", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -22898,7 +22841,7 @@ version = "28.0.0" dependencies = [ "futures", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "schnellru", "sp-api", "sp-consensus", @@ -22906,7 +22849,7 @@ dependencies = [ "sp-database", "sp-runtime", "sp-state-machine", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", ] @@ -22920,7 +22863,7 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -22959,7 +22902,7 @@ dependencies = [ name = "sp-consensus-beefy" version = "13.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "parity-scale-codec", "scale-info", "serde", @@ -23031,7 +22974,7 @@ name = "sp-core" version = "28.0.0" dependencies = [ "ark-vrf", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections 0.3.2", @@ -23050,13 +22993,13 @@ dependencies = [ "merlin", "parity-bip39", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "paste", "primitive-types 0.13.1", "rand 0.8.5", "regex", "scale-info", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "secp256k1 0.28.2", "secrecy 0.8.0", "serde", @@ -23069,7 +23012,7 @@ dependencies = [ "sp-storage 19.0.0", "ss58-registry", "substrate-bip39 0.4.7", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "w3f-bls", "zeroize", @@ -23082,10 +23025,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cdbb58c21e6b27f2aadf3ff0c8b20a8ead13b9dfe63f46717fd59334517f3b4" dependencies = [ "ark-vrf", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "bitflags 1.3.2", "blake2 0.10.6", - "bounded-collections 0.2.4", + "bounded-collections 0.2.3", "bs58", "dyn-clonable", "ed25519-zebra", @@ -23100,12 +23043,12 @@ dependencies = [ "merlin", "parity-bip39", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "paste", "primitive-types 0.13.1", "rand 0.8.5", "scale-info", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "secp256k1 0.28.2", "secrecy 0.8.0", "serde", @@ -23117,7 +23060,7 @@ dependencies = [ "sp-storage 22.0.0", "ss58-registry", "substrate-bip39 0.6.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "w3f-bls", "zeroize", @@ -23199,7 +23142,7 @@ version = "0.1.0" dependencies = [ "quote 1.0.40", "sp-crypto-hashing 0.1.0", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -23207,16 +23150,16 @@ name = "sp-database" version = "10.0.0" dependencies = [ "kvdb", - "parking_lot 0.12.4", + "parking_lot 0.12.3", ] [[package]] name = "sp-debug-derive" version = "14.0.0" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -23225,9 +23168,9 @@ version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -23271,7 +23214,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -23313,7 +23256,7 @@ name = "sp-keystore" version = "0.34.0" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sp-core 28.0.0", "sp-externalities 0.25.0", ] @@ -23322,7 +23265,7 @@ dependencies = [ name = "sp-maybe-compressed-blob" version = "11.0.0" dependencies = [ - "thiserror 1.0.69", + "thiserror 1.0.65", "zstd 0.12.4", ] @@ -23349,7 +23292,7 @@ dependencies = [ name = "sp-mmr-primitives" version = "26.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "log", "parity-scale-codec", "polkadot-ckb-merkle-mountain-range", @@ -23359,7 +23302,7 @@ dependencies = [ "sp-core 28.0.0", "sp-debug-derive 14.0.0", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -23495,10 +23438,10 @@ version = "17.0.0" dependencies = [ "Inflector", "expander", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -23509,10 +23452,10 @@ checksum = "0195f32c628fee3ce1dfbbf2e7e52a30ea85f3589da9fe62a8b816d70fc06294" dependencies = [ "Inflector", "expander", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -23582,12 +23525,12 @@ name = "sp-state-machine" version = "0.35.0" dependencies = [ "arbitrary", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "hash-db", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pretty_assertions", "rand 0.8.5", "smallvec", @@ -23596,7 +23539,7 @@ dependencies = [ "sp-panic-handler", "sp-runtime", "sp-trie", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "trie-db", ] @@ -23620,7 +23563,7 @@ dependencies = [ "sp-externalities 0.25.0", "sp-runtime", "sp-runtime-interface 24.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "x25519-dalek", ] @@ -23678,7 +23621,7 @@ dependencies = [ "parity-scale-codec", "sp-inherents", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -23689,7 +23632,7 @@ dependencies = [ "regex", "tracing", "tracing-core", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] @@ -23701,7 +23644,7 @@ dependencies = [ "parity-scale-codec", "tracing", "tracing-core", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] @@ -23730,15 +23673,15 @@ name = "sp-trie" version = "29.0.0" dependencies = [ "ahash", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "criterion", - "foldhash 0.1.5", + "foldhash", "hash-db", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "memory-db", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "scale-info", "schnellru", @@ -23746,7 +23689,7 @@ dependencies = [ "sp-externalities 0.25.0", "sp-runtime", "substrate-prometheus-endpoint", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "trie-bench", "trie-db", @@ -23767,7 +23710,7 @@ dependencies = [ "sp-runtime", "sp-std 14.0.0", "sp-version-proc-macro", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -23776,10 +23719,10 @@ version = "13.0.0" dependencies = [ "parity-scale-codec", "proc-macro-warning", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "sp-version", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -23812,7 +23755,7 @@ dependencies = [ "bounded-collections 0.3.2", "parity-scale-codec", "scale-info", - "schemars 0.8.22", + "schemars", "serde", "smallvec", "sp-arithmetic", @@ -23846,29 +23789,30 @@ dependencies = [ ] [[package]] -name = "spinning_top" -version = "0.3.0" +name = "spki" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" dependencies = [ - "lock_api", + "base64ct", + "der", ] [[package]] -name = "spki" -version = "0.7.3" +name = "sqlformat" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" dependencies = [ - "base64ct", - "der", + "nom 7.1.3", + "unicode_categories", ] [[package]] name = "sqlx" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc" +checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e" dependencies = [ "sqlx-core", "sqlx-macros", @@ -23879,32 +23823,37 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" +checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e" dependencies = [ - "base64 0.22.1", + "atoi", + "byteorder", "bytes", "crc", "crossbeam-queue", "either", - "event-listener 5.4.1", + "event-listener 5.3.1", + "futures-channel", "futures-core", "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.15.5", - "hashlink 0.10.0", - "indexmap 2.11.3", + "hashbrown 0.14.5", + "hashlink 0.9.1", + "hex", + "indexmap 2.9.0", "log", "memchr", "once_cell", + "paste", "percent-encoding", "serde", "serde_json", "sha2 0.10.9", "smallvec", - "thiserror 2.0.16", + "sqlformat", + "thiserror 1.0.65", "tokio", "tokio-stream", "tracing", @@ -23913,29 +23862,29 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d" +checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "sqlx-core", "sqlx-macros-core", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "sqlx-macros-core" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" +checksum = "1804e8a7c7865599c9c79be146dc8a9fd8cc86935fa641d3ea58e5f0688abaa5" dependencies = [ "dotenvy", "either", "heck 0.5.0", "hex", "once_cell", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "serde", "serde_json", @@ -23944,16 +23893,17 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.106", + "syn 2.0.98", + "tempfile", "tokio", "url", ] [[package]] name = "sqlx-mysql" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" +checksum = "64bb4714269afa44aef2755150a0fc19d756fb580a67db8885608cf02f47d06a" dependencies = [ "atoi", "base64 0.22.1", @@ -23986,16 +23936,16 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.16", + "thiserror 1.0.65", "tracing", "whoami", ] [[package]] name = "sqlx-postgres" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" +checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8" dependencies = [ "atoi", "base64 0.22.1", @@ -24006,6 +23956,7 @@ dependencies = [ "etcetera", "futures-channel", "futures-core", + "futures-io", "futures-util", "hex", "hkdf", @@ -24023,16 +23974,16 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.16", + "thiserror 1.0.65", "tracing", "whoami", ] [[package]] name = "sqlx-sqlite" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea" +checksum = "d5b2cf34a45953bfd3daaf3db0f7a7878ab9b7a6b91b422d24a7a9e4c857b680" dependencies = [ "atoi", "flume", @@ -24047,24 +23998,23 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", - "thiserror 2.0.16", "tracing", "url", ] [[package]] name = "ss58-registry" -version = "1.51.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19409f13998e55816d1c728395af0b52ec066206341d939e22e7766df9b494b8" +checksum = "5e6915280e2d0db8911e5032a5c275571af6bdded2916abd691a659be25d3439" dependencies = [ "Inflector", "num-format", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "serde", "serde_json", - "unicode-xid 0.2.6", + "unicode-xid 0.2.4", ] [[package]] @@ -24085,7 +24035,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "syn 1.0.109", ] @@ -24115,7 +24065,7 @@ dependencies = [ name = "staging-node-cli" version = "3.0.0-dev" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_cmd", "clap", "clap_complete", @@ -24162,7 +24112,7 @@ dependencies = [ "sp-io", "sp-runtime", "sp-statement-store", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -24185,7 +24135,7 @@ version = "2.0.0" name = "staging-xcm" version = "7.0.1" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "bounded-collections 0.3.2", "derive-where", "environmental", @@ -24194,7 +24144,7 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "schemars 0.8.22", + "schemars", "serde", "sp-io", "sp-runtime", @@ -24263,28 +24213,28 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "static_init" -version = "1.0.4" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bae1df58c5fea7502e8e352ec26b5579f6178e1fdb311e088580c980dee25ed" +checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ "bitflags 1.3.2", - "cfg_aliases 0.2.1", + "cfg_aliases 0.1.1", "libc", - "parking_lot 0.12.4", - "parking_lot_core 0.9.11", + "parking_lot 0.11.2", + "parking_lot_core 0.8.6", "static_init_macro", "winapi", ] [[package]] name = "static_init_macro" -version = "1.0.4" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1389c88ddd739ec6d3f8f83343764a0e944cd23cfbf126a9796a714b0b6edd6f" +checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf" dependencies = [ "cfg_aliases 0.1.1", "memchr", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "syn 1.0.109", ] @@ -24342,7 +24292,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "rustversion", "syn 1.0.109", @@ -24355,10 +24305,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "rustversion", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -24377,7 +24327,7 @@ dependencies = [ "parity-bip39", "pbkdf2", "rustc-hex", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "sha2 0.10.9", "zeroize", ] @@ -24390,7 +24340,7 @@ checksum = "ca58ffd742f693dc13d69bdbb2e642ae239e0053f6aab3b104252892f856700a" dependencies = [ "hmac 0.12.1", "pbkdf2", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "sha2 0.10.9", "zeroize", ] @@ -24475,11 +24425,11 @@ name = "substrate-prometheus-endpoint" version = "0.17.0" dependencies = [ "http-body-util", - "hyper 1.7.0", + "hyper 1.6.0", "hyper-util", "log", "prometheus", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -24522,7 +24472,7 @@ dependencies = [ "sp-runtime", "sp-trie", "strum 0.26.3", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -24559,7 +24509,7 @@ dependencies = [ name = "substrate-test-client" version = "2.0.1" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-trait", "futures", "parity-scale-codec", @@ -24583,7 +24533,7 @@ dependencies = [ name = "substrate-test-runtime" version = "2.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "frame-executive", "frame-metadata-hash-extension", "frame-support", @@ -24659,13 +24609,13 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-transaction-pool", "sc-transaction-pool-api", "sp-blockchain", "sp-runtime", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -24689,8 +24639,8 @@ dependencies = [ "hex", "jsonrpsee", "parity-scale-codec", - "parking_lot 0.12.4", - "rand 0.9.2", + "parking_lot 0.12.3", + "rand 0.9.0", "serde", "serde_json", "subxt 0.41.0", @@ -24698,19 +24648,19 @@ dependencies = [ "subxt-rpcs 0.41.0", "subxt-signer 0.41.0", "termplot", - "thiserror 2.0.16", + "thiserror 2.0.12", "time", "tokio", "tokio-util", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] name = "substrate-wasm-builder" version = "17.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "build-helper", "cargo_metadata", "console", @@ -24730,7 +24680,7 @@ dependencies = [ "sp-version", "strum 0.26.3", "tempfile", - "toml 0.8.23", + "toml", "walkdir", "wasm-opt", ] @@ -24743,9 +24693,9 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" [[package]] name = "subtle" -version = "2.6.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "subtle-ng" @@ -24781,7 +24731,7 @@ dependencies = [ "subxt-macro 0.41.0", "subxt-metadata 0.41.0", "subxt-rpcs 0.41.0", - "thiserror 2.0.16", + "thiserror 2.0.12", "tokio", "tokio-util", "tracing", @@ -24818,7 +24768,7 @@ dependencies = [ "subxt-macro 0.43.0", "subxt-metadata 0.43.0", "subxt-rpcs 0.43.0", - "thiserror 2.0.16", + "thiserror 2.0.12", "tokio", "tokio-util", "tracing", @@ -24835,13 +24785,13 @@ checksum = "324c52c09919fec8c22a4b572a466878322e99fe14a9e3d50d6c3700a226ec25" dependencies = [ "heck 0.5.0", "parity-scale-codec", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "scale-info", "scale-typegen", "subxt-metadata 0.41.0", - "syn 2.0.106", - "thiserror 2.0.16", + "syn 2.0.98", + "thiserror 2.0.12", ] [[package]] @@ -24852,13 +24802,13 @@ checksum = "1728caecd9700391e78cc30dc298221d6f5ca0ea28258a452aa76b0b7c229842" dependencies = [ "heck 0.5.0", "parity-scale-codec", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "scale-info", "scale-typegen", "subxt-metadata 0.43.0", - "syn 2.0.106", - "thiserror 2.0.16", + "syn 2.0.98", + "thiserror 2.0.12", ] [[package]] @@ -24887,7 +24837,7 @@ dependencies = [ "serde_json", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-metadata 0.41.0", - "thiserror 2.0.16", + "thiserror 2.0.12", "tracing", ] @@ -24917,7 +24867,7 @@ dependencies = [ "serde_json", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-metadata 0.43.0", - "thiserror 2.0.16", + "thiserror 2.0.12", "tracing", ] @@ -24932,7 +24882,7 @@ dependencies = [ "serde", "serde_json", "smoldot-light 0.16.2", - "thiserror 2.0.16", + "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", @@ -24949,7 +24899,7 @@ dependencies = [ "serde", "serde_json", "smoldot-light 0.17.2", - "thiserror 2.0.16", + "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", @@ -24961,14 +24911,14 @@ version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c2c8da275a620dd676381d72395dfea91f0a6cd849665b4f1d0919371850701" dependencies = [ - "darling 0.20.11", + "darling 0.20.10", "parity-scale-codec", "proc-macro-error2", "quote 1.0.40", "scale-typegen", "subxt-codegen 0.41.0", "subxt-utils-fetchmetadata 0.41.0", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -24977,7 +24927,7 @@ version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69516e8ff0e9340a0f21b8398da7f997571af4734ee81deada5150a2668c8443" dependencies = [ - "darling 0.20.11", + "darling 0.20.10", "parity-scale-codec", "proc-macro-error2", "quote 1.0.40", @@ -24985,7 +24935,7 @@ dependencies = [ "subxt-codegen 0.43.0", "subxt-metadata 0.43.0", "subxt-utils-fetchmetadata 0.43.0", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -25000,7 +24950,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 2.0.16", + "thiserror 2.0.12", ] [[package]] @@ -25015,7 +24965,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 2.0.16", + "thiserror 2.0.12", ] [[package]] @@ -25036,7 +24986,7 @@ dependencies = [ "serde_json", "subxt-core 0.41.0", "subxt-lightclient 0.41.0", - "thiserror 2.0.16", + "thiserror 2.0.12", "tokio-util", "tracing", "url", @@ -25061,7 +25011,7 @@ dependencies = [ "serde_json", "subxt-core 0.43.0", "subxt-lightclient 0.43.0", - "thiserror 2.0.16", + "thiserror 2.0.12", "tokio", "tokio-util", "tracing", @@ -25085,7 +25035,7 @@ dependencies = [ "parity-scale-codec", "pbkdf2", "regex", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "scrypt", "secp256k1 0.30.0", "secrecy 0.10.3", @@ -25094,7 +25044,7 @@ dependencies = [ "sha2 0.10.9", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-core 0.41.0", - "thiserror 2.0.16", + "thiserror 2.0.12", "zeroize", ] @@ -25115,7 +25065,7 @@ dependencies = [ "parity-scale-codec", "pbkdf2", "regex", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "scrypt", "secp256k1 0.30.0", "secrecy 0.10.3", @@ -25124,7 +25074,7 @@ dependencies = [ "sha2 0.10.9", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-core 0.43.0", - "thiserror 2.0.16", + "thiserror 2.0.12", "zeroize", ] @@ -25136,7 +25086,7 @@ checksum = "fc868b55fe2303788dc7703457af390111940c3da4714b510983284501780ed5" dependencies = [ "hex", "parity-scale-codec", - "thiserror 2.0.16", + "thiserror 2.0.12", ] [[package]] @@ -25147,20 +25097,20 @@ checksum = "8c4fb8fd6b16ecd3537a29d70699f329a68c1e47f70ed1a46d64f76719146563" dependencies = [ "hex", "parity-scale-codec", - "thiserror 2.0.16", + "thiserror 2.0.12", ] [[package]] name = "sval" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc9739f56c5d0c44a5ed45473ec868af02eb896af8c05f616673a31e1d1bb09" +checksum = "8b031320a434d3e9477ccf9b5756d57d4272937b8d22cb88af80b7633a1b78b1" [[package]] name = "sval_buffer" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f39b07436a8c271b34dad5070c634d1d3d76d6776e938ee97b4a66a5e8003d0b" +checksum = "6bf7e9412af26b342f3f2cc5cc4122b0105e9d16eb76046cd14ed10106cf6028" dependencies = [ "sval", "sval_ref", @@ -25168,18 +25118,18 @@ dependencies = [ [[package]] name = "sval_dynamic" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffcb072d857431bf885580dacecf05ed987bac931230736739a79051dbf3499b" +checksum = "a0ef628e8a77a46ed3338db8d1b08af77495123cc229453084e47cd716d403cf" dependencies = [ "sval", ] [[package]] name = "sval_fmt" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f214f427ad94a553e5ca5514c95c6be84667cbc5568cce957f03f3477d03d5c" +checksum = "7dc09e9364c2045ab5fa38f7b04d077b3359d30c4c2b3ec4bae67a358bd64326" dependencies = [ "itoa", "ryu", @@ -25188,63 +25138,53 @@ dependencies = [ [[package]] name = "sval_json" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ed34b32e638dec9a99c8ac92d0aa1220d40041026b625474c2b6a4d6f4feb" +checksum = "ada6f627e38cbb8860283649509d87bc4a5771141daa41c78fd31f2b9485888d" dependencies = [ "itoa", "ryu", "sval", ] -[[package]] -name = "sval_nested" -version = "2.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14bae8fcb2f24fee2c42c1f19037707f7c9a29a0cda936d2188d48a961c4bb2a" -dependencies = [ - "sval", - "sval_buffer", - "sval_ref", -] - [[package]] name = "sval_ref" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4eaea3821d3046dcba81d4b8489421da42961889902342691fb7eab491d79e" +checksum = "703ca1942a984bd0d9b5a4c0a65ab8b4b794038d080af4eb303c71bc6bf22d7c" dependencies = [ "sval", ] [[package]] name = "sval_serde" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172dd4aa8cb3b45c8ac8f3b4111d644cd26938b0643ede8f93070812b87fb339" +checksum = "830926cd0581f7c3e5d51efae4d35c6b6fc4db583842652891ba2f1bed8db046" dependencies = [ "serde", "sval", - "sval_nested", + "sval_buffer", + "sval_fmt", ] [[package]] name = "symbolic-common" -version = "12.16.2" +version = "12.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9da12f8fecbbeaa1ee62c1d50dc656407e007c3ee7b2a41afce4b5089eaef15e" +checksum = "66135c8273581acaab470356f808a1c74a707fe7ec24728af019d7247e089e71" dependencies = [ "debugid", - "memmap2 0.9.8", + "memmap2 0.9.3", "stable_deref_trait", "uuid", ] [[package]] name = "symbolic-demangle" -version = "12.16.2" +version = "12.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd35afe0ef9d35d3dcd41c67ddf882fc832a387221338153b7cd685a105495c" +checksum = "42bcacd080282a72e795864660b148392af7babd75691d5ae9a3b77e29c98c77" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -25268,39 +25208,39 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.106" +version = "2.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "unicode-ident", ] [[package]] name = "syn-solidity" -version = "1.3.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b198d366dbec045acfcd97295eb653a7a2b40e4dc764ef1e79aafcad439d3c" +checksum = "1b5d879005cc1b5ba4e18665be9e9501d9da3a9b95f625497c4cb7ee082b532e" dependencies = [ "paste", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "sync_wrapper" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" dependencies = [ "futures-core", ] @@ -25311,28 +25251,28 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "syn 1.0.109", - "unicode-xid 0.2.6", + "unicode-xid 0.2.4", ] [[package]] name = "synstructure" -version = "0.13.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "sysinfo" -version = "0.30.13" +version = "0.30.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2" dependencies = [ "cfg-if", "core-foundation-sys", @@ -25343,6 +25283,17 @@ dependencies = [ "windows 0.52.0", ] +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys 0.5.0", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -25350,8 +25301,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.9.4", - "core-foundation 0.9.4", - "system-configuration-sys", + "core-foundation", + "system-configuration-sys 0.6.0", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", ] [[package]] @@ -25378,9 +25339,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.44" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" dependencies = [ "filetime", "libc", @@ -25389,27 +25350,27 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.13.3" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c" +checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" [[package]] name = "target-triple" -version = "0.1.4" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" +checksum = "42a4d50cdb458045afc8131fd91b64904da29548bcb63c7236e0844936c13078" [[package]] name = "tempfile" -version = "3.22.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ + "cfg-if", "fastrand 2.3.0", - "getrandom 0.3.3", "once_cell", - "rustix 1.1.2", - "windows-sys 0.61.0", + "rustix 0.38.42", + "windows-sys 0.59.0", ] [[package]] @@ -25417,28 +25378,28 @@ name = "template-zombienet-tests" version = "0.0.0" dependencies = [ "anyhow", - "env_logger 0.11.8", + "env_logger 0.11.3", "tokio", "zombienet-sdk", ] [[package]] name = "termcolor" -version = "1.4.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] [[package]] name = "terminal_size" -version = "0.4.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 1.1.2", - "windows-sys 0.60.2", + "rustix 0.38.42", + "windows-sys 0.48.0", ] [[package]] @@ -25452,9 +25413,9 @@ dependencies = [ [[package]] name = "termtree" -version = "0.5.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "test-log" @@ -25462,9 +25423,9 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e33b98a582ea0be1168eba097538ee8dd4bbe0f2b01b22ac92ea30054e5be7b" dependencies = [ - "env_logger 0.11.8", + "env_logger 0.11.3", "test-log-macros", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] @@ -25473,9 +25434,9 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "451b374529930d7601b1eef8d32bc79ae870b6079b069401709c2a8bf9e75f36" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -25590,42 +25551,42 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.69" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" dependencies = [ - "thiserror-impl 1.0.69", + "thiserror-impl 1.0.65", ] [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl 2.0.16", + "thiserror-impl 2.0.12", ] [[package]] name = "thiserror-impl" -version = "1.0.69" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -25636,11 +25597,12 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.9" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ "cfg-if", + "once_cell", ] [[package]] @@ -25685,11 +25647,12 @@ dependencies = [ [[package]] name = "time" -version = "0.3.43" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", + "itoa", "libc", "num-conv", "num_threads", @@ -25701,15 +25664,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", @@ -25726,9 +25689,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ "displaydoc", "zerovec", @@ -25746,9 +25709,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ "tinyvec_macros", ] @@ -25761,29 +25724,27 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" dependencies = [ "backtrace", "bytes", - "io-uring", "libc", "mio", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project-lite", "signal-hook-registry", - "slab", - "socket2 0.6.0", + "socket2 0.5.9", "tokio-macros", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-io-timeout" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd86198d9ee903fedd2f9a2e72014287c0d9167e4ae43b5853007205dda1b76" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ "pin-project-lite", "tokio", @@ -25795,9 +25756,9 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -25827,25 +25788,26 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.12", + "rustls 0.21.7", "tokio", ] [[package]] name = "tokio-rustls" -version = "0.26.3" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f63835928ca123f1bef57abbcd23bb2ba0ac9ae1235f1e65bda0d06e7786bd" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.31", + "rustls 0.23.18", + "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -25898,19 +25860,19 @@ checksum = "489a59b6730eda1b0171fcfda8b121f4bee2b35cba8645ca35c5f7ba3eb736c1" dependencies = [ "futures-util", "log", - "rustls 0.23.31", - "rustls-native-certs 0.8.1", + "rustls 0.23.18", + "rustls-native-certs 0.8.0", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.3", + "tokio-rustls 0.26.0", "tungstenite 0.27.0", ] [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" dependencies = [ "bytes", "futures-core", @@ -25923,116 +25885,60 @@ dependencies = [ [[package]] name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml" -version = "0.8.23" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", -] - -[[package]] -name = "toml" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae2a4cf385da23d1d53bc15cdfa5c2109e93d8d362393c801e87da2f72f0e201" -dependencies = [ - "indexmap 2.11.3", - "serde_core", - "serde_spanned 1.0.1", - "toml_datetime 0.7.1", - "toml_parser", - "toml_writer", - "winnow 0.7.13", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.22", ] [[package]] name = "toml_datetime" -version = "0.6.11" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] -[[package]] -name = "toml_datetime" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a197c0ec7d131bfc6f7e82c8442ba1595aeab35da7adbf05b6b73cd06a16b6be" -dependencies = [ - "serde_core", -] - [[package]] name = "toml_edit" version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.11.3", - "toml_datetime 0.6.11", - "winnow 0.5.40", + "indexmap 2.9.0", + "toml_datetime", + "winnow 0.5.15", ] [[package]] name = "toml_edit" -version = "0.22.27" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ - "indexmap 2.11.3", - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.11", - "toml_write", - "winnow 0.7.13", + "indexmap 2.9.0", + "toml_datetime", + "winnow 0.5.15", ] [[package]] name = "toml_edit" -version = "0.23.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ad0b7ae9cfeef5605163839cb9221f453399f15cfb5c10be9885fcf56611f9" -dependencies = [ - "indexmap 2.11.3", - "toml_datetime 0.7.1", - "toml_parser", - "winnow 0.7.13", -] - -[[package]] -name = "toml_parser" -version = "1.0.2" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "winnow 0.7.13", + "indexmap 2.9.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.18", ] -[[package]] -name = "toml_write" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" - -[[package]] -name = "toml_writer" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" - [[package]] name = "tower" version = "0.4.13" @@ -26050,21 +25956,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tower" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", -] - [[package]] name = "tower-http" version = "0.4.4" @@ -26076,8 +25967,8 @@ dependencies = [ "bytes", "futures-core", "futures-util", - "http 0.2.12", - "http-body 0.4.6", + "http 0.2.9", + "http-body 0.4.5", "http-range-header", "mime", "pin-project-lite", @@ -26094,49 +25985,31 @@ checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ "bitflags 2.9.4", "bytes", - "http 1.3.1", - "http-body 1.0.1", + "http 1.1.0", + "http-body 1.0.0", "http-body-util", "pin-project-lite", "tower-layer", "tower-service", ] -[[package]] -name = "tower-http" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" -dependencies = [ - "bitflags 2.9.4", - "bytes", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "iri-string", - "pin-project-lite", - "tower 0.5.2", - "tower-layer", - "tower-service", -] - [[package]] name = "tower-layer" -version = "0.3.3" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" [[package]] name = "tower-service" -version = "0.3.3" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", "pin-project-lite", @@ -26146,20 +26019,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -26191,10 +26064,10 @@ version = "5.0.0" dependencies = [ "assert_matches", "expander", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -26219,16 +26092,16 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "chrono", "matchers", "nu-ansi-term", "once_cell", - "parking_lot 0.12.4", - "regex-automata", + "parking_lot 0.12.3", + "regex", "sharded-slab", "smallvec", "thread_local", @@ -26287,15 +26160,15 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "trybuild" -version = "1.0.111" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ded9fdb81f30a5708920310bfcd9ea7482ff9cba5f54601f7a19a877d5c2392" +checksum = "b812699e0c4f813b872b373a4471717d9eb550da14b311058a4d9cf4173cbca6" dependencies = [ "dissimilar", "glob", @@ -26304,7 +26177,7 @@ dependencies = [ "serde_json", "target-triple", "termcolor", - "toml 0.9.6", + "toml", ] [[package]] @@ -26322,12 +26195,12 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 0.2.12", + "http 0.2.9", "httparse", "log", "rand 0.8.5", "sha1", - "thiserror 1.0.69", + "thiserror 1.0.65", "url", "utf-8", ] @@ -26340,12 +26213,12 @@ checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" dependencies = [ "bytes", "data-encoding", - "http 1.3.1", + "http 1.1.0", "httparse", "log", - "rand 0.9.2", + "rand 0.9.0", "sha1", - "thiserror 2.0.16", + "thiserror 2.0.12", "utf-8", ] @@ -26357,14 +26230,14 @@ checksum = "eadc29d668c91fcc564941132e17b28a7ceb2f3ebf0b9dae3e03fd7a6748eb0d" dependencies = [ "bytes", "data-encoding", - "http 1.3.1", + "http 1.1.0", "httparse", "log", - "rand 0.9.2", - "rustls 0.23.31", + "rand 0.9.0", + "rustls 0.23.18", "rustls-pki-types", "sha1", - "thiserror 2.0.16", + "thiserror 2.0.12", "url", "utf-8", ] @@ -26389,27 +26262,21 @@ dependencies = [ [[package]] name = "twox-hash" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" - -[[package]] -name = "typeid" -version = "1.0.3" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" +checksum = "8b907da542cbced5261bd3256de1b3a1bf340a3d37f93425a07362a1d687de56" [[package]] name = "typenum" -version = "1.18.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "ucd-trie" -version = "0.1.7" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "uint" @@ -26443,15 +26310,15 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-bidi" -version = "0.3.18" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.19" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unicode-normalization" @@ -26470,15 +26337,21 @@ checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" -version = "0.2.1" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unicode-width" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unicode-xid" @@ -26488,18 +26361,24 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unicode-xid" -version = "0.2.6" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] -name = "universal-hash" -version = "0.5.1" +name = "unicode_categories" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" + +[[package]] +name = "universal-hash" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -26544,12 +26423,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.7" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", - "idna", + "idna 1.0.3", "percent-encoding", "serde", ] @@ -26560,6 +26439,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -26568,32 +26453,30 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "utf8parse" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.18.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" dependencies = [ - "getrandom 0.3.3", - "js-sys", - "wasm-bindgen", + "getrandom 0.2.10", ] [[package]] name = "valuable" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.11.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5" +checksum = "8fec26a25bd6fca441cdd0f769fd7f891bae119f996de31f86a5eddccef54c1d" dependencies = [ "value-bag-serde1", "value-bag-sval2", @@ -26601,9 +26484,9 @@ dependencies = [ [[package]] name = "value-bag-serde1" -version = "1.11.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35540706617d373b118d550d41f5dfe0b78a0c195dc13c6815e92e2638432306" +checksum = "ead5b693d906686203f19a49e88c477fb8c15798b68cf72f60b4b5521b4ad891" dependencies = [ "erased-serde", "serde", @@ -26612,9 +26495,9 @@ dependencies = [ [[package]] name = "value-bag-sval2" -version = "1.11.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe7e140a2658cc16f7ee7a86e413e803fc8f9b5127adc8755c19f9fefa63a52" +checksum = "3b9d0f4a816370c3a0d7d82d603b62198af17675b12fe5e91de6b47ceb505882" dependencies = [ "sval", "sval_buffer", @@ -26650,9 +26533,9 @@ dependencies = [ [[package]] name = "version_check" -version = "0.9.5" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "void" @@ -26733,18 +26616,18 @@ dependencies = [ [[package]] name = "wait-timeout" -version = "0.2.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" dependencies = [ "libc", ] [[package]] name = "waker-fn" -version = "1.2.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" @@ -26767,26 +26650,17 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi" -version = "0.14.7+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" -dependencies = [ - "wasip2", -] - -[[package]] -name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "0.13.3+wasi-0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" dependencies = [ - "wit-bindgen", + "wit-bindgen-rt", ] [[package]] @@ -26795,62 +26669,51 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" -[[package]] -name = "wasix" -version = "0.12.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d" -dependencies = [ - "wasi 0.11.1+wasi-snapshot-preview1", -] - [[package]] name = "wasm-bindgen" -version = "0.2.103" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab10a69fbd0a177f5f649ad4d8d3305499c42bab9aef2f7ff592d0ec8f833819" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", - "rustversion", "serde", "serde_json", "wasm-bindgen-macro", - "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.103" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb702423545a6007bbc368fde243ba47ca275e549c8a28617f56f6ba53b1d1c" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", - "proc-macro2 1.0.101", + "once_cell", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.53" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b221ff421256839509adbb55998214a70d829d3a28c69b4a6672e9d2a42f67" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", - "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.103" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc65f4f411d91494355917b605e1480033152658d71f722a90647f56a70c88a0" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote 1.0.40", "wasm-bindgen-macro-support", @@ -26858,44 +26721,40 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.103" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc003a991398a8ee604a401e194b6b3a39677b3173d6e74495eb51b82e99a32" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.103" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "293c37f4efa430ca14db3721dfbe48d8c33308096bd44d80ebaa775ab71ba1cf" -dependencies = [ - "unicode-ident", -] +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-encoder" -version = "0.235.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3bc393c395cb621367ff02d854179882b9a351b4e0c93d1397e6090b53a5c2a" +checksum = "41763f20eafed1399fff1afb466496d3a959f58241436cfdc17e3f5ca954de16" dependencies = [ - "leb128fmt", - "wasmparser 0.235.0", + "leb128", ] [[package]] name = "wasm-encoder" -version = "0.239.0" +version = "0.235.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be00faa2b4950c76fe618c409d2c3ea5a3c9422013e079482d78544bb2d184c" +checksum = "b3bc393c395cb621367ff02d854179882b9a351b4e0c93d1397e6090b53a5c2a" dependencies = [ "leb128fmt", - "wasmparser 0.239.0", + "wasmparser 0.235.0", ] [[package]] @@ -26909,16 +26768,16 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.116.1" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" +checksum = "fc942673e7684671f0c5708fc18993569d184265fd5223bb51fc8e5b9b6cfd52" dependencies = [ "anyhow", "libc", "strum 0.24.1", "strum_macros 0.24.3", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "wasm-opt-cxx-sys", "wasm-opt-sys", ] @@ -27059,23 +26918,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "161296c618fa2d63f6ed5fffd1112937e803cb9ec71b32b01a76321555660917" dependencies = [ "bitflags 2.9.4", - "hashbrown 0.15.5", - "indexmap 2.11.3", - "semver 1.0.27", + "hashbrown 0.15.3", + "indexmap 2.9.0", + "semver 1.0.18", "serde", ] -[[package]] -name = "wasmparser" -version = "0.239.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9d90bb93e764f6beabf1d02028c70a2156a6583e63ac4218dd07ef733368b0" -dependencies = [ - "bitflags 2.9.4", - "indexmap 2.11.3", - "semver 1.0.27", -] - [[package]] name = "wasmparser-nostd" version = "0.100.2" @@ -27102,25 +26950,25 @@ version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe976922a16af3b0d67172c473d1fd4f1aa5d0af9c8ba6538c741f3af686f4" dependencies = [ - "addr2line", + "addr2line 0.24.2", "anyhow", "bitflags 2.9.4", "bumpalo", "cc", "cfg-if", - "gimli", - "hashbrown 0.15.5", - "indexmap 2.11.3", + "gimli 0.31.1", + "hashbrown 0.15.3", + "indexmap 2.9.0", "libc", "log", "mach2", "memfd", - "object", + "object 0.36.7", "once_cell", "postcard", "pulley-interpreter", "rayon", - "rustix 1.1.2", + "rustix 1.0.8", "serde", "serde_derive", "smallvec", @@ -27150,10 +26998,10 @@ dependencies = [ "cpp_demangle", "cranelift-bitset", "cranelift-entity", - "gimli", - "indexmap 2.11.3", + "gimli 0.31.1", + "indexmap 2.9.0", "log", - "object", + "object 0.36.7", "postcard", "rustc-demangle", "serde", @@ -27185,11 +27033,11 @@ dependencies = [ "directories-next", "log", "postcard", - "rustix 1.1.2", + "rustix 1.0.8", "serde", "serde_derive", "sha2 0.10.9", - "toml 0.8.23", + "toml", "windows-sys 0.59.0", "zstd 0.13.3", ] @@ -27207,14 +27055,14 @@ dependencies = [ "cranelift-entity", "cranelift-frontend", "cranelift-native", - "gimli", + "gimli 0.31.1", "itertools 0.14.0", "log", - "object", + "object 0.36.7", "pulley-interpreter", "smallvec", "target-lexicon", - "thiserror 2.0.16", + "thiserror 2.0.12", "wasmparser 0.235.0", "wasmtime-environ", "wasmtime-internal-math", @@ -27231,7 +27079,7 @@ dependencies = [ "cc", "cfg-if", "libc", - "rustix 1.1.2", + "rustix 1.0.8", "wasmtime-internal-asm-macros", "wasmtime-internal-versioned-export-macros", "windows-sys 0.59.0", @@ -27274,7 +27122,7 @@ dependencies = [ "cfg-if", "cranelift-codegen", "log", - "object", + "object 0.36.7", ] [[package]] @@ -27283,9 +27131,9 @@ version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "342b0466f92b7217a4de9e114175fedee1907028567d2548bcd42f71a8b5b016" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -27296,8 +27144,8 @@ checksum = "2012e7384c25b91aab2f1b6a1e1cbab9d0f199bbea06cc873597a3f047f05730" dependencies = [ "anyhow", "cranelift-codegen", - "gimli", - "object", + "gimli 0.31.1", + "object 0.36.7", "target-lexicon", "wasmparser 0.235.0", "wasmtime-environ", @@ -27307,31 +27155,30 @@ dependencies = [ [[package]] name = "wast" -version = "239.0.0" +version = "63.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9139176fe8a2590e0fb174cdcaf373b224cb93c3dde08e4297c1361d2ba1ea5d" +checksum = "2560471f60a48b77fccefaf40796fda61c97ce1e790b59dfcec9dc3995c9f63a" dependencies = [ - "bumpalo", - "leb128fmt", + "leb128", "memchr", - "unicode-width", - "wasm-encoder 0.239.0", + "unicode-width 0.1.10", + "wasm-encoder 0.31.1", ] [[package]] name = "wat" -version = "1.239.0" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e1c941927d34709f255558166f8901a2005f8ab4a9650432e9281b7cc6f3b75" +checksum = "3bdc306c2c4c2f2bf2ba69e083731d0d2a77437fc6a350a19db139636e7e416c" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.80" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbe734895e869dc429d78c4b433f8d17d95f8d05317440b4fad5ab2d33e596dc" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", @@ -27347,35 +27194,17 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-root-certs" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" -dependencies = [ - "webpki-root-certs 1.0.2", -] - -[[package]] -name = "webpki-root-certs" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "webpki-roots" -version = "0.25.4" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" [[package]] name = "webpki-roots" -version = "1.0.2" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" dependencies = [ "rustls-pki-types", ] @@ -27540,19 +27369,19 @@ dependencies = [ [[package]] name = "whoami" -version = "1.6.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" +checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" dependencies = [ - "libredox", + "redox_syscall 0.5.8", "wasite", ] [[package]] name = "wide" -version = "0.7.33" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" +checksum = "aa469ffa65ef7e0ba0f164183697b89b854253fd31aeb92358b7b6155177d62f" dependencies = [ "bytemuck", "safe_arch", @@ -27560,9 +27389,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.2.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" [[package]] name = "winapi" @@ -27582,11 +27411,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.11" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "windows-sys 0.61.0", + "winapi", ] [[package]] @@ -27604,11 +27433,11 @@ dependencies = [ "anyhow", "cranelift-assembler-x64", "cranelift-codegen", - "gimli", + "gimli 0.31.1", "regalloc2 0.12.2", "smallvec", "target-lexicon", - "thiserror 2.0.16", + "thiserror 2.0.12", "wasmparser 0.235.0", "wasmtime-environ", "wasmtime-internal-cranelift", @@ -27617,209 +27446,130 @@ dependencies = [ [[package]] name = "windows" -version = "0.52.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] name = "windows" -version = "0.53.0" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538" +checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ - "windows-core 0.53.0", - "windows-targets 0.52.6", + "windows-core 0.51.1", + "windows-targets 0.48.5", ] [[package]] name = "windows" -version = "0.61.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" -dependencies = [ - "windows-collections", - "windows-core 0.61.2", - "windows-future", - "windows-link 0.1.3", - "windows-numerics", -] - -[[package]] -name = "windows-collections" -version = "0.2.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" dependencies = [ - "windows-core 0.61.2", + "windows-core 0.52.0", + "windows-targets 0.52.6", ] [[package]] -name = "windows-core" -version = "0.52.0" +name = "windows" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ + "windows-core 0.58.0", "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.53.0" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows-result 0.1.2", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] name = "windows-core" -version = "0.61.2" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-implement", - "windows-interface", - "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", + "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.62.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57fe7168f7de578d2d8a05b07fd61870d2e73b4020e9f49aa00da8471723497c" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ "windows-implement", "windows-interface", - "windows-link 0.2.0", - "windows-result 0.4.0", - "windows-strings 0.5.0", -] - -[[package]] -name = "windows-future" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" -dependencies = [ - "windows-core 0.61.2", - "windows-link 0.1.3", - "windows-threading", + "windows-result", + "windows-strings", + "windows-targets 0.52.6", ] [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - -[[package]] -name = "windows-link" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" - -[[package]] -name = "windows-numerics" -version = "0.2.0" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" -dependencies = [ - "windows-core 0.61.2", - "windows-link 0.1.3", -] +checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" [[package]] name = "windows-registry" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" -dependencies = [ - "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", -] - -[[package]] -name = "windows-result" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ + "windows-result", + "windows-strings", "windows-targets 0.52.6", ] [[package]] name = "windows-result" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-result" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f" -dependencies = [ - "windows-link 0.2.0", -] - -[[package]] -name = "windows-strings" -version = "0.4.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "windows-link 0.1.3", + "windows-targets 0.52.6", ] [[package]] name = "windows-strings" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda" -dependencies = [ - "windows-link 0.2.0", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "windows-targets 0.42.2", + "windows-result", + "windows-targets 0.52.6", ] [[package]] @@ -27855,31 +27605,7 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", -] - -[[package]] -name = "windows-sys" -version = "0.61.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e201184e40b2ede64bc2ea34968b28e33622acdbbf37104f0e4a33f7abe657aa" -dependencies = [ - "windows-link 0.2.0", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets 0.53.2", ] [[package]] @@ -27915,11 +27641,10 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" dependencies = [ - "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -27930,21 +27655,6 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] -[[package]] -name = "windows-threading" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -27963,12 +27673,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -27987,12 +27691,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -28023,12 +27721,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -28047,12 +27739,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -28071,12 +27757,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -28095,12 +27775,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -28121,18 +27795,27 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.5.40" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" dependencies = [ "memchr", ] [[package]] name = "winnow" -version = "0.7.13" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ "memchr", ] @@ -28148,16 +27831,25 @@ dependencies = [ ] [[package]] -name = "wit-bindgen" -version = "0.46.0" +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.9.4", +] + +[[package]] +name = "write16" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" [[package]] name = "writeable" -version = "0.6.1" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "wyz" @@ -28186,14 +27878,14 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" dependencies = [ - "asn1-rs 0.6.2", + "asn1-rs 0.6.1", "data-encoding", "der-parser 9.0.0", "lazy_static", "nom 7.1.3", - "oid-registry 0.7.1", + "oid-registry 0.7.0", "rusticata-macros", - "thiserror 1.0.69", + "thiserror 1.0.65", "time", ] @@ -28203,25 +27895,24 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4569f339c0c402346d4a75a9e39cf8dad310e287eef1ff56d4c68e5067f53460" dependencies = [ - "asn1-rs 0.7.1", + "asn1-rs 0.7.0", "data-encoding", "der-parser 10.0.0", "lazy_static", "nom 7.1.3", "oid-registry 0.8.1", "rusticata-macros", - "thiserror 2.0.16", + "thiserror 2.0.12", "time", ] [[package]] name = "xattr" -version = "1.5.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" +checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" dependencies = [ "libc", - "rustix 1.1.2", ] [[package]] @@ -28250,7 +27941,7 @@ dependencies = [ name = "xcm-emulator" version = "0.5.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "cumulus-pallet-parachain-system", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", @@ -28309,10 +28000,10 @@ version = "7.0.0" dependencies = [ "Inflector", "frame-support", - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", "staging-xcm", - "syn 2.0.106", + "syn 2.0.98", "trybuild", ] @@ -28413,9 +28104,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.27" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" +checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" [[package]] name = "xmltree" @@ -28435,7 +28126,7 @@ dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "static_assertions", @@ -28443,25 +28134,25 @@ dependencies = [ [[package]] name = "yamux" -version = "0.13.6" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2dd50a6d6115feb3e5d7d0efd45e8ca364b6c83722c1e9c602f5764e0e9597" +checksum = "3da1acad1c2dc53f0dde419115a38bd8221d8c3e47ae9aeceaf453266d29307e" dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", - "rand 0.9.2", + "rand 0.9.0", "static_assertions", "web-time", ] [[package]] name = "yansi" -version = "1.0.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "yap" @@ -28492,9 +28183,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.0" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -28504,55 +28195,75 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", - "synstructure 0.13.2", + "syn 2.0.98", + "synstructure 0.13.1", ] [[package]] name = "zerocopy" -version = "0.8.27" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" dependencies = [ - "zerocopy-derive", + "zerocopy-derive 0.7.32", +] + +[[package]] +name = "zerocopy" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde3bb8c68a8f3f1ed4ac9221aad6b10cece3e60a8e2ea54a6a2dec806d0084c" +dependencies = [ + "zerocopy-derive 0.8.20", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "eea57037071898bf96a6da35fd626f4f27e9cee3ead2a6c703cf09d472b2e700" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", - "synstructure 0.13.2", + "syn 2.0.98", + "synstructure 0.13.1", ] [[package]] @@ -28570,27 +28281,16 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", -] - -[[package]] -name = "zerotrie" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", + "syn 2.0.98", ] [[package]] name = "zerovec" -version = "0.11.4" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" dependencies = [ "yoke", "zerofrom", @@ -28599,13 +28299,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", "quote 1.0.40", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -28616,7 +28316,7 @@ dependencies = [ "parity-scale-codec", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-tungstenite 0.26.2", "tracing-gum", @@ -28630,14 +28330,14 @@ checksum = "939599296b4660c38fc4350444a80e34c241c0f0640de33dded9648082b994c8" dependencies = [ "anyhow", "lazy_static", - "multiaddr 0.18.2", + "multiaddr 0.18.1", "regex", "reqwest", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", - "toml 0.8.23", + "toml", "tracing", "url", "zombienet-support", @@ -28657,7 +28357,7 @@ dependencies = [ "hex", "libp2p", "libsecp256k1", - "multiaddr 0.18.2", + "multiaddr 0.18.1", "rand 0.8.5", "regex", "reqwest", @@ -28667,7 +28367,7 @@ dependencies = [ "sp-core 36.1.0", "subxt 0.43.0", "subxt-signer 0.43.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tracing", "uuid", @@ -28685,7 +28385,7 @@ checksum = "18efca2715d288088b867a00a7651ad7c0c2d958a3b8ba6c366645c622427c6d" dependencies = [ "pest", "pest_derive", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -28709,7 +28409,7 @@ dependencies = [ "serde_yaml", "sha2 0.10.9", "tar", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-util", "tracing", @@ -28752,7 +28452,7 @@ dependencies = [ "regex", "reqwest", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tracing", "uuid", @@ -28797,9 +28497,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" +version = "2.0.15+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" dependencies = [ "cc", "pkg-config", From eeb34a0a069a4d284888130e149399c2161d2120 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Wed, 24 Sep 2025 14:01:01 +0200 Subject: [PATCH 190/273] Revert "update expected compile error after serde update" This reverts commit 6efcbf9bf6b0ee9c92be3d399f5f31485acd4e07. --- .../tests/construct_runtime_ui/deprecated_where_block.stderr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/support/test/tests/construct_runtime_ui/deprecated_where_block.stderr b/substrate/frame/support/test/tests/construct_runtime_ui/deprecated_where_block.stderr index 1cfabbb8fd357..55d85ca503d68 100644 --- a/substrate/frame/support/test/tests/construct_runtime_ui/deprecated_where_block.stderr +++ b/substrate/frame/support/test/tests/construct_runtime_ui/deprecated_where_block.stderr @@ -740,7 +740,7 @@ error[E0277]: the trait bound `Runtime: Config` is not satisfied = help: the trait `Serialize` is implemented for `GenesisConfig` = note: required for `GenesisConfig` to implement `Serialize` note: required by a bound in `frame_support::sp_runtime::serde::ser::SerializeStruct::serialize_field` - --> $CARGO/serde_core-$VERSION/src/ser/mod.rs + --> $CARGO/serde-1.0.219/src/ser/mod.rs | | fn serialize_field(&mut self, key: &'static str, value: &T) -> Result<(), Self::Error> | --------------- required by a bound in this associated function From 102a578d91ff46740f2cbe58feee8bccb8e20678 Mon Sep 17 00:00:00 2001 From: "cmd[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 24 Sep 2025 13:13:10 +0000 Subject: [PATCH 191/273] Update from github-actions[bot] running command 'bench --runtime dev --pallet pallet_revive' --- substrate/frame/revive/src/weights.rs | 1498 +++++++++++++------------ 1 file changed, 770 insertions(+), 728 deletions(-) diff --git a/substrate/frame/revive/src/weights.rs b/substrate/frame/revive/src/weights.rs index 4ae862c49ff32..6bbfa6b147b87 100644 --- a/substrate/frame/revive/src/weights.rs +++ b/substrate/frame/revive/src/weights.rs @@ -35,9 +35,9 @@ //! Autogenerated weights for `pallet_revive` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2025-09-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2025-09-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `ff2afa3d9639`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `4d14026c9cda`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` // Executed Command: @@ -179,8 +179,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `147` // Estimated: `1632` - // Minimum execution time: 3_103_000 picoseconds. - Weight::from_parts(3_288_000, 1632) + // Minimum execution time: 3_137_000 picoseconds. + Weight::from_parts(3_342_000, 1632) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -190,20 +190,20 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `458 + k * (69 ±0)` // Estimated: `448 + k * (70 ±0)` - // Minimum execution time: 14_393_000 picoseconds. - Weight::from_parts(14_689_000, 448) - // Standard Error: 1_032 - .saturating_add(Weight::from_parts(1_205_681, 0).saturating_mul(k.into())) + // Minimum execution time: 14_338_000 picoseconds. + Weight::from_parts(732_716, 448) + // Standard Error: 1_405 + .saturating_add(Weight::from_parts(1_214_088, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(k.into())) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:1) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:2 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:1 w:1) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:0) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:1 w:0) @@ -217,18 +217,18 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1172 + c * (1 ±0)` // Estimated: `7107 + c * (1 ±0)` - // Minimum execution time: 85_415_000 picoseconds. - Weight::from_parts(120_226_734, 7107) + // Minimum execution time: 87_813_000 picoseconds. + Weight::from_parts(124_568_531, 7107) // Standard Error: 10 - .saturating_add(Weight::from_parts(1_539, 0).saturating_mul(c.into())) - .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(Weight::from_parts(1_417, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:1) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:2 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:1 w:1) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:0) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:1 w:0) @@ -238,19 +238,21 @@ impl WeightInfo for SubstrateWeight { /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// The range of component `c` is `[1, 10240]`. - fn call_with_evm_code_per_byte(_c: u32, ) -> Weight { + fn call_with_evm_code_per_byte(c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1112` // Estimated: `7051` - // Minimum execution time: 80_503_000 picoseconds. - Weight::from_parts(84_811_467, 7051) - .saturating_add(T::DbWeight::get().reads(7_u64)) + // Minimum execution time: 83_039_000 picoseconds. + Weight::from_parts(86_967_123, 7051) + // Standard Error: 18 + .saturating_add(Weight::from_parts(7, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:1) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:2 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:1 w:1) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:0) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:1 w:0) @@ -260,23 +262,25 @@ impl WeightInfo for SubstrateWeight { /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// The range of component `b` is `[0, 1]`. - fn basic_block_compilation(_b: u32, ) -> Weight { + fn basic_block_compilation(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `4516` // Estimated: `10456` - // Minimum execution time: 123_461_000 picoseconds. - Weight::from_parts(128_775_940, 10456) - .saturating_add(T::DbWeight::get().reads(7_u64)) + // Minimum execution time: 126_331_000 picoseconds. + Weight::from_parts(130_785_116, 10456) + // Standard Error: 414_115 + .saturating_add(Weight::from_parts(564_683, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:1) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:1) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Balances::Holds` (r:2 w:2) /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(427), added: 2902, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:1 w:1) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) @@ -289,27 +293,29 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6811` - // Minimum execution time: 749_503_000 picoseconds. - Weight::from_parts(59_829_896, 6811) + // Minimum execution time: 770_540_000 picoseconds. + Weight::from_parts(38_373_107, 6811) // Standard Error: 35 - .saturating_add(Weight::from_parts(20_233, 0).saturating_mul(c.into())) - // Standard Error: 27 - .saturating_add(Weight::from_parts(5_057, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().reads(7_u64)) + .saturating_add(Weight::from_parts(20_159, 0).saturating_mul(c.into())) + // Standard Error: 28 + .saturating_add(Weight::from_parts(5_201, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:2) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:1) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Balances::Holds` (r:2 w:2) /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(427), added: 2902, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:2 w:2) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:0 w:1) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `c` is `[0, 102400]`. @@ -318,29 +324,27 @@ impl WeightInfo for SubstrateWeight { fn eth_instantiate_with_code(c: u32, i: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `881` - // Estimated: `6821 + d * (2475 ±0)` - // Minimum execution time: 277_185_000 picoseconds. - Weight::from_parts(147_220_906, 6821) - // Standard Error: 29 - .saturating_add(Weight::from_parts(15_202, 0).saturating_mul(c.into())) + // Estimated: `6821` + // Minimum execution time: 291_223_000 picoseconds. + Weight::from_parts(204_772_655, 6821) // Standard Error: 23 - .saturating_add(Weight::from_parts(642, 0).saturating_mul(i.into())) - // Standard Error: 1_934_039 - .saturating_add(Weight::from_parts(34_192_978, 0).saturating_mul(d.into())) - .saturating_add(T::DbWeight::get().reads(7_u64)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(d.into()))) - .saturating_add(T::DbWeight::get().writes(6_u64)) + .saturating_add(Weight::from_parts(14_892, 0).saturating_mul(c.into())) + // Standard Error: 18 + .saturating_add(Weight::from_parts(402, 0).saturating_mul(i.into())) + // Standard Error: 1_531_657 + .saturating_add(Weight::from_parts(26_253_609, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(7_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) - .saturating_add(Weight::from_parts(0, 2475).saturating_mul(d.into())) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:1) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:1) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:1 w:0) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:1 w:1) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) @@ -350,19 +354,19 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 131072]`. fn instantiate(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1610` - // Estimated: `5060` - // Minimum execution time: 168_670_000 picoseconds. - Weight::from_parts(175_522_603, 5060) - // Standard Error: 12 - .saturating_add(Weight::from_parts(4_260, 0).saturating_mul(i.into())) - .saturating_add(T::DbWeight::get().reads(7_u64)) + // Measured: `1623` + // Estimated: `7552` + // Minimum execution time: 175_097_000 picoseconds. + Weight::from_parts(178_245_989, 7552) + // Standard Error: 10 + .saturating_add(Weight::from_parts(4_291, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:1) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:2 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:1 w:1) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:0) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:1 w:0) @@ -375,15 +379,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734` - // Minimum execution time: 86_819_000 picoseconds. - Weight::from_parts(89_536_000, 7734) - .saturating_add(T::DbWeight::get().reads(7_u64)) + // Minimum execution time: 89_950_000 picoseconds. + Weight::from_parts(93_653_000, 7734) + .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: `Revive::OriginalAccount` (r:2 w:0) - /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) /// Storage: `Revive::AccountInfoOf` (r:2 w:2) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) + /// Storage: `Revive::OriginalAccount` (r:2 w:0) + /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:0) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:1 w:0) @@ -392,20 +396,20 @@ impl WeightInfo for SubstrateWeight { /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `d` is `[0, 1]`. fn eth_call(d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1794` - // Estimated: `7734 + d * (2475 ±0)` - // Minimum execution time: 85_649_000 picoseconds. - Weight::from_parts(90_277_271, 7734) - // Standard Error: 333_872 - .saturating_add(Weight::from_parts(26_832_228, 0).saturating_mul(d.into())) - .saturating_add(T::DbWeight::get().reads(7_u64)) - .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(d.into()))) - .saturating_add(T::DbWeight::get().writes(2_u64)) + // Estimated: `7734` + // Minimum execution time: 96_129_000 picoseconds. + Weight::from_parts(100_557_626, 7734) + // Standard Error: 377_039 + .saturating_add(Weight::from_parts(24_138_173, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(9_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) - .saturating_add(Weight::from_parts(0, 2475).saturating_mul(d.into())) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) @@ -418,10 +422,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `303` // Estimated: `3768` - // Minimum execution time: 56_015_000 picoseconds. - Weight::from_parts(44_756_550, 3768) + // Minimum execution time: 56_402_000 picoseconds. + Weight::from_parts(48_856_000, 3768) // Standard Error: 17 - .saturating_add(Weight::from_parts(14_377, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(14_177, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -435,8 +439,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `458` // Estimated: `3923` - // Minimum execution time: 51_807_000 picoseconds. - Weight::from_parts(53_562_000, 3923) + // Minimum execution time: 52_285_000 picoseconds. + Weight::from_parts(53_452_000, 3923) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -454,8 +458,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `797` // Estimated: `6737` - // Minimum execution time: 65_431_000 picoseconds. - Weight::from_parts(66_763_000, 6737) + // Minimum execution time: 64_792_000 picoseconds. + Weight::from_parts(66_793_000, 6737) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -467,8 +471,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `510` // Estimated: `3975` - // Minimum execution time: 54_271_000 picoseconds. - Weight::from_parts(55_618_000, 3975) + // Minimum execution time: 54_348_000 picoseconds. + Weight::from_parts(54_970_000, 3975) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -480,8 +484,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `93` // Estimated: `3558` - // Minimum execution time: 38_990_000 picoseconds. - Weight::from_parts(39_656_000, 3558) + // Minimum execution time: 39_090_000 picoseconds. + Weight::from_parts(40_311_000, 3558) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -493,8 +497,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 13_086_000 picoseconds. - Weight::from_parts(13_681_000, 3610) + // Minimum execution time: 13_141_000 picoseconds. + Weight::from_parts(13_843_000, 3610) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// The range of component `r` is `[0, 1600]`. @@ -502,24 +506,24 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_423_000 picoseconds. - Weight::from_parts(9_149_999, 0) - // Standard Error: 227 - .saturating_add(Weight::from_parts(180_894, 0).saturating_mul(r.into())) + // Minimum execution time: 7_540_000 picoseconds. + Weight::from_parts(8_693_337, 0) + // Standard Error: 204 + .saturating_add(Weight::from_parts(169_076, 0).saturating_mul(r.into())) } fn seal_caller() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 294_000 picoseconds. - Weight::from_parts(330_000, 0) + // Minimum execution time: 333_000 picoseconds. + Weight::from_parts(397_000, 0) } fn seal_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 270_000 picoseconds. - Weight::from_parts(317_000, 0) + // Minimum execution time: 321_000 picoseconds. + Weight::from_parts(347_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -527,8 +531,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `567` // Estimated: `4032` - // Minimum execution time: 7_773_000 picoseconds. - Weight::from_parts(8_282_000, 4032) + // Minimum execution time: 8_337_000 picoseconds. + Weight::from_parts(8_794_000, 4032) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) @@ -537,16 +541,16 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `403` // Estimated: `3868` - // Minimum execution time: 9_567_000 picoseconds. - Weight::from_parts(9_975_000, 3868) + // Minimum execution time: 9_365_000 picoseconds. + Weight::from_parts(9_849_000, 3868) .saturating_add(T::DbWeight::get().reads(1_u64)) } fn own_code_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `0` + // Measured: `366` // Estimated: `0` - // Minimum execution time: 252_000 picoseconds. - Weight::from_parts(301_000, 0) + // Minimum execution time: 7_147_000 picoseconds. + Weight::from_parts(7_593_000, 0) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) @@ -556,51 +560,51 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `475` // Estimated: `3940` - // Minimum execution time: 13_090_000 picoseconds. - Weight::from_parts(13_527_000, 3940) + // Minimum execution time: 12_997_000 picoseconds. + Weight::from_parts(13_301_000, 3940) .saturating_add(T::DbWeight::get().reads(2_u64)) } fn caller_is_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 337_000 picoseconds. - Weight::from_parts(375_000, 0) + // Minimum execution time: 1_035_000 picoseconds. + Weight::from_parts(1_137_000, 0) } fn caller_is_root() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 258_000 picoseconds. - Weight::from_parts(300_000, 0) + // Minimum execution time: 1_036_000 picoseconds. + Weight::from_parts(1_120_000, 0) } fn seal_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` // Minimum execution time: 308_000 picoseconds. - Weight::from_parts(352_000, 0) + Weight::from_parts(336_000, 0) } fn weight_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 687_000 picoseconds. - Weight::from_parts(776_000, 0) + // Minimum execution time: 960_000 picoseconds. + Weight::from_parts(1_043_000, 0) } fn seal_ref_time_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 247_000 picoseconds. - Weight::from_parts(278_000, 0) + // Minimum execution time: 267_000 picoseconds. + Weight::from_parts(297_000, 0) } fn seal_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `540` + // Measured: `469` // Estimated: `0` - // Minimum execution time: 12_447_000 picoseconds. - Weight::from_parts(13_433_000, 0) + // Minimum execution time: 12_434_000 picoseconds. + Weight::from_parts(12_790_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -612,8 +616,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `791` // Estimated: `4256` - // Minimum execution time: 18_806_000 picoseconds. - Weight::from_parts(19_217_000, 4256) + // Minimum execution time: 18_486_000 picoseconds. + Weight::from_parts(19_245_000, 4256) .saturating_add(T::DbWeight::get().reads(3_u64)) } /// Storage: `Revive::ImmutableDataOf` (r:1 w:0) @@ -623,10 +627,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `271 + n * (1 ±0)` // Estimated: `3736 + n * (1 ±0)` - // Minimum execution time: 5_800_000 picoseconds. - Weight::from_parts(6_657_021, 3736) - // Standard Error: 6 - .saturating_add(Weight::from_parts(595, 0).saturating_mul(n.into())) + // Minimum execution time: 6_149_000 picoseconds. + Weight::from_parts(6_874_947, 3736) + // Standard Error: 5 + .saturating_add(Weight::from_parts(563, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -637,67 +641,67 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_057_000 picoseconds. - Weight::from_parts(2_320_795, 0) + // Minimum execution time: 1_979_000 picoseconds. + Weight::from_parts(2_235_236, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(558, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(587, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().writes(1_u64)) } fn seal_value_transferred() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 260_000 picoseconds. - Weight::from_parts(293_000, 0) + // Minimum execution time: 291_000 picoseconds. + Weight::from_parts(325_000, 0) } fn minimum_balance() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 233_000 picoseconds. - Weight::from_parts(291_000, 0) + // Minimum execution time: 1_156_000 picoseconds. + Weight::from_parts(1_260_000, 0) } fn seal_return_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 232_000 picoseconds. - Weight::from_parts(262_000, 0) + // Minimum execution time: 255_000 picoseconds. + Weight::from_parts(287_000, 0) } fn seal_call_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 234_000 picoseconds. - Weight::from_parts(273_000, 0) + // Minimum execution time: 242_000 picoseconds. + Weight::from_parts(282_000, 0) } fn seal_gas_limit() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 441_000 picoseconds. - Weight::from_parts(523_000, 0) + // Minimum execution time: 448_000 picoseconds. + Weight::from_parts(494_000, 0) } fn seal_gas_price() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 254_000 picoseconds. - Weight::from_parts(294_000, 0) + // Minimum execution time: 255_000 picoseconds. + Weight::from_parts(293_000, 0) } fn seal_base_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 229_000 picoseconds. - Weight::from_parts(269_000, 0) + // Minimum execution time: 250_000 picoseconds. + Weight::from_parts(285_000, 0) } fn seal_block_number() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 254_000 picoseconds. - Weight::from_parts(290_000, 0) + // Minimum execution time: 245_000 picoseconds. + Weight::from_parts(309_000, 0) } /// Storage: `Session::Validators` (r:1 w:0) /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -705,70 +709,72 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `141` // Estimated: `1626` - // Minimum execution time: 21_852_000 picoseconds. - Weight::from_parts(22_526_000, 1626) + // Minimum execution time: 21_807_000 picoseconds. + Weight::from_parts(22_212_000, 1626) .saturating_add(T::DbWeight::get().reads(1_u64)) } + /// Storage: `Revive::BlockHash` (r:1 w:0) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `Measured`) /// Storage: `System::BlockHash` (r:1 w:0) /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `Measured`) fn seal_block_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `30` - // Estimated: `3495` - // Minimum execution time: 3_600_000 picoseconds. - Weight::from_parts(3_830_000, 3495) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Measured: `295` + // Estimated: `3760` + // Minimum execution time: 8_549_000 picoseconds. + Weight::from_parts(8_828_000, 3760) + .saturating_add(T::DbWeight::get().reads(2_u64)) } fn seal_now() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 239_000 picoseconds. - Weight::from_parts(276_000, 0) + // Minimum execution time: 264_000 picoseconds. + Weight::from_parts(290_000, 0) } fn seal_weight_to_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` // Minimum execution time: 1_595_000 picoseconds. - Weight::from_parts(1_665_000, 0) + Weight::from_parts(1_732_000, 0) } /// The range of component `n` is `[0, 1048572]`. fn seal_copy_to_contract(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 402_000 picoseconds. - Weight::from_parts(496_964, 0) + // Minimum execution time: 444_000 picoseconds. + Weight::from_parts(661_839, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(239, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(238, 0).saturating_mul(n.into())) } fn seal_call_data_load() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 250_000 picoseconds. - Weight::from_parts(289_000, 0) + // Minimum execution time: 263_000 picoseconds. + Weight::from_parts(305_000, 0) } /// The range of component `n` is `[0, 1048576]`. fn seal_call_data_copy(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 230_000 picoseconds. - Weight::from_parts(255_000, 0) + // Minimum execution time: 258_000 picoseconds. + Weight::from_parts(284_000, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(151, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(150, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 131072]`. fn seal_return(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 253_000 picoseconds. - Weight::from_parts(544_296, 0) + // Minimum execution time: 275_000 picoseconds. + Weight::from_parts(557_511, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(237, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(236, 0).saturating_mul(n.into())) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -789,17 +795,17 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 1]`. fn seal_terminate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `583 + r * (402 ±0)` - // Estimated: `4048 + r * (2225 ±0)` - // Minimum execution time: 16_727_000 picoseconds. - Weight::from_parts(17_739_285, 4048) - // Standard Error: 59_932 - .saturating_add(Weight::from_parts(44_553_014, 0).saturating_mul(r.into())) + // Measured: `583 + r * (368 ±0)` + // Estimated: `4048 + r * (2208 ±0)` + // Minimum execution time: 16_800_000 picoseconds. + Weight::from_parts(17_989_334, 4048) + // Standard Error: 61_844 + .saturating_add(Weight::from_parts(45_142_965, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2225).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2208).saturating_mul(r.into())) } /// The range of component `t` is `[0, 4]`. /// The range of component `n` is `[0, 416]`. @@ -807,12 +813,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_226_000 picoseconds. - Weight::from_parts(4_252_357, 0) - // Standard Error: 3_401 - .saturating_add(Weight::from_parts(233_040, 0).saturating_mul(t.into())) + // Minimum execution time: 4_480_000 picoseconds. + Weight::from_parts(4_551_525, 0) + // Standard Error: 3_383 + .saturating_add(Weight::from_parts(222_280, 0).saturating_mul(t.into())) // Standard Error: 37 - .saturating_add(Weight::from_parts(1_172, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_016, 0).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -820,8 +826,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 6_909_000 picoseconds. - Weight::from_parts(7_499_000, 648) + // Minimum execution time: 7_334_000 picoseconds. + Weight::from_parts(7_739_000, 648) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -830,8 +836,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 41_173_000 picoseconds. - Weight::from_parts(42_303_000, 10658) + // Minimum execution time: 41_676_000 picoseconds. + Weight::from_parts(43_124_000, 10658) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -840,8 +846,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 8_428_000 picoseconds. - Weight::from_parts(8_817_000, 648) + // Minimum execution time: 8_314_000 picoseconds. + Weight::from_parts(8_847_000, 648) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -851,8 +857,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 43_627_000 picoseconds. - Weight::from_parts(44_777_000, 10658) + // Minimum execution time: 43_072_000 picoseconds. + Weight::from_parts(44_347_000, 10658) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -864,12 +870,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + o * (1 ±0)` // Estimated: `247 + o * (1 ±0)` - // Minimum execution time: 8_934_000 picoseconds. - Weight::from_parts(9_589_880, 247) - // Standard Error: 65 - .saturating_add(Weight::from_parts(667, 0).saturating_mul(n.into())) - // Standard Error: 65 - .saturating_add(Weight::from_parts(821, 0).saturating_mul(o.into())) + // Minimum execution time: 8_670_000 picoseconds. + Weight::from_parts(9_444_232, 247) + // Standard Error: 56 + .saturating_add(Weight::from_parts(569, 0).saturating_mul(n.into())) + // Standard Error: 56 + .saturating_add(Weight::from_parts(1_223, 0).saturating_mul(o.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(o.into())) @@ -881,10 +887,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_527_000 picoseconds. - Weight::from_parts(9_507_817, 247) - // Standard Error: 73 - .saturating_add(Weight::from_parts(860, 0).saturating_mul(n.into())) + // Minimum execution time: 8_312_000 picoseconds. + Weight::from_parts(9_452_645, 247) + // Standard Error: 68 + .saturating_add(Weight::from_parts(941, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -896,10 +902,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_076_000 picoseconds. - Weight::from_parts(9_106_693, 247) - // Standard Error: 73 - .saturating_add(Weight::from_parts(1_668, 0).saturating_mul(n.into())) + // Minimum execution time: 8_084_000 picoseconds. + Weight::from_parts(9_143_251, 247) + // Standard Error: 84 + .saturating_add(Weight::from_parts(1_703, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -910,10 +916,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 7_571_000 picoseconds. - Weight::from_parts(8_454_639, 247) - // Standard Error: 69 - .saturating_add(Weight::from_parts(888, 0).saturating_mul(n.into())) + // Minimum execution time: 7_422_000 picoseconds. + Weight::from_parts(8_507_657, 247) + // Standard Error: 78 + .saturating_add(Weight::from_parts(863, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -924,10 +930,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 9_140_000 picoseconds. - Weight::from_parts(10_132_276, 247) - // Standard Error: 70 - .saturating_add(Weight::from_parts(1_866, 0).saturating_mul(n.into())) + // Minimum execution time: 8_534_000 picoseconds. + Weight::from_parts(10_112_230, 247) + // Standard Error: 88 + .saturating_add(Weight::from_parts(1_599, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -936,36 +942,36 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_655_000 picoseconds. - Weight::from_parts(1_744_000, 0) + // Minimum execution time: 1_569_000 picoseconds. + Weight::from_parts(1_671_000, 0) } fn set_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_987_000 picoseconds. - Weight::from_parts(2_135_000, 0) + // Minimum execution time: 1_901_000 picoseconds. + Weight::from_parts(2_108_000, 0) } fn get_transient_storage_empty() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_641_000 picoseconds. - Weight::from_parts(1_751_000, 0) + // Minimum execution time: 1_574_000 picoseconds. + Weight::from_parts(1_693_000, 0) } fn get_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_732_000 picoseconds. - Weight::from_parts(1_891_000, 0) + // Minimum execution time: 1_731_000 picoseconds. + Weight::from_parts(1_885_000, 0) } fn rollback_transient_storage() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_237_000 picoseconds. - Weight::from_parts(1_378_000, 0) + // Minimum execution time: 1_235_000 picoseconds. + Weight::from_parts(1_357_000, 0) } /// The range of component `n` is `[0, 416]`. /// The range of component `o` is `[0, 416]`. @@ -973,50 +979,52 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_283_000 picoseconds. - Weight::from_parts(2_636_514, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(296, 0).saturating_mul(n.into())) - // Standard Error: 19 - .saturating_add(Weight::from_parts(374, 0).saturating_mul(o.into())) + // Minimum execution time: 2_233_000 picoseconds. + Weight::from_parts(2_580_006, 0) + // Standard Error: 17 + .saturating_add(Weight::from_parts(180, 0).saturating_mul(n.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(464, 0).saturating_mul(o.into())) } /// The range of component `n` is `[0, 416]`. fn seal_clear_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_171_000 picoseconds. - Weight::from_parts(2_555_844, 0) - // Standard Error: 23 - .saturating_add(Weight::from_parts(468, 0).saturating_mul(n.into())) + // Minimum execution time: 1_996_000 picoseconds. + Weight::from_parts(2_490_053, 0) + // Standard Error: 25 + .saturating_add(Weight::from_parts(346, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_get_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_985_000 picoseconds. - Weight::from_parts(2_277_401, 0) - // Standard Error: 21 - .saturating_add(Weight::from_parts(394, 0).saturating_mul(n.into())) + // Minimum execution time: 1_958_000 picoseconds. + Weight::from_parts(2_167_207, 0) + // Standard Error: 22 + .saturating_add(Weight::from_parts(455, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_contains_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_784_000 picoseconds. - Weight::from_parts(2_034_472, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(214, 0).saturating_mul(n.into())) + // Minimum execution time: 1_771_000 picoseconds. + Weight::from_parts(2_055_166, 0) + // Standard Error: 17 + .saturating_add(Weight::from_parts(194, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. - fn seal_take_transient_storage(_n: u32, ) -> Weight { + fn seal_take_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_653_000 picoseconds. - Weight::from_parts(2_929_498, 0) + // Minimum execution time: 2_600_000 picoseconds. + Weight::from_parts(2_869_587, 0) + // Standard Error: 22 + .saturating_add(Weight::from_parts(45, 0).saturating_mul(n.into())) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -1033,16 +1041,16 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 1048576]`. fn seal_call(t: u32, d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1925` - // Estimated: `5390` - // Minimum execution time: 88_292_000 picoseconds. - Weight::from_parts(67_934_136, 5390) - // Standard Error: 161_519 - .saturating_add(Weight::from_parts(19_069_368, 0).saturating_mul(t.into())) - // Standard Error: 161_519 - .saturating_add(Weight::from_parts(25_783_515, 0).saturating_mul(d.into())) + // Measured: `1982` + // Estimated: `5447` + // Minimum execution time: 89_339_000 picoseconds. + Weight::from_parts(71_194_785, 5447) + // Standard Error: 177_775 + .saturating_add(Weight::from_parts(18_151_202, 0).saturating_mul(t.into())) + // Standard Error: 177_775 + .saturating_add(Weight::from_parts(25_131_334, 0).saturating_mul(d.into())) // Standard Error: 0 - .saturating_add(Weight::from_parts(4, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(3, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(t.into()))) @@ -1057,12 +1065,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `366 + d * (212 ±0)` // Estimated: `2021 + d * (2021 ±0)` - // Minimum execution time: 24_082_000 picoseconds. - Weight::from_parts(11_635_002, 2021) - // Standard Error: 32_873 - .saturating_add(Weight::from_parts(13_461_671, 0).saturating_mul(d.into())) + // Minimum execution time: 24_467_000 picoseconds. + Weight::from_parts(12_119_417, 2021) + // Standard Error: 40_827 + .saturating_add(Weight::from_parts(13_748_197, 0).saturating_mul(d.into())) // Standard Error: 0 - .saturating_add(Weight::from_parts(395, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(394, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(d.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) .saturating_add(Weight::from_parts(0, 2021).saturating_mul(d.into())) @@ -1077,8 +1085,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1363` // Estimated: `4828` - // Minimum execution time: 31_965_000 picoseconds. - Weight::from_parts(33_059_000, 4828) + // Minimum execution time: 32_504_000 picoseconds. + Weight::from_parts(33_826_000, 4828) .saturating_add(T::DbWeight::get().reads(3_u64)) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) @@ -1094,38 +1102,36 @@ impl WeightInfo for SubstrateWeight { /// The range of component `i` is `[0, 131072]`. fn seal_instantiate(t: u32, d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1413` - // Estimated: `4857 + d * (28 ±1) + t * (28 ±1)` - // Minimum execution time: 150_124_000 picoseconds. - Weight::from_parts(100_922_263, 4857) - // Standard Error: 553_691 - .saturating_add(Weight::from_parts(21_824_333, 0).saturating_mul(t.into())) - // Standard Error: 553_691 - .saturating_add(Weight::from_parts(30_090_103, 0).saturating_mul(d.into())) + // Measured: `1394` + // Estimated: `4860` + // Minimum execution time: 147_209_000 picoseconds. + Weight::from_parts(104_165_168, 4860) + // Standard Error: 533_910 + .saturating_add(Weight::from_parts(18_524_068, 0).saturating_mul(t.into())) + // Standard Error: 533_910 + .saturating_add(Weight::from_parts(30_198_831, 0).saturating_mul(d.into())) // Standard Error: 6 - .saturating_add(Weight::from_parts(4_031, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(4_029, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 28).saturating_mul(d.into())) - .saturating_add(Weight::from_parts(0, 28).saturating_mul(t.into())) } /// The range of component `n` is `[0, 1048576]`. fn sha2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_198_000 picoseconds. - Weight::from_parts(5_902_477, 0) + // Minimum execution time: 1_239_000 picoseconds. + Weight::from_parts(13_350_242, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_301, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_285, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn identity(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 710_000 picoseconds. - Weight::from_parts(583_657, 0) + // Minimum execution time: 740_000 picoseconds. + Weight::from_parts(894_530, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(148, 0).saturating_mul(n.into())) } @@ -1135,97 +1141,97 @@ impl WeightInfo for SubstrateWeight { // Measured: `0` // Estimated: `0` // Minimum execution time: 1_145_000 picoseconds. - Weight::from_parts(5_218_490, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_770, 0).saturating_mul(n.into())) + Weight::from_parts(2_106_751, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(3_789, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_keccak_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_133_000 picoseconds. - Weight::from_parts(12_018_626, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(3_591, 0).saturating_mul(n.into())) + // Minimum execution time: 1_140_000 picoseconds. + Weight::from_parts(12_704_090, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(3_580, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn hash_blake2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_594_000 picoseconds. - Weight::from_parts(16_080_940, 0) + // Minimum execution time: 1_577_000 picoseconds. + Weight::from_parts(11_102_200, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_437, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_447, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn hash_blake2_128(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_493_000 picoseconds. - Weight::from_parts(12_215_603, 0) + // Minimum execution time: 1_643_000 picoseconds. + Weight::from_parts(11_977_668, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_440, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_451, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048321]`. fn seal_sr25519_verify(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 42_270_000 picoseconds. - Weight::from_parts(93_835_987, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(5_026, 0).saturating_mul(n.into())) + // Minimum execution time: 42_844_000 picoseconds. + Weight::from_parts(95_143_512, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(5_028, 0).saturating_mul(n.into())) } fn ecdsa_recover() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 45_951_000 picoseconds. - Weight::from_parts(46_894_000, 0) + // Minimum execution time: 46_183_000 picoseconds. + Weight::from_parts(47_222_000, 0) } fn bn128_add() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 14_272_000 picoseconds. - Weight::from_parts(15_204_000, 0) + // Minimum execution time: 14_619_000 picoseconds. + Weight::from_parts(15_727_000, 0) } fn bn128_mul() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 980_350_000 picoseconds. - Weight::from_parts(988_695_000, 0) + // Minimum execution time: 980_244_000 picoseconds. + Weight::from_parts(992_300_000, 0) } /// The range of component `n` is `[0, 20]`. fn bn128_pairing(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 760_000 picoseconds. - Weight::from_parts(4_873_448_313, 0) - // Standard Error: 10_617_668 - .saturating_add(Weight::from_parts(5_964_183_373, 0).saturating_mul(n.into())) + // Minimum execution time: 829_000 picoseconds. + Weight::from_parts(5_035_974_897, 0) + // Standard Error: 11_531_145 + .saturating_add(Weight::from_parts(6_051_195_715, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1200]`. fn blake2f(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 914_000 picoseconds. - Weight::from_parts(1_152_510, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(28_870, 0).saturating_mul(n.into())) + // Minimum execution time: 936_000 picoseconds. + Weight::from_parts(1_212_971, 0) + // Standard Error: 15 + .saturating_add(Weight::from_parts(28_732, 0).saturating_mul(n.into())) } fn seal_ecdsa_to_eth_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_862_000 picoseconds. - Weight::from_parts(13_004_000, 0) + // Minimum execution time: 12_938_000 picoseconds. + Weight::from_parts(13_110_000, 0) } /// Storage: `Revive::CodeInfoOf` (r:2 w:2) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) @@ -1238,47 +1244,47 @@ impl WeightInfo for SubstrateWeight { /// The range of component `r` is `[0, 1]`. fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `391 + r * (468 ±0)` - // Estimated: `6331 + r * (2162 ±0)` - // Minimum execution time: 14_987_000 picoseconds. - Weight::from_parts(15_935_167, 6331) - // Standard Error: 52_524 - .saturating_add(Weight::from_parts(45_530_232, 0).saturating_mul(r.into())) + // Measured: `391 + r * (401 ±0)` + // Estimated: `6331 + r * (2129 ±0)` + // Minimum execution time: 14_998_000 picoseconds. + Weight::from_parts(16_168_812, 6331) + // Standard Error: 52_358 + .saturating_add(Weight::from_parts(44_835_387, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((3_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2162).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2129).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn evm_opcode(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_206_000 picoseconds. - Weight::from_parts(1_895_352, 0) + // Minimum execution time: 1_228_000 picoseconds. + Weight::from_parts(1_828_284, 0) // Standard Error: 19 - .saturating_add(Weight::from_parts(6_177, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_919, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_772_000 picoseconds. - Weight::from_parts(53_405_104, 0) - // Standard Error: 346 - .saturating_add(Weight::from_parts(125_622, 0).saturating_mul(r.into())) + // Minimum execution time: 12_500_000 picoseconds. + Weight::from_parts(64_160_653, 0) + // Standard Error: 284 + .saturating_add(Weight::from_parts(130_625, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr_empty_loop(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_147_000 picoseconds. - Weight::from_parts(1_883_710, 0) - // Standard Error: 47 - .saturating_add(Weight::from_parts(71_984, 0).saturating_mul(r.into())) + // Minimum execution time: 3_240_000 picoseconds. + Weight::from_parts(2_791_448, 0) + // Standard Error: 61 + .saturating_add(Weight::from_parts(71_969, 0).saturating_mul(r.into())) } /// Storage: `Revive::PristineCode` (r:1 w:0) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -1287,10 +1293,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `457 + n * (1 ±0)` // Estimated: `3922 + n * (1 ±0)` - // Minimum execution time: 14_211_000 picoseconds. - Weight::from_parts(13_786_057, 3922) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_062, 0).saturating_mul(n.into())) + // Minimum execution time: 14_222_000 picoseconds. + Weight::from_parts(14_034_006, 3922) + // Standard Error: 6 + .saturating_add(Weight::from_parts(852, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1302,8 +1308,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `316` // Estimated: `6256` - // Minimum execution time: 11_898_000 picoseconds. - Weight::from_parts(12_772_000, 6256) + // Minimum execution time: 12_029_000 picoseconds. + Weight::from_parts(12_717_000, 6256) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -1317,15 +1323,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `439` // Estimated: `6794` - // Minimum execution time: 62_964_000 picoseconds. - Weight::from_parts(64_865_000, 6794) + // Minimum execution time: 63_362_000 picoseconds. + Weight::from_parts(65_057_000, 6794) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } /// Storage: `Revive::BlockHash` (r:1 w:1) - /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::InflightTransactions` (r:1 w:1) - /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) @@ -1335,31 +1341,45 @@ impl WeightInfo for SubstrateWeight { /// The range of component `n` is `[0, 200]`. fn on_finalize_per_transaction(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3685 + n * (60 ±0)` - // Estimated: `6815 + n * (62 ±0)` - // Minimum execution time: 27_174_000 picoseconds. - Weight::from_parts(63_904_853, 6815) - // Standard Error: 3_877 - .saturating_add(Weight::from_parts(377_767, 0).saturating_mul(n.into())) - .saturating_add(Weight::from_parts(0, 62).saturating_mul(n.into())) + // Measured: `2897 + n * (65 ±0)` + // Estimated: `6196 + n * (67 ±0)` + // Minimum execution time: 26_280_000 picoseconds. + Weight::from_parts(54_943_766, 6196) + // Standard Error: 4_467 + .saturating_add(Weight::from_parts(405_154, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) + .saturating_add(Weight::from_parts(0, 67).saturating_mul(n.into())) } + /// Storage: `Revive::BlockHash` (r:1 w:1) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Timestamp::Now` (r:1 w:0) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) + /// Storage: `Revive::EthereumBlock` (r:0 w:1) + /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) + /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `d` is `[0, 1000]`. fn on_finalize_per_transaction_data(d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3685 + p * (2 ±0)` - // Estimated: `6815 + p * (2 ±0)` - // Minimum execution time: 27_174_000 picoseconds. - Weight::from_parts(63_904_853, 6815) - // Standard Error: 776 - .saturating_add(Weight::from_parts(8_806, 0).saturating_mul(d.into())) + // Measured: `3153 + d * (3 ±0)` + // Estimated: `6612 + d * (3 ±0)` + // Minimum execution time: 56_248_000 picoseconds. + Weight::from_parts(58_624_974, 6612) + // Standard Error: 170 + .saturating_add(Weight::from_parts(12_979, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 2).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(0, 3).saturating_mul(d.into())) } + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// Storage: `Revive::BlockHash` (r:1 w:1) - /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::InflightTransactions` (r:1 w:1) - /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) @@ -1367,19 +1387,23 @@ impl WeightInfo for SubstrateWeight { /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `e` is `[0, 100]`. - fn on_finalize_per_event(e: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `631 + e * (56 ±0)` - // Estimated: `2423 + e * (70 ±1)` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(13_249_502, 2423) - // Standard Error: 6_871 - .saturating_add(Weight::from_parts(1_198_945, 0).saturating_mul(e.into())) - .saturating_add(T::DbWeight::get().reads(3_u64)) + fn on_finalize_per_event(_e: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1377` + // Estimated: `4842` + // Minimum execution time: 43_263_000 picoseconds. + Weight::from_parts(45_551_022, 4842) + .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 70).saturating_mul(e.into())) } - + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `Revive::BlockHash` (r:1 w:1) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Timestamp::Now` (r:1 w:0) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) @@ -1387,15 +1411,14 @@ impl WeightInfo for SubstrateWeight { /// The range of component `d` is `[0, 16384]`. fn on_finalize_per_event_data(d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `631 + d * (1 ±0)` - // Estimated: `2423 + d * (1 ±0)` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(13_249_502, 2423) - // Standard Error: 42 - .saturating_add(Weight::from_parts(3_336, 0).saturating_mul(d.into())) - .saturating_add(T::DbWeight::get().reads(3_u64)) + // Measured: `1377` + // Estimated: `4842` + // Minimum execution time: 43_003_000 picoseconds. + Weight::from_parts(45_119_285, 4842) + // Standard Error: 10 + .saturating_add(Weight::from_parts(44, 0).saturating_mul(d.into())) + .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 1).saturating_mul(d.into())) } } @@ -1407,8 +1430,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `147` // Estimated: `1632` - // Minimum execution time: 3_103_000 picoseconds. - Weight::from_parts(3_288_000, 1632) + // Minimum execution time: 3_137_000 picoseconds. + Weight::from_parts(3_342_000, 1632) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -1418,20 +1441,20 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `458 + k * (69 ±0)` // Estimated: `448 + k * (70 ±0)` - // Minimum execution time: 14_393_000 picoseconds. - Weight::from_parts(14_689_000, 448) - // Standard Error: 1_032 - .saturating_add(Weight::from_parts(1_205_681, 0).saturating_mul(k.into())) + // Minimum execution time: 14_338_000 picoseconds. + Weight::from_parts(732_716, 448) + // Standard Error: 1_405 + .saturating_add(Weight::from_parts(1_214_088, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(k.into()))) .saturating_add(Weight::from_parts(0, 70).saturating_mul(k.into())) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:1) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:2 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:1 w:1) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:0) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:1 w:0) @@ -1445,18 +1468,18 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1172 + c * (1 ±0)` // Estimated: `7107 + c * (1 ±0)` - // Minimum execution time: 85_415_000 picoseconds. - Weight::from_parts(120_226_734, 7107) + // Minimum execution time: 87_813_000 picoseconds. + Weight::from_parts(124_568_531, 7107) // Standard Error: 10 - .saturating_add(Weight::from_parts(1_539, 0).saturating_mul(c.into())) - .saturating_add(RocksDbWeight::get().reads(7_u64)) + .saturating_add(Weight::from_parts(1_417, 0).saturating_mul(c.into())) + .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:1) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:2 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:1 w:1) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:0) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:1 w:0) @@ -1466,19 +1489,21 @@ impl WeightInfo for () { /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// The range of component `c` is `[1, 10240]`. - fn call_with_evm_code_per_byte(_c: u32, ) -> Weight { + fn call_with_evm_code_per_byte(c: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1112` // Estimated: `7051` - // Minimum execution time: 80_503_000 picoseconds. - Weight::from_parts(84_811_467, 7051) - .saturating_add(RocksDbWeight::get().reads(7_u64)) + // Minimum execution time: 83_039_000 picoseconds. + Weight::from_parts(86_967_123, 7051) + // Standard Error: 18 + .saturating_add(Weight::from_parts(7, 0).saturating_mul(c.into())) + .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:1) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:2 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:1 w:1) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:0) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:1 w:0) @@ -1488,23 +1513,25 @@ impl WeightInfo for () { /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// The range of component `b` is `[0, 1]`. - fn basic_block_compilation(_b: u32, ) -> Weight { + fn basic_block_compilation(b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `4516` // Estimated: `10456` - // Minimum execution time: 123_461_000 picoseconds. - Weight::from_parts(128_775_940, 10456) - .saturating_add(RocksDbWeight::get().reads(7_u64)) + // Minimum execution time: 126_331_000 picoseconds. + Weight::from_parts(130_785_116, 10456) + // Standard Error: 414_115 + .saturating_add(Weight::from_parts(564_683, 0).saturating_mul(b.into())) + .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:1) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:1) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Balances::Holds` (r:2 w:2) /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(427), added: 2902, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:1 w:1) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) @@ -1517,27 +1544,29 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6811` - // Minimum execution time: 749_503_000 picoseconds. - Weight::from_parts(59_829_896, 6811) + // Minimum execution time: 770_540_000 picoseconds. + Weight::from_parts(38_373_107, 6811) // Standard Error: 35 - .saturating_add(Weight::from_parts(20_233, 0).saturating_mul(c.into())) - // Standard Error: 27 - .saturating_add(Weight::from_parts(5_057, 0).saturating_mul(i.into())) - .saturating_add(RocksDbWeight::get().reads(7_u64)) + .saturating_add(Weight::from_parts(20_159, 0).saturating_mul(c.into())) + // Standard Error: 28 + .saturating_add(Weight::from_parts(5_201, 0).saturating_mul(i.into())) + .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:2) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:1) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Balances::Holds` (r:2 w:2) /// Proof: `Balances::Holds` (`max_values`: None, `max_size`: Some(427), added: 2902, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:2 w:2) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:0 w:1) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) /// The range of component `c` is `[0, 102400]`. @@ -1546,29 +1575,27 @@ impl WeightInfo for () { fn eth_instantiate_with_code(c: u32, i: u32, d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `881` - // Estimated: `6821 + d * (2475 ±0)` - // Minimum execution time: 277_185_000 picoseconds. - Weight::from_parts(147_220_906, 6821) - // Standard Error: 29 - .saturating_add(Weight::from_parts(15_202, 0).saturating_mul(c.into())) + // Estimated: `6821` + // Minimum execution time: 291_223_000 picoseconds. + Weight::from_parts(204_772_655, 6821) // Standard Error: 23 - .saturating_add(Weight::from_parts(642, 0).saturating_mul(i.into())) - // Standard Error: 1_934_039 - .saturating_add(Weight::from_parts(34_192_978, 0).saturating_mul(d.into())) - .saturating_add(RocksDbWeight::get().reads(7_u64)) - .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(d.into()))) - .saturating_add(RocksDbWeight::get().writes(6_u64)) + .saturating_add(Weight::from_parts(14_892, 0).saturating_mul(c.into())) + // Standard Error: 18 + .saturating_add(Weight::from_parts(402, 0).saturating_mul(i.into())) + // Standard Error: 1_531_657 + .saturating_add(Weight::from_parts(26_253_609, 0).saturating_mul(d.into())) + .saturating_add(RocksDbWeight::get().reads(9_u64)) + .saturating_add(RocksDbWeight::get().writes(7_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(d.into()))) - .saturating_add(Weight::from_parts(0, 2475).saturating_mul(d.into())) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:1) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:1) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:1 w:0) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:1 w:1) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) @@ -1578,19 +1605,19 @@ impl WeightInfo for () { /// The range of component `i` is `[0, 131072]`. fn instantiate(i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1610` - // Estimated: `5060` - // Minimum execution time: 168_670_000 picoseconds. - Weight::from_parts(175_522_603, 5060) - // Standard Error: 12 - .saturating_add(Weight::from_parts(4_260, 0).saturating_mul(i.into())) - .saturating_add(RocksDbWeight::get().reads(7_u64)) + // Measured: `1623` + // Estimated: `7552` + // Minimum execution time: 175_097_000 picoseconds. + Weight::from_parts(178_245_989, 7552) + // Standard Error: 10 + .saturating_add(Weight::from_parts(4_291, 0).saturating_mul(i.into())) + .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } + /// Storage: `Revive::AccountInfoOf` (r:2 w:1) + /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::OriginalAccount` (r:2 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) - /// Storage: `Revive::AccountInfoOf` (r:1 w:1) - /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:0) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:1 w:0) @@ -1603,15 +1630,15 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734` - // Minimum execution time: 86_819_000 picoseconds. - Weight::from_parts(89_536_000, 7734) - .saturating_add(RocksDbWeight::get().reads(7_u64)) + // Minimum execution time: 89_950_000 picoseconds. + Weight::from_parts(93_653_000, 7734) + .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } - /// Storage: `Revive::OriginalAccount` (r:2 w:0) - /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) /// Storage: `Revive::AccountInfoOf` (r:2 w:2) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) + /// Storage: `Revive::OriginalAccount` (r:2 w:0) + /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) /// Storage: `Revive::CodeInfoOf` (r:1 w:0) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) /// Storage: `Revive::PristineCode` (r:1 w:0) @@ -1620,20 +1647,20 @@ impl WeightInfo for () { /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `d` is `[0, 1]`. fn eth_call(d: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1794` - // Estimated: `7734 + d * (2475 ±0)` - // Minimum execution time: 85_649_000 picoseconds. - Weight::from_parts(90_277_271, 7734) - // Standard Error: 333_872 - .saturating_add(Weight::from_parts(26_832_228, 0).saturating_mul(d.into())) - .saturating_add(RocksDbWeight::get().reads(7_u64)) - .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(d.into()))) - .saturating_add(RocksDbWeight::get().writes(2_u64)) + // Estimated: `7734` + // Minimum execution time: 96_129_000 picoseconds. + Weight::from_parts(100_557_626, 7734) + // Standard Error: 377_039 + .saturating_add(Weight::from_parts(24_138_173, 0).saturating_mul(d.into())) + .saturating_add(RocksDbWeight::get().reads(9_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(d.into()))) - .saturating_add(Weight::from_parts(0, 2475).saturating_mul(d.into())) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) @@ -1646,10 +1673,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `303` // Estimated: `3768` - // Minimum execution time: 56_015_000 picoseconds. - Weight::from_parts(44_756_550, 3768) + // Minimum execution time: 56_402_000 picoseconds. + Weight::from_parts(48_856_000, 3768) // Standard Error: 17 - .saturating_add(Weight::from_parts(14_377, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(14_177, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1663,8 +1690,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `458` // Estimated: `3923` - // Minimum execution time: 51_807_000 picoseconds. - Weight::from_parts(53_562_000, 3923) + // Minimum execution time: 52_285_000 picoseconds. + Weight::from_parts(53_452_000, 3923) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1682,8 +1709,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `797` // Estimated: `6737` - // Minimum execution time: 65_431_000 picoseconds. - Weight::from_parts(66_763_000, 6737) + // Minimum execution time: 64_792_000 picoseconds. + Weight::from_parts(66_793_000, 6737) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -1695,8 +1722,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `510` // Estimated: `3975` - // Minimum execution time: 54_271_000 picoseconds. - Weight::from_parts(55_618_000, 3975) + // Minimum execution time: 54_348_000 picoseconds. + Weight::from_parts(54_970_000, 3975) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1708,8 +1735,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `93` // Estimated: `3558` - // Minimum execution time: 38_990_000 picoseconds. - Weight::from_parts(39_656_000, 3558) + // Minimum execution time: 39_090_000 picoseconds. + Weight::from_parts(40_311_000, 3558) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1721,8 +1748,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 13_086_000 picoseconds. - Weight::from_parts(13_681_000, 3610) + // Minimum execution time: 13_141_000 picoseconds. + Weight::from_parts(13_843_000, 3610) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// The range of component `r` is `[0, 1600]`. @@ -1730,24 +1757,24 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_423_000 picoseconds. - Weight::from_parts(9_149_999, 0) - // Standard Error: 227 - .saturating_add(Weight::from_parts(180_894, 0).saturating_mul(r.into())) + // Minimum execution time: 7_540_000 picoseconds. + Weight::from_parts(8_693_337, 0) + // Standard Error: 204 + .saturating_add(Weight::from_parts(169_076, 0).saturating_mul(r.into())) } fn seal_caller() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 294_000 picoseconds. - Weight::from_parts(330_000, 0) + // Minimum execution time: 333_000 picoseconds. + Weight::from_parts(397_000, 0) } fn seal_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 270_000 picoseconds. - Weight::from_parts(317_000, 0) + // Minimum execution time: 321_000 picoseconds. + Weight::from_parts(347_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -1755,8 +1782,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `567` // Estimated: `4032` - // Minimum execution time: 7_773_000 picoseconds. - Weight::from_parts(8_282_000, 4032) + // Minimum execution time: 8_337_000 picoseconds. + Weight::from_parts(8_794_000, 4032) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) @@ -1765,16 +1792,16 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `403` // Estimated: `3868` - // Minimum execution time: 9_567_000 picoseconds. - Weight::from_parts(9_975_000, 3868) + // Minimum execution time: 9_365_000 picoseconds. + Weight::from_parts(9_849_000, 3868) .saturating_add(RocksDbWeight::get().reads(1_u64)) } fn own_code_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `0` + // Measured: `366` // Estimated: `0` - // Minimum execution time: 252_000 picoseconds. - Weight::from_parts(301_000, 0) + // Minimum execution time: 7_147_000 picoseconds. + Weight::from_parts(7_593_000, 0) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) @@ -1784,51 +1811,51 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `475` // Estimated: `3940` - // Minimum execution time: 13_090_000 picoseconds. - Weight::from_parts(13_527_000, 3940) + // Minimum execution time: 12_997_000 picoseconds. + Weight::from_parts(13_301_000, 3940) .saturating_add(RocksDbWeight::get().reads(2_u64)) } fn caller_is_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 337_000 picoseconds. - Weight::from_parts(375_000, 0) + // Minimum execution time: 1_035_000 picoseconds. + Weight::from_parts(1_137_000, 0) } fn caller_is_root() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 258_000 picoseconds. - Weight::from_parts(300_000, 0) + // Minimum execution time: 1_036_000 picoseconds. + Weight::from_parts(1_120_000, 0) } fn seal_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` // Minimum execution time: 308_000 picoseconds. - Weight::from_parts(352_000, 0) + Weight::from_parts(336_000, 0) } fn weight_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 687_000 picoseconds. - Weight::from_parts(776_000, 0) + // Minimum execution time: 960_000 picoseconds. + Weight::from_parts(1_043_000, 0) } fn seal_ref_time_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 247_000 picoseconds. - Weight::from_parts(278_000, 0) + // Minimum execution time: 267_000 picoseconds. + Weight::from_parts(297_000, 0) } fn seal_balance() -> Weight { // Proof Size summary in bytes: - // Measured: `540` + // Measured: `469` // Estimated: `0` - // Minimum execution time: 12_447_000 picoseconds. - Weight::from_parts(13_433_000, 0) + // Minimum execution time: 12_434_000 picoseconds. + Weight::from_parts(12_790_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -1840,8 +1867,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `791` // Estimated: `4256` - // Minimum execution time: 18_806_000 picoseconds. - Weight::from_parts(19_217_000, 4256) + // Minimum execution time: 18_486_000 picoseconds. + Weight::from_parts(19_245_000, 4256) .saturating_add(RocksDbWeight::get().reads(3_u64)) } /// Storage: `Revive::ImmutableDataOf` (r:1 w:0) @@ -1851,10 +1878,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `271 + n * (1 ±0)` // Estimated: `3736 + n * (1 ±0)` - // Minimum execution time: 5_800_000 picoseconds. - Weight::from_parts(6_657_021, 3736) - // Standard Error: 6 - .saturating_add(Weight::from_parts(595, 0).saturating_mul(n.into())) + // Minimum execution time: 6_149_000 picoseconds. + Weight::from_parts(6_874_947, 3736) + // Standard Error: 5 + .saturating_add(Weight::from_parts(563, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1865,67 +1892,67 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_057_000 picoseconds. - Weight::from_parts(2_320_795, 0) + // Minimum execution time: 1_979_000 picoseconds. + Weight::from_parts(2_235_236, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(558, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(587, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().writes(1_u64)) } fn seal_value_transferred() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 260_000 picoseconds. - Weight::from_parts(293_000, 0) + // Minimum execution time: 291_000 picoseconds. + Weight::from_parts(325_000, 0) } fn minimum_balance() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 233_000 picoseconds. - Weight::from_parts(291_000, 0) + // Minimum execution time: 1_156_000 picoseconds. + Weight::from_parts(1_260_000, 0) } fn seal_return_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 232_000 picoseconds. - Weight::from_parts(262_000, 0) + // Minimum execution time: 255_000 picoseconds. + Weight::from_parts(287_000, 0) } fn seal_call_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 234_000 picoseconds. - Weight::from_parts(273_000, 0) + // Minimum execution time: 242_000 picoseconds. + Weight::from_parts(282_000, 0) } fn seal_gas_limit() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 441_000 picoseconds. - Weight::from_parts(523_000, 0) + // Minimum execution time: 448_000 picoseconds. + Weight::from_parts(494_000, 0) } fn seal_gas_price() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 254_000 picoseconds. - Weight::from_parts(294_000, 0) + // Minimum execution time: 255_000 picoseconds. + Weight::from_parts(293_000, 0) } fn seal_base_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 229_000 picoseconds. - Weight::from_parts(269_000, 0) + // Minimum execution time: 250_000 picoseconds. + Weight::from_parts(285_000, 0) } fn seal_block_number() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 254_000 picoseconds. - Weight::from_parts(290_000, 0) + // Minimum execution time: 245_000 picoseconds. + Weight::from_parts(309_000, 0) } /// Storage: `Session::Validators` (r:1 w:0) /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -1933,70 +1960,72 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `141` // Estimated: `1626` - // Minimum execution time: 21_852_000 picoseconds. - Weight::from_parts(22_526_000, 1626) + // Minimum execution time: 21_807_000 picoseconds. + Weight::from_parts(22_212_000, 1626) .saturating_add(RocksDbWeight::get().reads(1_u64)) } + /// Storage: `Revive::BlockHash` (r:1 w:0) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `Measured`) /// Storage: `System::BlockHash` (r:1 w:0) /// Proof: `System::BlockHash` (`max_values`: None, `max_size`: Some(44), added: 2519, mode: `Measured`) fn seal_block_hash() -> Weight { // Proof Size summary in bytes: - // Measured: `30` - // Estimated: `3495` - // Minimum execution time: 3_600_000 picoseconds. - Weight::from_parts(3_830_000, 3495) - .saturating_add(RocksDbWeight::get().reads(1_u64)) + // Measured: `295` + // Estimated: `3760` + // Minimum execution time: 8_549_000 picoseconds. + Weight::from_parts(8_828_000, 3760) + .saturating_add(RocksDbWeight::get().reads(2_u64)) } fn seal_now() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 239_000 picoseconds. - Weight::from_parts(276_000, 0) + // Minimum execution time: 264_000 picoseconds. + Weight::from_parts(290_000, 0) } fn seal_weight_to_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` // Minimum execution time: 1_595_000 picoseconds. - Weight::from_parts(1_665_000, 0) + Weight::from_parts(1_732_000, 0) } /// The range of component `n` is `[0, 1048572]`. fn seal_copy_to_contract(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 402_000 picoseconds. - Weight::from_parts(496_964, 0) + // Minimum execution time: 444_000 picoseconds. + Weight::from_parts(661_839, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(239, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(238, 0).saturating_mul(n.into())) } fn seal_call_data_load() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 250_000 picoseconds. - Weight::from_parts(289_000, 0) + // Minimum execution time: 263_000 picoseconds. + Weight::from_parts(305_000, 0) } /// The range of component `n` is `[0, 1048576]`. fn seal_call_data_copy(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 230_000 picoseconds. - Weight::from_parts(255_000, 0) + // Minimum execution time: 258_000 picoseconds. + Weight::from_parts(284_000, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(151, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(150, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 131072]`. fn seal_return(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 253_000 picoseconds. - Weight::from_parts(544_296, 0) + // Minimum execution time: 275_000 picoseconds. + Weight::from_parts(557_511, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(237, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(236, 0).saturating_mul(n.into())) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -2017,17 +2046,17 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 1]`. fn seal_terminate(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `583 + r * (402 ±0)` - // Estimated: `4048 + r * (2225 ±0)` - // Minimum execution time: 16_727_000 picoseconds. - Weight::from_parts(17_739_285, 4048) - // Standard Error: 59_932 - .saturating_add(Weight::from_parts(44_553_014, 0).saturating_mul(r.into())) + // Measured: `583 + r * (368 ±0)` + // Estimated: `4048 + r * (2208 ±0)` + // Minimum execution time: 16_800_000 picoseconds. + Weight::from_parts(17_989_334, 4048) + // Standard Error: 61_844 + .saturating_add(Weight::from_parts(45_142_965, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2225).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2208).saturating_mul(r.into())) } /// The range of component `t` is `[0, 4]`. /// The range of component `n` is `[0, 416]`. @@ -2035,12 +2064,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_226_000 picoseconds. - Weight::from_parts(4_252_357, 0) - // Standard Error: 3_401 - .saturating_add(Weight::from_parts(233_040, 0).saturating_mul(t.into())) + // Minimum execution time: 4_480_000 picoseconds. + Weight::from_parts(4_551_525, 0) + // Standard Error: 3_383 + .saturating_add(Weight::from_parts(222_280, 0).saturating_mul(t.into())) // Standard Error: 37 - .saturating_add(Weight::from_parts(1_172, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_016, 0).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -2048,8 +2077,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 6_909_000 picoseconds. - Weight::from_parts(7_499_000, 648) + // Minimum execution time: 7_334_000 picoseconds. + Weight::from_parts(7_739_000, 648) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -2058,8 +2087,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 41_173_000 picoseconds. - Weight::from_parts(42_303_000, 10658) + // Minimum execution time: 41_676_000 picoseconds. + Weight::from_parts(43_124_000, 10658) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -2068,8 +2097,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 8_428_000 picoseconds. - Weight::from_parts(8_817_000, 648) + // Minimum execution time: 8_314_000 picoseconds. + Weight::from_parts(8_847_000, 648) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2079,8 +2108,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 43_627_000 picoseconds. - Weight::from_parts(44_777_000, 10658) + // Minimum execution time: 43_072_000 picoseconds. + Weight::from_parts(44_347_000, 10658) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2092,12 +2121,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + o * (1 ±0)` // Estimated: `247 + o * (1 ±0)` - // Minimum execution time: 8_934_000 picoseconds. - Weight::from_parts(9_589_880, 247) - // Standard Error: 65 - .saturating_add(Weight::from_parts(667, 0).saturating_mul(n.into())) - // Standard Error: 65 - .saturating_add(Weight::from_parts(821, 0).saturating_mul(o.into())) + // Minimum execution time: 8_670_000 picoseconds. + Weight::from_parts(9_444_232, 247) + // Standard Error: 56 + .saturating_add(Weight::from_parts(569, 0).saturating_mul(n.into())) + // Standard Error: 56 + .saturating_add(Weight::from_parts(1_223, 0).saturating_mul(o.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(o.into())) @@ -2109,10 +2138,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_527_000 picoseconds. - Weight::from_parts(9_507_817, 247) - // Standard Error: 73 - .saturating_add(Weight::from_parts(860, 0).saturating_mul(n.into())) + // Minimum execution time: 8_312_000 picoseconds. + Weight::from_parts(9_452_645, 247) + // Standard Error: 68 + .saturating_add(Weight::from_parts(941, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -2124,10 +2153,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_076_000 picoseconds. - Weight::from_parts(9_106_693, 247) - // Standard Error: 73 - .saturating_add(Weight::from_parts(1_668, 0).saturating_mul(n.into())) + // Minimum execution time: 8_084_000 picoseconds. + Weight::from_parts(9_143_251, 247) + // Standard Error: 84 + .saturating_add(Weight::from_parts(1_703, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -2138,10 +2167,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 7_571_000 picoseconds. - Weight::from_parts(8_454_639, 247) - // Standard Error: 69 - .saturating_add(Weight::from_parts(888, 0).saturating_mul(n.into())) + // Minimum execution time: 7_422_000 picoseconds. + Weight::from_parts(8_507_657, 247) + // Standard Error: 78 + .saturating_add(Weight::from_parts(863, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -2152,10 +2181,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 9_140_000 picoseconds. - Weight::from_parts(10_132_276, 247) - // Standard Error: 70 - .saturating_add(Weight::from_parts(1_866, 0).saturating_mul(n.into())) + // Minimum execution time: 8_534_000 picoseconds. + Weight::from_parts(10_112_230, 247) + // Standard Error: 88 + .saturating_add(Weight::from_parts(1_599, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -2164,36 +2193,36 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_655_000 picoseconds. - Weight::from_parts(1_744_000, 0) + // Minimum execution time: 1_569_000 picoseconds. + Weight::from_parts(1_671_000, 0) } fn set_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_987_000 picoseconds. - Weight::from_parts(2_135_000, 0) + // Minimum execution time: 1_901_000 picoseconds. + Weight::from_parts(2_108_000, 0) } fn get_transient_storage_empty() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_641_000 picoseconds. - Weight::from_parts(1_751_000, 0) + // Minimum execution time: 1_574_000 picoseconds. + Weight::from_parts(1_693_000, 0) } fn get_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_732_000 picoseconds. - Weight::from_parts(1_891_000, 0) + // Minimum execution time: 1_731_000 picoseconds. + Weight::from_parts(1_885_000, 0) } fn rollback_transient_storage() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_237_000 picoseconds. - Weight::from_parts(1_378_000, 0) + // Minimum execution time: 1_235_000 picoseconds. + Weight::from_parts(1_357_000, 0) } /// The range of component `n` is `[0, 416]`. /// The range of component `o` is `[0, 416]`. @@ -2201,50 +2230,52 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_283_000 picoseconds. - Weight::from_parts(2_636_514, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(296, 0).saturating_mul(n.into())) - // Standard Error: 19 - .saturating_add(Weight::from_parts(374, 0).saturating_mul(o.into())) + // Minimum execution time: 2_233_000 picoseconds. + Weight::from_parts(2_580_006, 0) + // Standard Error: 17 + .saturating_add(Weight::from_parts(180, 0).saturating_mul(n.into())) + // Standard Error: 17 + .saturating_add(Weight::from_parts(464, 0).saturating_mul(o.into())) } /// The range of component `n` is `[0, 416]`. fn seal_clear_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_171_000 picoseconds. - Weight::from_parts(2_555_844, 0) - // Standard Error: 23 - .saturating_add(Weight::from_parts(468, 0).saturating_mul(n.into())) + // Minimum execution time: 1_996_000 picoseconds. + Weight::from_parts(2_490_053, 0) + // Standard Error: 25 + .saturating_add(Weight::from_parts(346, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_get_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_985_000 picoseconds. - Weight::from_parts(2_277_401, 0) - // Standard Error: 21 - .saturating_add(Weight::from_parts(394, 0).saturating_mul(n.into())) + // Minimum execution time: 1_958_000 picoseconds. + Weight::from_parts(2_167_207, 0) + // Standard Error: 22 + .saturating_add(Weight::from_parts(455, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_contains_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_784_000 picoseconds. - Weight::from_parts(2_034_472, 0) - // Standard Error: 16 - .saturating_add(Weight::from_parts(214, 0).saturating_mul(n.into())) + // Minimum execution time: 1_771_000 picoseconds. + Weight::from_parts(2_055_166, 0) + // Standard Error: 17 + .saturating_add(Weight::from_parts(194, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. - fn seal_take_transient_storage(_n: u32, ) -> Weight { + fn seal_take_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_653_000 picoseconds. - Weight::from_parts(2_929_498, 0) + // Minimum execution time: 2_600_000 picoseconds. + Weight::from_parts(2_869_587, 0) + // Standard Error: 22 + .saturating_add(Weight::from_parts(45, 0).saturating_mul(n.into())) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -2261,16 +2292,16 @@ impl WeightInfo for () { /// The range of component `i` is `[0, 1048576]`. fn seal_call(t: u32, d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1925` - // Estimated: `5390` - // Minimum execution time: 88_292_000 picoseconds. - Weight::from_parts(67_934_136, 5390) - // Standard Error: 161_519 - .saturating_add(Weight::from_parts(19_069_368, 0).saturating_mul(t.into())) - // Standard Error: 161_519 - .saturating_add(Weight::from_parts(25_783_515, 0).saturating_mul(d.into())) + // Measured: `1982` + // Estimated: `5447` + // Minimum execution time: 89_339_000 picoseconds. + Weight::from_parts(71_194_785, 5447) + // Standard Error: 177_775 + .saturating_add(Weight::from_parts(18_151_202, 0).saturating_mul(t.into())) + // Standard Error: 177_775 + .saturating_add(Weight::from_parts(25_131_334, 0).saturating_mul(d.into())) // Standard Error: 0 - .saturating_add(Weight::from_parts(4, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(3, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(t.into()))) @@ -2285,12 +2316,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `366 + d * (212 ±0)` // Estimated: `2021 + d * (2021 ±0)` - // Minimum execution time: 24_082_000 picoseconds. - Weight::from_parts(11_635_002, 2021) - // Standard Error: 32_873 - .saturating_add(Weight::from_parts(13_461_671, 0).saturating_mul(d.into())) + // Minimum execution time: 24_467_000 picoseconds. + Weight::from_parts(12_119_417, 2021) + // Standard Error: 40_827 + .saturating_add(Weight::from_parts(13_748_197, 0).saturating_mul(d.into())) // Standard Error: 0 - .saturating_add(Weight::from_parts(395, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(394, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(d.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(d.into()))) .saturating_add(Weight::from_parts(0, 2021).saturating_mul(d.into())) @@ -2305,8 +2336,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1363` // Estimated: `4828` - // Minimum execution time: 31_965_000 picoseconds. - Weight::from_parts(33_059_000, 4828) + // Minimum execution time: 32_504_000 picoseconds. + Weight::from_parts(33_826_000, 4828) .saturating_add(RocksDbWeight::get().reads(3_u64)) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) @@ -2322,38 +2353,36 @@ impl WeightInfo for () { /// The range of component `i` is `[0, 131072]`. fn seal_instantiate(t: u32, d: u32, i: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `1413` - // Estimated: `4857 + d * (28 ±1) + t * (28 ±1)` - // Minimum execution time: 150_124_000 picoseconds. - Weight::from_parts(100_922_263, 4857) - // Standard Error: 553_691 - .saturating_add(Weight::from_parts(21_824_333, 0).saturating_mul(t.into())) - // Standard Error: 553_691 - .saturating_add(Weight::from_parts(30_090_103, 0).saturating_mul(d.into())) + // Measured: `1394` + // Estimated: `4860` + // Minimum execution time: 147_209_000 picoseconds. + Weight::from_parts(104_165_168, 4860) + // Standard Error: 533_910 + .saturating_add(Weight::from_parts(18_524_068, 0).saturating_mul(t.into())) + // Standard Error: 533_910 + .saturating_add(Weight::from_parts(30_198_831, 0).saturating_mul(d.into())) // Standard Error: 6 - .saturating_add(Weight::from_parts(4_031, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(4_029, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) - .saturating_add(Weight::from_parts(0, 28).saturating_mul(d.into())) - .saturating_add(Weight::from_parts(0, 28).saturating_mul(t.into())) } /// The range of component `n` is `[0, 1048576]`. fn sha2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_198_000 picoseconds. - Weight::from_parts(5_902_477, 0) + // Minimum execution time: 1_239_000 picoseconds. + Weight::from_parts(13_350_242, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_301, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_285, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn identity(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 710_000 picoseconds. - Weight::from_parts(583_657, 0) + // Minimum execution time: 740_000 picoseconds. + Weight::from_parts(894_530, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(148, 0).saturating_mul(n.into())) } @@ -2363,97 +2392,97 @@ impl WeightInfo for () { // Measured: `0` // Estimated: `0` // Minimum execution time: 1_145_000 picoseconds. - Weight::from_parts(5_218_490, 0) - // Standard Error: 2 - .saturating_add(Weight::from_parts(3_770, 0).saturating_mul(n.into())) + Weight::from_parts(2_106_751, 0) + // Standard Error: 1 + .saturating_add(Weight::from_parts(3_789, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_keccak_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_133_000 picoseconds. - Weight::from_parts(12_018_626, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(3_591, 0).saturating_mul(n.into())) + // Minimum execution time: 1_140_000 picoseconds. + Weight::from_parts(12_704_090, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(3_580, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn hash_blake2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_594_000 picoseconds. - Weight::from_parts(16_080_940, 0) + // Minimum execution time: 1_577_000 picoseconds. + Weight::from_parts(11_102_200, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_437, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_447, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn hash_blake2_128(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_493_000 picoseconds. - Weight::from_parts(12_215_603, 0) + // Minimum execution time: 1_643_000 picoseconds. + Weight::from_parts(11_977_668, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_440, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_451, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048321]`. fn seal_sr25519_verify(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 42_270_000 picoseconds. - Weight::from_parts(93_835_987, 0) - // Standard Error: 4 - .saturating_add(Weight::from_parts(5_026, 0).saturating_mul(n.into())) + // Minimum execution time: 42_844_000 picoseconds. + Weight::from_parts(95_143_512, 0) + // Standard Error: 5 + .saturating_add(Weight::from_parts(5_028, 0).saturating_mul(n.into())) } fn ecdsa_recover() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 45_951_000 picoseconds. - Weight::from_parts(46_894_000, 0) + // Minimum execution time: 46_183_000 picoseconds. + Weight::from_parts(47_222_000, 0) } fn bn128_add() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 14_272_000 picoseconds. - Weight::from_parts(15_204_000, 0) + // Minimum execution time: 14_619_000 picoseconds. + Weight::from_parts(15_727_000, 0) } fn bn128_mul() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 980_350_000 picoseconds. - Weight::from_parts(988_695_000, 0) + // Minimum execution time: 980_244_000 picoseconds. + Weight::from_parts(992_300_000, 0) } /// The range of component `n` is `[0, 20]`. fn bn128_pairing(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 760_000 picoseconds. - Weight::from_parts(4_873_448_313, 0) - // Standard Error: 10_617_668 - .saturating_add(Weight::from_parts(5_964_183_373, 0).saturating_mul(n.into())) + // Minimum execution time: 829_000 picoseconds. + Weight::from_parts(5_035_974_897, 0) + // Standard Error: 11_531_145 + .saturating_add(Weight::from_parts(6_051_195_715, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1200]`. fn blake2f(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 914_000 picoseconds. - Weight::from_parts(1_152_510, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(28_870, 0).saturating_mul(n.into())) + // Minimum execution time: 936_000 picoseconds. + Weight::from_parts(1_212_971, 0) + // Standard Error: 15 + .saturating_add(Weight::from_parts(28_732, 0).saturating_mul(n.into())) } fn seal_ecdsa_to_eth_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_862_000 picoseconds. - Weight::from_parts(13_004_000, 0) + // Minimum execution time: 12_938_000 picoseconds. + Weight::from_parts(13_110_000, 0) } /// Storage: `Revive::CodeInfoOf` (r:2 w:2) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) @@ -2466,47 +2495,47 @@ impl WeightInfo for () { /// The range of component `r` is `[0, 1]`. fn seal_set_code_hash(r: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `391 + r * (468 ±0)` - // Estimated: `6331 + r * (2162 ±0)` - // Minimum execution time: 14_987_000 picoseconds. - Weight::from_parts(15_935_167, 6331) - // Standard Error: 52_524 - .saturating_add(Weight::from_parts(45_530_232, 0).saturating_mul(r.into())) + // Measured: `391 + r * (401 ±0)` + // Estimated: `6331 + r * (2129 ±0)` + // Minimum execution time: 14_998_000 picoseconds. + Weight::from_parts(16_168_812, 6331) + // Standard Error: 52_358 + .saturating_add(Weight::from_parts(44_835_387, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(RocksDbWeight::get().writes((3_u64).saturating_mul(r.into()))) - .saturating_add(Weight::from_parts(0, 2162).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2129).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn evm_opcode(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_206_000 picoseconds. - Weight::from_parts(1_895_352, 0) + // Minimum execution time: 1_228_000 picoseconds. + Weight::from_parts(1_828_284, 0) // Standard Error: 19 - .saturating_add(Weight::from_parts(6_177, 0).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(6_919, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_772_000 picoseconds. - Weight::from_parts(53_405_104, 0) - // Standard Error: 346 - .saturating_add(Weight::from_parts(125_622, 0).saturating_mul(r.into())) + // Minimum execution time: 12_500_000 picoseconds. + Weight::from_parts(64_160_653, 0) + // Standard Error: 284 + .saturating_add(Weight::from_parts(130_625, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr_empty_loop(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_147_000 picoseconds. - Weight::from_parts(1_883_710, 0) - // Standard Error: 47 - .saturating_add(Weight::from_parts(71_984, 0).saturating_mul(r.into())) + // Minimum execution time: 3_240_000 picoseconds. + Weight::from_parts(2_791_448, 0) + // Standard Error: 61 + .saturating_add(Weight::from_parts(71_969, 0).saturating_mul(r.into())) } /// Storage: `Revive::PristineCode` (r:1 w:0) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -2515,10 +2544,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `457 + n * (1 ±0)` // Estimated: `3922 + n * (1 ±0)` - // Minimum execution time: 14_211_000 picoseconds. - Weight::from_parts(13_786_057, 3922) - // Standard Error: 14 - .saturating_add(Weight::from_parts(1_062, 0).saturating_mul(n.into())) + // Minimum execution time: 14_222_000 picoseconds. + Weight::from_parts(14_034_006, 3922) + // Standard Error: 6 + .saturating_add(Weight::from_parts(852, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -2530,8 +2559,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `316` // Estimated: `6256` - // Minimum execution time: 11_898_000 picoseconds. - Weight::from_parts(12_772_000, 6256) + // Minimum execution time: 12_029_000 picoseconds. + Weight::from_parts(12_717_000, 6256) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -2545,15 +2574,15 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `439` // Estimated: `6794` - // Minimum execution time: 62_964_000 picoseconds. - Weight::from_parts(64_865_000, 6794) + // Minimum execution time: 63_362_000 picoseconds. + Weight::from_parts(65_057_000, 6794) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } /// Storage: `Revive::BlockHash` (r:1 w:1) - /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::InflightTransactions` (r:1 w:1) - /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) @@ -2563,35 +2592,45 @@ impl WeightInfo for () { /// The range of component `n` is `[0, 200]`. fn on_finalize_per_transaction(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3685 + n * (60 ±0)` - // Estimated: `6815 + n * (62 ±0)` - // Minimum execution time: 27_174_000 picoseconds. - Weight::from_parts(63_904_853, 6815) - // Standard Error: 3_877 - .saturating_add(Weight::from_parts(377_767, 0).saturating_mul(n.into())) + // Measured: `2897 + n * (65 ±0)` + // Estimated: `6196 + n * (67 ±0)` + // Minimum execution time: 26_280_000 picoseconds. + Weight::from_parts(54_943_766, 6196) + // Standard Error: 4_467 + .saturating_add(Weight::from_parts(405_154, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 62).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 67).saturating_mul(n.into())) } + /// Storage: `Revive::BlockHash` (r:1 w:1) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Timestamp::Now` (r:1 w:0) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) + /// Storage: `Revive::EthereumBlock` (r:0 w:1) + /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) + /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `d` is `[0, 1000]`. fn on_finalize_per_transaction_data(d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `3685 + d * (2 ±0)` - // Estimated: `6815 + d * (2 ±0)` - // Minimum execution time: 27_174_000 picoseconds. - Weight::from_parts(63_904_853, 6815) - // Standard Error: 776 - .saturating_add(Weight::from_parts(8_806, 0).saturating_mul(d.into())) + // Measured: `3153 + d * (3 ±0)` + // Estimated: `6612 + d * (3 ±0)` + // Minimum execution time: 56_248_000 picoseconds. + Weight::from_parts(58_624_974, 6612) + // Standard Error: 170 + .saturating_add(Weight::from_parts(12_979, 0).saturating_mul(d.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 2).saturating_mul(d.into())) - .saturating_add(Weight::from_parts(0, 62).saturating_mul(d.into())) - .saturating_add(Weight::from_parts(0, 2).saturating_mul(d.into())) + .saturating_add(Weight::from_parts(0, 3).saturating_mul(d.into())) } + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// Storage: `Revive::BlockHash` (r:1 w:1) - /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(72), added: 2547, mode: `Measured`) - /// Storage: `Revive::InflightTransactions` (r:1 w:1) - /// Proof: `Revive::InflightTransactions` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Timestamp::Now` (r:1 w:0) /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) @@ -2599,19 +2638,23 @@ impl WeightInfo for () { /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `e` is `[0, 100]`. - fn on_finalize_per_event(e: u32, ) -> Weight { - // Proof Size summary in bytes: - // Measured: `631 + e * (56 ±0)` - // Estimated: `2423 + e * (70 ±1)` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(13_249_502, 2423) - // Standard Error: 6_871 - .saturating_add(Weight::from_parts(1_198_945, 0).saturating_mul(e.into())) - .saturating_add(RocksDbWeight::get().reads(3_u64)) + fn on_finalize_per_event(_e: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1377` + // Estimated: `4842` + // Minimum execution time: 43_263_000 picoseconds. + Weight::from_parts(45_551_022, 4842) + .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 70).saturating_mul(e.into())) } - + /// Storage: `System::Account` (r:1 w:0) + /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) + /// Storage: `Revive::BlockHash` (r:1 w:1) + /// Proof: `Revive::BlockHash` (`max_values`: None, `max_size`: Some(64), added: 2539, mode: `Measured`) + /// Storage: `Revive::EthBlockBuilderIR` (r:1 w:1) + /// Proof: `Revive::EthBlockBuilderIR` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Timestamp::Now` (r:1 w:0) + /// Proof: `Timestamp::Now` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) /// Storage: `Revive::EthereumBlock` (r:0 w:1) /// Proof: `Revive::EthereumBlock` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) @@ -2619,14 +2662,13 @@ impl WeightInfo for () { /// The range of component `d` is `[0, 16384]`. fn on_finalize_per_event_data(d: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `631 + d * (1 ±0)` - // Estimated: `2423 + d * (1 ±0)` - // Minimum execution time: 20_000_000 picoseconds. - Weight::from_parts(13_249_502, 2423) - // Standard Error: 42 - .saturating_add(Weight::from_parts(3_336, 0).saturating_mul(d.into())) - .saturating_add(RocksDbWeight::get().reads(3_u64)) + // Measured: `1377` + // Estimated: `4842` + // Minimum execution time: 43_003_000 picoseconds. + Weight::from_parts(45_119_285, 4842) + // Standard Error: 10 + .saturating_add(Weight::from_parts(44, 0).saturating_mul(d.into())) + .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) - .saturating_add(Weight::from_parts(0, 1).saturating_mul(d.into())) } } From c9d7ae49046db78c57e1f43e4a27afb8e24a5260 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 24 Sep 2025 15:28:44 +0000 Subject: [PATCH 192/273] revive: Efficiently store first tx/receipt into a dedicated object Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 113 +++++++++++-------- substrate/frame/revive/src/lib.rs | 31 ++++- 2 files changed, 93 insertions(+), 51 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 911ca881e316b..6b23a2b6ae5bf 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -163,7 +163,7 @@ pub struct IncrementalHashBuilder { /// The intermediate representation of the [`IncrementalHashBuilder`] that can be placed into the /// pallets storage. This contains the minimum amount of data that is needed to serialize /// and deserialize the incremental hash builder. -#[derive(Encode, Decode, scale_info::TypeInfo, Clone, PartialEq, Eq, Debug)] +#[derive(Encode, Decode, scale_info::TypeInfo, Clone, PartialEq, Eq, Debug, Default)] pub struct IncrementalHashBuilderIR { /// The nibbles of the builder. pub key: Vec, @@ -185,17 +185,14 @@ pub struct IncrementalHashBuilderIR { pub stored_in_database: bool, /// Current RLP buffer. pub rlp_buf: Vec, - /// The index of the current value. pub index: u64, - /// RLP encoded value. - pub first_value: Option>, } impl IncrementalHashBuilder { /// Construct the hash builder from the first value. - pub fn new(first_value: Vec) -> Self { - Self { hash_builder: HashBuilder::default(), index: 1, first_value: Some(first_value) } + pub fn new() -> Self { + Self { hash_builder: HashBuilder::default(), index: 1, first_value: None } } /// Converts the intermediate representation back into a builder. @@ -240,11 +237,7 @@ impl IncrementalHashBuilder { rlp_buf: serialized.rlp_buf, }; - IncrementalHashBuilder { - hash_builder, - index: serialized.index, - first_value: serialized.first_value, - } + IncrementalHashBuilder { hash_builder, index: serialized.index, first_value: None } } /// Converts the builder into an intermediate representation. @@ -265,11 +258,12 @@ impl IncrementalHashBuilder { stored_in_database: self.hash_builder.stored_in_database, rlp_buf: self.hash_builder.rlp_buf, index: self.index, - first_value: self.first_value, } } /// Add a new value to the hash builder. + /// + /// The value is returned if it should be preserved until a later time. pub fn add_value(&mut self, value: Vec) { let rlp_index = rlp::encode_fixed_size(&self.index); self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &value); @@ -287,6 +281,16 @@ impl IncrementalHashBuilder { self.index = self.index.saturating_add(1); } + /// Load the first value from storage. + pub fn load_first_value(&mut self, value: Vec) { + self.first_value = Some(value); + } + + /// Check if we should load the first value from storage. + pub fn should_load_first_value(&self) -> bool { + self.index == 0x7f + } + /// Build the trie root hash. pub fn finish(&mut self) -> H256 { // We have less than 0x7f items to the trie. Therefore, the @@ -470,8 +474,8 @@ const BLOOM_SIZE_BYTES: usize = 256; /// The intermediate representation of the Ethereum block builder. #[derive(Encode, Decode, TypeInfo)] pub struct EthereumBlockBuilderIR { - transaction_root_builder: Option, - receipts_root_builder: Option, + transaction_root_builder: IncrementalHashBuilderIR, + receipts_root_builder: IncrementalHashBuilderIR, gas_used: U256, pub(crate) tx_hashes: Vec, @@ -483,8 +487,8 @@ pub struct EthereumBlockBuilderIR { impl Default for EthereumBlockBuilderIR { fn default() -> Self { Self { - transaction_root_builder: None, - receipts_root_builder: None, + transaction_root_builder: IncrementalHashBuilderIR::default(), + receipts_root_builder: IncrementalHashBuilderIR::default(), gas_used: U256::zero(), tx_hashes: Vec::new(), logs_bloom: [0; BLOOM_SIZE_BYTES], @@ -495,8 +499,8 @@ impl Default for EthereumBlockBuilderIR { /// Ethereum block builder. pub struct EthereumBlockBuilder { - pub(crate) transaction_root_builder: Option, - pub(crate) receipts_root_builder: Option, + pub(crate) transaction_root_builder: IncrementalHashBuilder, + pub(crate) receipts_root_builder: IncrementalHashBuilder, gas_used: U256, pub(crate) tx_hashes: Vec, @@ -507,10 +511,10 @@ pub struct EthereumBlockBuilder { impl EthereumBlockBuilder { /// Constructs a new [`EthereumBlockBuilder`]. - pub const fn new() -> Self { + pub fn new() -> Self { Self { - transaction_root_builder: None, - receipts_root_builder: None, + transaction_root_builder: IncrementalHashBuilder::new(), + receipts_root_builder: IncrementalHashBuilder::new(), gas_used: U256::zero(), tx_hashes: Vec::new(), logs_bloom: LogsBloom::new(), @@ -521,8 +525,8 @@ impl EthereumBlockBuilder { /// Converts the builder into an intermediate representation. pub fn to_ir(self) -> EthereumBlockBuilderIR { EthereumBlockBuilderIR { - transaction_root_builder: self.transaction_root_builder.map(|b| b.to_ir()), - receipts_root_builder: self.receipts_root_builder.map(|b| b.to_ir()), + transaction_root_builder: self.transaction_root_builder.to_ir(), + receipts_root_builder: self.receipts_root_builder.to_ir(), gas_used: self.gas_used, tx_hashes: self.tx_hashes, logs_bloom: self.logs_bloom.bloom, @@ -533,12 +537,8 @@ impl EthereumBlockBuilder { /// Converts the intermediate representation back into a builder. pub fn from_ir(ir: EthereumBlockBuilderIR) -> Self { Self { - transaction_root_builder: ir - .transaction_root_builder - .map(|b| IncrementalHashBuilder::from_ir(b)), - receipts_root_builder: ir - .receipts_root_builder - .map(|b| IncrementalHashBuilder::from_ir(b)), + transaction_root_builder: IncrementalHashBuilder::from_ir(ir.transaction_root_builder), + receipts_root_builder: IncrementalHashBuilder::from_ir(ir.receipts_root_builder), gas_used: ir.gas_used, tx_hashes: ir.tx_hashes, logs_bloom: LogsBloom { bloom: ir.logs_bloom }, @@ -551,7 +551,31 @@ impl EthereumBlockBuilder { *self = Self::new(); } + /// Check if the first transaction and receipt should be loaded from storage. + /// + /// This returns true if the index of the current value is 0x7f. + pub fn should_load_first_values(&self) -> bool { + self.transaction_root_builder.should_load_first_value() || + self.receipts_root_builder.should_load_first_value() + } + + /// Loads the first values from storage. + /// + /// This is only needed if `should_load_first_values` returns true. + /// + /// The values are expected to be identical to the first transaction and receipt and + /// are returned by `Self::process_transaction`. + pub fn load_first_values(&mut self, values: Option<(Vec, Vec)>) { + if let Some((tx_encoded, receipt_encoded)) = values { + self.transaction_root_builder.load_first_value(tx_encoded); + self.receipts_root_builder.load_first_value(receipt_encoded); + } + } + /// Process a single transaction at a time. + /// + /// Returns the first transaction and receipt to be stored in the pallet storage. + /// Otherwise, returns None. pub fn process_transaction( &mut self, transaction_encoded: Vec, @@ -559,13 +583,12 @@ impl EthereumBlockBuilder { gas_used: Weight, encoded_logs: Vec, receipt_bloom: LogsBloom, - ) { + ) -> Option<(Vec, Vec)> { let tx_hash = H256(keccak_256(&transaction_encoded)); self.tx_hashes.push(tx_hash); // Update the transaction trie. let transaction_type = Self::extract_transaction_type(transaction_encoded.as_slice()); - Self::add_builder_value(&mut self.transaction_root_builder, transaction_encoded); // Update gas and logs bloom. self.gas_used = self.gas_used.saturating_add(gas_used.ref_time().into()); @@ -579,9 +602,17 @@ impl EthereumBlockBuilder { self.gas_used.as_u64(), transaction_type, ); - Self::add_builder_value(&mut self.receipts_root_builder, encoded_receipt); self.gas_info.push(ReceiptGasInfo { gas_used: gas_used.ref_time().into() }); + + // The first transaction and receipt are returned to be stored in the pallet storage. + if self.tx_hashes.len() == 1 { + Some((transaction_encoded, encoded_receipt)) + } else { + self.transaction_root_builder.add_value(transaction_encoded); + self.receipts_root_builder.add_value(encoded_receipt); + None + } } /// Build the ethereum block from provided data. @@ -593,8 +624,8 @@ impl EthereumBlockBuilder { block_author: H160, gas_limit: U256, ) -> (Block, Vec) { - let transactions_root = Self::compute_trie_root(&mut self.transaction_root_builder); - let receipts_root = Self::compute_trie_root(&mut self.receipts_root_builder); + let transactions_root = self.transaction_root_builder.finish(); + let receipts_root = self.receipts_root_builder.finish(); let tx_hashes = core::mem::replace(&mut self.tx_hashes, Vec::new()); let gas_info = core::mem::replace(&mut self.gas_info, Vec::new()); @@ -624,20 +655,6 @@ impl EthereumBlockBuilder { (block, gas_info) } - fn compute_trie_root(builder: &mut Option) -> H256 { - match builder { - Some(builder) => builder.finish(), - None => HashBuilder::default().root().0.into(), - } - } - - fn add_builder_value(builder: &mut Option, value: Vec) { - match builder { - Some(builder) => builder.add_value(value), - None => *builder = Some(IncrementalHashBuilder::new(value)), - } - } - fn extract_transaction_type(transaction_encoded: &[u8]) -> Vec { // The transaction type is the first byte from the encoded transaction, // when the transaction is not legacy. For legacy transactions, there's diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 182c86fc006c2..9ec45681a0cd5 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -577,6 +577,15 @@ pub mod pallet { pub(crate) type EthBlockBuilderIR = StorageValue<_, EthereumBlockBuilderIR, ValueQuery>; + /// The first transaction and receipt of the ethereum block. + /// + /// These values are moved out of the `EthBlockBuilderIR` to avoid serializing and + /// deserializing them on every transaction. Instead, they are loaded when needed. + #[pallet::storage] + #[pallet::unbounded] + pub(crate) type EthBlockBuilderFirstValues = + StorageValue<_, Option<(Vec, Vec)>, ValueQuery>; + pub mod genesis { use super::*; use crate::evm::Bytes32; @@ -748,7 +757,12 @@ pub mod pallet { let block_builder_ir = EthBlockBuilderIR::::get(); EthBlockBuilderIR::::kill(); - let (block, receipt_data) = EthereumBlockBuilder::from_ir(block_builder_ir).build( + // Load the first values if not already loaded. + let mut ethereum_block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); + let maybe_first_values = EthBlockBuilderFirstValues::::take(); + ethereum_block_builder.load_first_values(maybe_first_values); + + let (block, receipt_data) = ethereum_block_builder.build( eth_block_num, parent_hash, T::Time::now().into(), @@ -1987,13 +2001,24 @@ impl Pallet { let block_builder_ir = EthBlockBuilderIR::::get(); let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); - block_builder.process_transaction( + // The first transaction and receipt are loaded if we are processing the + // transaction index 0x7f. This efficiently preserves the first values without + // serializing / deserializing them on every transaction. + if block_builder.should_load_first_values() { + let values = EthBlockBuilderFirstValues::::take(); + block_builder.load_first_values(values); + } + + if let Some((tx, receipt)) = block_builder.process_transaction( transaction_encoded, success, gas_used, encoded_logs, bloom, - ); + ) { + // Preserve the first values into storage. + EthBlockBuilderFirstValues::::put(Some((tx, receipt))); + } EthBlockBuilderIR::::put(block_builder.to_ir()); } From 935857135da3068b95f572349dba7e75a2929ca0 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 24 Sep 2025 15:44:39 +0000 Subject: [PATCH 193/273] revive/tests: Adjust testing to the new API Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 35 +++++++++++++++---- .../frame/revive/src/tests/block_hash.rs | 17 +++++---- 2 files changed, 39 insertions(+), 13 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 6b23a2b6ae5bf..1aaeb7813684e 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -735,13 +735,21 @@ mod test { let block_hash: H256 = Block::compute_trie_root(&rlp_values).0.into(); let manual_hash = manual_trie_root_compute(rlp_values.clone()); - let mut builder = IncrementalHashBuilder::new(rlp_values[0].clone()); + let mut first_value = Some(rlp_values[0].clone()); + let mut builder = IncrementalHashBuilder::new(); for rlp_value in rlp_values.iter().skip(1) { + if builder.should_load_first_value() { + let value = first_value.take().expect("First value must be present; qed"); + builder.load_first_value(value); + } builder.add_value(rlp_value.clone()); let ir_builder = builder.to_ir(); builder = IncrementalHashBuilder::from_ir(ir_builder); } + if let Some(value) = first_value.take() { + builder.load_first_value(value); + } let incremental_hash = builder.finish(); assert_eq!(block_hash, manual_hash); @@ -814,6 +822,7 @@ mod test { }) .collect(); + let mut first_values = None; // Build the ethereum block incrementally. let mut incremental_block = EthereumBlockBuilder::new(); for (signed, logs, success, gas_used) in transaction_details { @@ -826,23 +835,29 @@ mod test { accumulate_receipt.add_log(address, data, topics); } - incremental_block.process_transaction( + if incremental_block.should_load_first_values() { + incremental_block.load_first_values(first_values.take()); + } + + if let Some(values) = incremental_block.process_transaction( signed, success, gas_used.into(), accumulate_receipt.encoding, accumulate_receipt.bloom, - ); + ) { + first_values = Some(values); + } let ir = incremental_block.to_ir(); incremental_block = EthereumBlockBuilder::from_ir(ir); - - println!(" Otherwise size {:?}", log_size); + println!(" Log size {:?}", log_size); } // The block hash would differ here because we don't take into account // the ommers and other fields from the substrate perspective. // However, the state roots must be identical. + incremental_block.load_first_values(first_values.take()); let built_block = incremental_block .build( block.number, @@ -869,10 +884,18 @@ mod test { } println!("Total size used by transactions: {:?}", total_size); - let mut builder = IncrementalHashBuilder::new(encoded_tx[0].clone()); + let mut first_value = Some(encoded_tx[0].clone()); + let mut builder = IncrementalHashBuilder::new(); for tx in encoded_tx.iter().skip(1) { + if builder.should_load_first_value() { + let value = first_value.take().expect("First value must be present; qed"); + builder.load_first_value(value); + } builder.add_value(tx.clone()) } + if let Some(value) = first_value.take() { + builder.load_first_value(value); + } let incremental_hash = builder.finish(); println!("Incremental hash: {:?}", incremental_hash); diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 34b794ccd1061..e69b9061833cf 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -85,8 +85,9 @@ fn transactions_are_captured() { let expected_tx_root = Block::compute_trie_root(&expected_payloads); // Double check the trie root hash. - let builder = EthereumBlockBuilder::from_ir(block_builder); - let tx_root = builder.transaction_root_builder.unwrap().finish(); + let mut builder = EthereumBlockBuilder::from_ir(block_builder); + builder.transaction_root_builder.load_first_value(expected_payloads[0].clone()); + let tx_root = builder.transaction_root_builder.finish(); assert_eq!(tx_root, expected_tx_root.0.into()); Contracts::on_finalize(0); @@ -141,7 +142,7 @@ fn events_are_captured() { TransactionSigned::Transaction4844Signed(Default::default()).signed_payload(), ]; let expected_tx_root = Block::compute_trie_root(&expected_payloads); - const EXPECTED_GAS: u64 = 7203594; + const EXPECTED_GAS: u64 = 7735804; let logs = vec![AlloyLog::new_unchecked( contract.0.into(), @@ -158,18 +159,20 @@ fn events_are_captured() { // Receipt starts with encoded tx type which is 3 for 4844 transactions. let mut encoded_receipt = vec![3]; receipt.rlp_encode_with_bloom(&receipt_bloom, &mut encoded_receipt); - let expected_receipt_root = Block::compute_trie_root(&[encoded_receipt]); + let expected_receipt_root = Block::compute_trie_root(&[encoded_receipt.clone()]); let block_builder = EthBlockBuilderIR::::get(); // 1 transaction captured. assert_eq!(block_builder.gas_info.len(), 1); assert_eq!(block_builder.gas_info, vec![ReceiptGasInfo { gas_used: EXPECTED_GAS.into() }]); - let builder = EthereumBlockBuilder::from_ir(block_builder); - let tx_root = builder.transaction_root_builder.unwrap().finish(); + let mut builder = EthereumBlockBuilder::from_ir(block_builder); + builder.transaction_root_builder.load_first_value(expected_payloads[0].clone()); + let tx_root = builder.transaction_root_builder.finish(); assert_eq!(tx_root, expected_tx_root.0.into()); - let receipt_root = builder.receipts_root_builder.unwrap().finish(); + builder.receipts_root_builder.load_first_value(encoded_receipt.clone()); + let receipt_root = builder.receipts_root_builder.finish(); assert_eq!(receipt_root, expected_receipt_root.0.into()); Contracts::on_finalize(0); From 69b04b966628d6bbedeaa552128b6b0422259b1a Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Wed, 24 Sep 2025 17:51:25 +0200 Subject: [PATCH 194/273] revive/rpc: regenerate revive_chain.metadata --- .../frame/revive/rpc/revive_chain.metadata | Bin 702100 -> 702973 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 80b246edc77f5d41854899b36f2032c109eb4374..dd78ba767f4829b99013e4ad201aec394e21197b 100644 GIT binary patch delta 16559 zcmb_@3wV^p)$lvByK{MWH@gX0a)%8jgg^obCXisb1PmG_at#*|!jdeql4Ns5qH>8y z5&NOw8jh$awB@U)6w%@<6@;j%#!59+soxsiSU7|CkgR78V#`|g^_4uTOuhUBpNl?Hc&! zUu>yh@3nc!JR_^uCM{$MjQh+s*Na#JjqiB9fktn0BO+Q6Z165`4pdhKYH#*7t@Ojt z&ukv6w;>obHh*R-B+(t5xUbC}m!px`)xPRxf2V;R6cSPZ_AhLksguBOzp%v-ukoiZ zYzxSGt%Q`WP>8$@{uPzM=GrE2Fq~Hd$3kD_N`IsGHh)9V>s!&}Z}8&(nn10uDKY?W zwXd>vH3Vt`O@Y<^il&x2f1|s6 zZ2mY+vuYlQjdTsukv`9lFc^K1OYoQSd*bAo83iIOt4hr?$PWBrKticT($(L$Yqa`boeHh z73Zc4Yy2F4V{>(ru+Afy!dgOd1rcKADyx<$kfs`rw!y09;y2N-C{!FD4|k7cSCDLY zYAj2~)qgGNHQ4OU7 zRYN!vRt@I2K_W$_YKXv^ssSrrT+CL`G67v*@hepSPGkN}td_*h7G%WyV3U82zcScR zg~HXOc(v5{;}RA_$ZYuAQZ|E@3)tSr6X4rEE@5c}yNN6^UZ`MKQ?lr}mAY?7P z(ab(4t;Wl%*=b5!MJQ!lA{=dD!^kH1poJ|YTcGeZR))#u+gK*q3I}gv|3TVd((P<) z=2m2knRQJl7*=GA?Z^}E8-lgSjhcIIu*PrIwud=lyRq|jHkdftFl!2-RoiL2a0k1S zkzK~5jqG_w_P}rMVUr;L9@a+o82FtPMfMtBKFGLE_C5DgMr@8f=44BGDcAOb^Kq6D zyAMm~exczXlA)NNB-%l^_HmX^4#B#|*^RVaz#krGfk-+DHtu70(?bG^hY=49dx8z4 zhXqW30t=4{cb(+Xx;l?M} za!B0IV(AG1Ir~|wszLNw@cw>wohrmWM#G|CuxDtO0OtYr0vbZt)?-V9za3zsaQPFT zW`9Df2tBzX9ug0t5Oo++4zfxTdr>KBM6hPw!QPK1{Up z0=i#hi}EfAa`m*}twkA)O-fT|c^jJ=(DGdnRtFX--JaOR)A*QCf|! zw#wHOY-kC?XikN7&a7-f3c~zYw7?&@d1ccijUeoril!h+=nvJR*=h7QpxOC>N-a7( z)<8Qt6&_gE&JwAof2{CoJG+u3z}M}ph@?QlOKjv7KTH>r7O1JKuBi3Z_%8_9^b%W2 zQsLv5*rd!l{YdEm!!}{a+u~|DXt-Ai_IoE)2w0Ok^#Ua3dE|F z%7J2CCNC4~GK52(FN61AW64nd8jC}vSMwUnuq=`UPIsc&d-^pNZCQf3S+BD=t3}gh zE8sPQ$|cE}->_nC;AZq1nj278l*28ZYyq;mi3}T;qq}2%V^iM`H1NSISV8^ac?=Ik zW?eI2A^~&OIc}{+%?NY##@gSoUlK>Ns&HuWUaduj+J`2VkjJ+w+~Yj`-G?UCWM4M4PA z!8hq`3Us^Fc1A#VML_oq0Nn*Qbg^7`=Pfo$-=pAnNo_B}pX9l*5%9wU!1tNp@%v@+ zRA03Zoh%ZMwp9eG_T#FRR>9=An1}9{VTJc{7i#c>aIT9@upW}+?oiL5!72; zGosE&Bu)HkwA&4h=TP&VVxyf{ruZS}tklj%+Ah=iApM+bigF!AG5>uGP4|MfnxpE8FWhLo?&;8a`mm;oa{fb zR(<#q)yAi5_@|IKt(sqz1auAm)aYw;tw!IG%VXispR!bYy;<6<7ii58+l$t(#hB8I zmJXd1MW(T>dRSv^()-n0t7_wLH&YZ!g&gx+Of*~dcx`K#ylO$oc5r`&vh4o{n}XiU zfBu67Fu|hdJUew#Fi-h!MG+A~D(?(KfA$%>j_iWT=aH6s;IZ@U2C^Tvf6j)Y6dnAW zT>-hDW6i*#;RvS&o3S@C*nI;AyVo3nd zl!c$V_!cVdN@k~_05rJy-;nWr(L5QGbJ^TtnQ_VIx zuq;!=&~!VruBLI&HJIOtEI%m$#~+O2pX07$MLaK~*(R_DwmrmMa4Mb;^WavyVCp@!JWY4;_~gt{_2Mo+BN(`KFy2QCMv9cT0EdzQUcy2o($GR9*0|n z`3BSXzN~1;u&b>{+h%mS$%f$4*U(P zVQDgV6F&r#`DhY=N0Skz9EPOu3>ywgTNM6`$Im6|a}@3vR3&pNH_IQc&B4z=_!G5* zRs(M$Ak2;9u}0JoK0cZ@+o63mjfKTy_(IweA&qh$;BRBN7`)crFI;OC8P*c5)gF3( zeG>eJp}&}u!*8XV`kQ5WwhU;oMYV{wqU3#>!y7%@P5Nym1zKB}l5TBhgoMbvgXk_h z9JrFl!AH5g1O+E^EDzE>VSurF?O|!(Hvs)!6N@|3rtMQ5VRpY+5`WOH9gHAW(oPSB zGm{QSkhBj#f@K3XEl2H_c{fK9CwezW&B5KNx2vuW+qI619Vnjbw8Q#5ehWQertx6O z=hG9q?BwcM4Z+ocDu2TOWzrRyWlKJv={%_h?9kj@cI}isbZ%p!@%MZ_lGAQGBu(VA zXpbFgCh`#@d%iQuGnbF@On8)M>~L%%FQjMf@YO_~N6*Q<}QSR2lqvQZRnF-s5t7$y%);WPAT1Vm$?4B20%@Ch`*5w_S$ zlF^F}6!V}nRl(qYr$bA3gxP@w;o(v~5tCD;d??Mnh(KxiT$ps7 z332Cjyug+1Aj#7k0{+@6^x5(qp$U*^d~_WzvC_hDqm)ux#A6;X!HH@rr8cb?Zk@?T z(h^6g>){0B$V?tXX=%9K#4<;?UHO1^ST=yKW;-t9tJ#Pc`D!*yoWn23a@9?l1EqTM zTwX<&I6{YaB^k%(@|)D=Kc$?1fttWGpKnD?@YDHxIwpUaj|!m%VixfH#CpV^RbJcR zuW$A@HuOkUvNrn@luY9P!$gaJ6S^gd*DqP-H7SzL;;1-L7W3)uFYSjdo(AosmYn zB8~P8XtWFNzlpEY_ozm@9NJz-sO~@G;13JAZd|p5XHb2gi3Ybh`=PpmKaNKdo@IOl zIcQ8;##dNz=fAg#|H69MLAJp?hxu@N*kP>q^XmvbI$$QW-C?+H=2;fn;ed&^@ITW| zhmo-gRR=xcfUa7eWGtxRUNWf5L9&V)8~sglai`mieAH!Dd*HEJoL7asU3$RBp}sQI9GrfFv!u&0i%qGu!3 zSJd+{)^iRm7Cx=xNyCU+?I6!#S5xt577vo=HZ|b6t487*TWXdEtIs(gRIgOPzly2th9pEx}0H#9tvaB@8$Chg45$xXzRA3=34|06ghX zyO}SLnF?LHQ_F_mZsxC|i0`J~lNa5;qT<@eIkNT%>UbU?}?nLpgeH+pBA4ctz$lW658@@N{bEi%92Kh>5P zYq#-u8}&J%_aW;b*zlm$4u{(K6DX|9cJS21fD<_rk0GW7tE>H$>eOORuo`!{0kc6Y z9N58gP=-I)!N*0{JJX8m>d;{LsvAkOQ**$vdyy-Ofa~eaPSRhgk>n~ro|gui>YXI{ z>hPzg)hjef@FU>!X|qYlekUgm5+3A^=`GI7J)IV()qBzV5!UO8W}Q!*_^YkOS(-nz z)v4j1(iB*+DKgh}5Av0COCp$GaN;$38)NnrH0 zdmrY5>HY|=pj?-c008*PN;R@ftvE1j6XihpQ7}v6Sh3ZchhrD7-evu z>{XyS+Ic6`IY|;cZSYun!3n=M_+u))`FVberOzo~=t=8f_{;Mg(6-)r82v*62M_b} z)D{IpPFjaRAYIsvu3w?|No5q&y>E*L+Yx>P`q4eT=y5us^$6d9?sV!uP=})NRVlpx z-$>){luh|=HUrXM{60tq+>2$@8R_Nti+mRL5`Byxz@+^cdbttoiO2EmHUZL)^GvLn zc^sX9RQUEhs^sWM+h>mRYvy>O2HMT&sLSkTbd+g`621eMayeW|7%nA(yt17yzB2VY zjnXe~lpb!R64YvV#F+`b?L0U0hm=(|0@2(k4gV1MB*~A`@-KFF+BU*2w6w5}?h~-% zwCz1w7zKD2k!1Y%W&W&%OoYj=@@MSDW@`=4s!JgE4V2$+U*k4Nehn9^6jr^4u9XiC zzJ}sdda1euw-F_s{93vw3jTf`FRPYBfeZJaSgZz{F*_>ajzslq;o0FCH8ZVT4I8tI z!uY1Yj?ToAOSo;Y|8+hU`|KZ!`!{^!WnKBhT?Hat)ePt=5TQrBR-?MYY`uZler}=7 zQQ_O9g}r!p^X;2FNYF7+Lk83TUmG=GZ`vBJ`0YDrPBsm|zDeQS&a^G?*LV12R5E7! z$fjO>r|e_l>9-AN)uvkQV|dT-;z|Bjyk`LN0bU}#@?U(tbx#!e0LX`!^>w3--=i=N zzO+4zgBQEG-Lp69a?QCHPIvP-rrcz0Ul^h1G_v)6C^*fpLG`oYG_wExaLpU1(GxZA zrUpfktjd+X+ME3qc#!Qs2)Xa`pW~+g)cfeq9a7MHQD>RsYyW_sBS*vEojp8mNP85? zE3aK1tgV_A3|1@MNW8ZOnpRfenRrJOeA9#c(jJCi`XP4M@x95+aiex`k1Sf}56r1E z>buq;43E~}1X9rapGeZ(D{o{BP-{)HDa{7}X3((Z^rn98R# ztbBU@zbl`fNH3=HDg9TurJEMTf!G9>g8>HcyM7;Nuq(5e``3pPHSvp0xIEWZDJbg z!Y^zh6ZU+FJKv|@WJ%^}C6=Z#5k3o~9v7@z#fBJYH*6GDXqONhaC0bgu_rn*dZnW|dF!5^h4LknbnPtnC4xQRNdi!4mc?#yjhwlUf+_Tj~X3ywG8gw2iq zKcmC}l5afa5`!r%bit83@TmWTXwiUrOf^l(=V1aCyZQ-OjD6F5j+#w@cuHMikg@?F zxLUDdF!aTU0$HZOOI^4nGRx)-5=Th6f!{Y1JR>p7?(>LAsIAQJk3C{)oX5&9a9^V@-QqkA=U@$L%$r&O#F--+Sm=O#+T_k5}OA}r#SNZ2* zL<8KAA(HcUx*U0RcuMJSs%Y@9#%Kqzy5>7z8WE0Jt7}kZ9VM6`qwa!L8KMBy+s`tD z(sG#d!kG-=LAUDb43UEOs|h18hn`hGFYJfLOtG9EbV0NQ53>K6DUuR8F^a^DsvvpG ztAoocZuT`+sQ8mk$QdbO7xq^d`PX2WM`OiBsQ#J}{xuj9Qh}FtzC$h&tLE3Jku-&= zT7_@)LwftMKQdAb^Bi^&uL-WgI!G)=oA?_#;O&tjEw&w3!mKL5Jy30P&2oQ3C)h`c zhcS@m=c7ahCU1@siL}E7e;p-KXr~MGEP)rm=H%jFx0NN)!~Gc>Je?(+$wyrzZE^)Hh1MQ{{WMFYjO_T1AmRkRfBD^sp(5A}do@X!mo2WPCs4ApMWTK} zF-woO~c!)w_h&)rW1_lkyKO$Rteqoj61;b?(zNG{0v$mUV0iSFdLwrqOJ)n;X5 zExj(%HiQjsn~C$e;A*R8W2w#EwwvWyoNfZ`I!mx&=*uY=^f0_`7*5y-+Uk=$+;JS9g9y=S9)n6DJsI6;m8o&`n>b7=;-(P`uzKYK}p_;K_Lk6^{4dN|Ve_k{N zJK!nCQoQ5G=Zw7+=X8-{wH`(2GcN6nIn-jbk8?3_NI$EJ&$+a7kr}*WVQDw@V@>u| zRpHHWV+SY6#obBwx8J{Te1`?-7o{wN&Wr*dn7Ug z+VEOdVLl<*h<}ezIsM&!k1sA~=}UCTv0rM1!4+oDrjVb|@s2Xu4PWbQXzC@9?=AVI za(FCTjDSiz%ZR&NpY$)~|7e8CI~;6~xY!lkGFn_a`8(no@2gP}j29trvH?6aThpH} z!gH5^8AgI(XsQN!N29aU36sZ&*Dw(|BAXs{8RK)ryWZ%5;eG*kjoW4noh|Bh^oF)C z7QYE6(?vYSKCTGd>@%LcNdyJ$a~R2ff!qFGr}6sDqK5jKb!|`dz;L>|F`BOLVl>^| zXuc!CbSi8Ht;b#j?hmn2fZq$TioorQMumpo`yr)4B*EXS#USI?w}^BLYP?Ts#FG(? zJQSX<6<3eFd^JpqL)@e&qVywL5B0uUC$ylWgJDa0T~HJ$i+XoZ;C;Ufo(PIemHJx5 z;2&7!OB|I5$#o)LL5`~vL()*zzdsYDs&U4r)JzV!v~E09P%g->Ix*9OCgS_xhg?4= z^@89+(FU;+=WbLti03UgqS?(OVFP+8`Zb~+9oP8K>*)6|FwD{{QAXqv>}5g{kC!N> zm4bDvMXQ@9N55{2FS&9oWZWudBGqrbRixoOj9s^iY7FrO zy+xEq2z9%1K~A@bq}W5Qo@lK+24}n|M#DdJRy)9Xn^;mXkVgVB$Rsr}k&w#(f?ed2 z8vI6@sUoY0$9R_*7}6jTM=y-rWlsy%uEuZ&^pr6|GuVJmV(fes2#g5aS2rsqi^qsD z;qZ|4w~0i&Re9((bUJe3)!W1+0k`@?xyBI@{N|<%KD7NA;*;}FB32AWncJv|_ z!MnGM(Fnut5IGcYstfKwSiE*#<{Av^?-0|}O>^WsGZe?8t!H)eGpM&=Y-H|QWS(9< zREPWTc^fh8{9(M^CGg~0F$T9ie_ShaaogiuC$7Yi6t5H6=%xqP;qY4Fk#!=Mp0dN6 z>#%Q(Q(cEG@?rFPOiEzsdXa;hhWk|FgX5~O6+T^$?f1fv4VWB+85?l0?G9MCL5#w) ze|U0(8i@l^Tg7;Aw&ITNyqUQghqIy;yG(#kEBfw*@S;kVz}Z$L%t7$nDGKOeC(OK4 zOu(~5`0<_MN_x@>$L|zV=ox2dl5;4eZbbhLPxvNp6g#c9DDnV!Pg*_DyHN~9e9?E| z@Fqg>U1FTIJ}MHc523rTvKgMeON^&@Omc~SkGb4*XH@8*D;8#N62q(~qaxA!ux*nV zN^u8^;rr#*K7~ky?!z5-h)C?d%@vN_hvh%Q&4&l>`jIHGX1nm7q_~#F!aF}g7dh7z z+7lfMe6vVGa$d1nOvDlTHX|Lk!2O$rI^*rwEJ|=cgW>vKBkOLljL}|U+7R&XX#T0V zo%oI3pNfaA82P&OapATg=^lMjG-C)!>{Fu5ihH=_Pm8Z`^h*wk$H`7$&nRXv@}3bB ztctJeo)eX{T^c8!6EkcojOmIaqJ{QI_3Y4i6uc#Fracvs9BcUBQh+OY(3Yw{$sWG zN&w#(@dXArEcz1;3};RMELK>MhXa2_$>|mFi@%EBV9PSN;}fx!C+P83&FX{JPecM_ zo)dF1vS95wG0s-3m+Ko~&lce|-a9AWv11g@{tF@wql=;AEAdmLPvC2{^{j^n{wa2% zw2tl*>yRw_`^0>*#jt*Z#IkMIt#}Dh9HWnhr@lqpyM8GT5&I!5buS|72?K2Z6OQ;4 zkss5;x^axk<3dS%t6h3&yAGd3$+fgYhgB~5g$h8aNz}(0WlrfQN*^48qdedml%emz#U0) z96N_&v%Uszxn(T8ktA2eF6)a*%@uOjUN!{vMoygWW!u2csxnVGT&HIjX#9HnAV z9=k@rhNK%CM#}kCl4-mi0lb4)#(Ef6kFFlM>^pT#TnllPoJN|B8CS_$DXz&Y6Xmav71mFZiwJ70Q}dc_k)OrpOt{z+0!t zCX8mH#qu6JN7z~{zd&~0G*y0vq13lclcx!uKQ1bfZ{We=@aeM0+F{371^YE}KE^5- zmDk9Pgr2k;f4)|J%?F>dCu_-bgOve)QwzEHvCz0MOFmCnw;f5F3U9jQU^p>HPQefZ z!!=jUup5IO=E*G-!vyqlc>^AAEh?8+TB02uxKHI1;B>hxL;22{FBcFz^uKF?3?dJE z;PVA?{Q8_5@GzjXw#m23U)+Rt2)l6-uPXEg%u;;7qQZ)UwcbX2Z&KA#eNz1!{J~ z=o@7+Tz{ji8eRJDjp4-`le!rco6u|V!0F-FW2~bv3%KvYX6u|4ikkAT$lH} zrSM<3>j^-Y%PeH(G0WxWsGEjY$`-ty*j*`aMm-~{WG%&447aY3lWeGS5{+ce0i@dvY`sfe*mS} zVsk#Nlv)0) z{kXGcH~X9Y^Hh*~BhgZfZ4b%q@hEr0o|V^FvYoqCCnMm2XJrvu*{)|%^>~beU&>y! z*du=>tI)>Z_bcf|FXZW8$u?Z)C);HU9D6~=;CInW@<*`nh;-UYFoe?z@4qDT;jtsq zgBdTD)W#nW*?P5RWH}hAD2UsEBY~S3nP65HG&`h z_>!!()$}9Y_%b5fq!8z$%YitD3pd4o+nsF@#4!F9B*-pkct!pmO?YXC%&_4RX8r3j zmmYM6>Kt+K!s~JbKctX)@HqY`+J8M4Wu)0eY;kB^w%PwW& zPB|gzZFx0%ec*drW~i&)d)}7E@T%9i{vBx$wF$KTUKY5NFSs7PU1RPU`8KD0P8e}c zUdNB3h&VC{JlZT1jQh{YDHimb-u_gAy3w5!qfbQ>bD&rLx7CpyRYOpms_>y-lUiF3 zJP@bvA6XbRUc-l4HNJ*b8VNAs5gM5oRiI_fLAZGsCS*p7)G$=gJHLU&<4xwO3z2(}%`s(${jFEfsMzL(A843~h<}0kdt}#7I8AeTkCw=uQ0U z8+k8Ecj>oiakoTmg@?0%{dLr+@VwA}t}geb zemgxJWpqm&@34WQZ*U5XMerJ9YO}>`bWrmGluBb;d;UlJq=aZksBKAaQKZJ0eua)cNVahxT`wm*TUfQ&B?QR-vcBa*628`0#SD<&J71&&;FGiO7s8C;p!EJV`GW)ywN|Z)4y#zj`mbJRCCRUEYGvZ!6U`?1TyC%|j!46EkK`t(dxKUdh~L zOUyU5v*wq1@rBWs2#S|2H4`RWdSi;v{y<&s_?!t7%8D0OOq+RiNyXgK8%rV$OXio^ zu!|-?bX}u+XqyXKN6I2dyH<~}bnsnJc&)w=KlT|9T#Mq2p4z*m`eXQ_>(=X#XRHTZ z(N1H}L-J~i;hL%MBsSK`^CC|DiCMbSVmXD|oxkPE24m(t{T@r{l;Y~@;H}uHx&<*` z(^`r3Ew5SX#bR?PW_eRky|HbsQ*V{k8{66{^tBqBe6>vhBt@0+-U5Ay#n~-H|5|`$ zvHlKvqwg)&w-Gl!jqVZF0kvzE=qFJc_QI^C$XfW|XQ{q?@EKf?Mecc8d>Ot;pSMOM zCpp1)Wg{x|yai|Z-BYHm^jEH$Tj#HwA3l^g$K3^H*}OH8l3wo4F-xxT*ZLa+jpun@ z7@{oLfaVRaA1?5`5hesaHN^KW@N5OD6&w7$LLZLGYw$AU7~Ie-T&X|p#@(1~(Z5uA zdM9!|J#U9?8}%(TTR{7#w!x5lm%j62#`y3q-I?K>m*&UYb-cldcAt_ zZG9T`0j4t#>c7P(L=Hm_p1Gt!t zjp)LwW%S}Qn{TYun{RLA4r4Stc}Pz{%pHeNB0C`VIlXk{yjuUQ70bgf+{=> zvL;80I=MeaIpyeYpF delta 15594 zcmcJ03tUxI_VC&J-h1}m=RQ%M^6;V{f}o(Fpkktuq2eRdA|<`TH5uh0Tr4tFEK5yO zy5Sn9D6OoVGQ|;3mXEA##wIH&Dr&6wPgKrCiH%d#VBb3DUgf5Jzu*7+{@=&%a`xk_ zz4qE`uf5jVd#}^`ebPf+NphLny_vpyy$9@Lj2k$41S(&b!@SfHOSf`ZcP|g|j&)2Vjo#IciN+>;?@j9; z=Ka7COPakuIx5+Rj^tWOrm8{sBRxX#uH4*G&vtrz%&asPM53v`5iH2 z&E@KEX2@=TUcEnG&ZqEXEEz@SsUO7>GT0cw$tegLN*01`7?I(+ToOg2IjkH+ZoTiN zT!Q};{|)$WRA0(9Ep8fiLv`tG@-%Sf6 zqe+r;@wJT>k9E$4=f5`%?B}dJ-Q^y4iPKeWB~JM4d($NKFMl^pB&1yxou)K1 z>4b6TO&gWj*`&Z#=0-S(@ldDQb>8$jC3*1H_of1M;lE5{NKiW?jvLZOr%EJvm1{+f zTW>iP{&~@KfuzEx|2EwR`a#zXh7ovfDIEa!M{zqe^qAhp?p!~a?leI|ERTnf z!90bYW-w(iA8EMA2y9E>VX%ELA3%EpGFzc_TAMOT<_mkYCl!Nb0OgjlJWw*Apb-tX)*;sw(x= zUICL3No)#FgXnl3MOzt+i|4WQEQ7bp`9P?P=VIm+SYo-&70^K(mKIf3l@`1EAc9NF zD{DMmj08`r^|-4gGQP}p$D*Zf_o7O7)grAqbPwf&Vgg!}SCj{0;GT+hNK53=&M{+B zM_!qL%R`h}nIzFRCbcn`Glb`mcJL12LoxaI7gM5gR(spQqz*r`{xO8dt?lb9%2iT= za#D@+8kQa4nOFv8oS80FR|k#>XQE%1S+@tK5q`wUzE_-%LnG=^P`@1vR77 z$Mtij7fD!@Bm+*Plqz-U#DzhtlSd|XGh?`Kl8nZ=1iRsmnHA-31auTsl(~)Aha?e6 zy4W}U>C<}HuS6w1Gd+D?xo?4>5d1c=zcu+i{>h&()HnGHhw|~xzM=klzAw)$yfBo< zMD{`bUr%wOm2xgR4 zdvHkKjRo8(K&W&GLKsO|A%A0$q+K$udn=z6IE6?)D7ocV-g3E z!Yu(Z6QomFL_^T*rtpDrS9o}p9=uX7A*9Z;uTyve?Pd@(oCi<2@|yg&G}>rgcJvQ!nJwGQnmJr-mNRH92QbUuXz2!vJdDP3IB1b4C&hCTmwSiDjZ3(q zT$19sBpKrpIjUuz!LxWa&*6DIpG%1x23q9}G=;-cR(Uu{gN}jn0Qk--r;-d`eymL% zMzVbQbv8MHWc%{3*yKSZ$Cv-bCJ!;^a$?D?a!FDyS5xis0S8(@#CAQ&hm}s*2{$<9 z81o!X9QhR`sEy`mwG+uaIOvq)&>N^9BuBypr#y=k!K7IE5#oZ+V&&b$t>T+cDJg}; z@$w6#3?hceIca4m(>J=SYgTwTD!G;1m`iFo;e6I|qqGu7D@jO8l~Jn2JnFiY+?x{~ z4o?h`2a_83^AI^6lP)c(h5iZha0j+QmQ_|%dlr?JFRfS!a}wlOTF0ULf*hr8PmrH7 z(RvOkai(x}c8WYjHf%tn+3GfhLu#stc_Tb#_2ek|4LjKcTPDjDnEYq5oPZ9T+8sh3 zHIfFuht%NrkQxF!Bwt?lko?uUhvduqJS1ZS=Zn2-9O3Yz*6h9(o7<)N+4K6(*4~I7%krSy9u(%2Fk7~l@ z>?^!ZdpYC`A|a6ds62=g0j@{ojnpLIpO4CGwetQ?Ov&*3$K)HeN-V^IW0yQFNr*tj zZxz>Y!7B9CVHG~~J9o)(G)TaSUGiocB4GM%xn3*l=zrQRPtz(dqgTN5xO|XC2pIZ= z{1R>)U~vQ=0_G=iGIm48lk%6ii-71oIAQJTf<1CE3GQ=(oy8U9=&Toe+Tq=&^dw5$4EKCXqjAbyXF(+3iPJ%fvO50CMxB@hCksN z$%pb5ITU{U6DqAaaNQw!2%RHz#j*B~9FjRtNEQ-aUQt!%S}{)$<6Ma(SD+W_(j4L| zRdHpm@)DP)qN>&hBhB++{jWpvcvLzATjXd=vRmY+kQz=h{pRT=cj;}*JQF0TP=ij2 zE)rz!Y88^L-{;ubVxM}VVGN77t zyd;;yfmh_o12+f~KHptDel8MIufrdqsnQ0_Q7mqPoD*`|WTUYFF-cnkV7F=zMycUf zQrUQ|R5l_U>g-0CbzF{u%A;}^>bZ?a(e&(w14rd#vIou{m7}my2M9eTFYMnWNb3Bm zrP}7k<*BJc`_cp(j>$J+6CJ4Mm^=^LVZQD+VE4jj$7L7Ur;|RUS@>vg381}MA7`pV zYS9LPr6cO^PsoRe<(T%uB85Aplfrv)US3xMu~{m_`2*c^oRfp2@kw34@Lmr zs`fg^FnH&6IZ`1ClGH6ElcHXHT`n|Gp}_1n1gE zO*t04f0a{dhythnDo-ULjVoCwEWRX1IwKU{)WrvkC<1#haw%HDpVoRAjaA?;Z{os< zz0wd;&d9;$c#ReWPxN=a@{ByhmZISJ!&g;!+*Q>X3hX%}54T{QHtDHpij;O4$8eFM zHOE(3m#ZR&X8Y;M37{uiZ~QNZL(0(_U@=$mem6D&o_kB)Mf0@$2(|8Q*-5h1axzU*;L`i@B6Oi{ZIj3MD^f_ZU#Z|;QPUUjT$>!P zxU_D$Lz3L^Nt?U?wZVZ8dV{ZyGWCkUr2W=kkU?K)Z0FmmniXjw3d4n34aXH(31)@e@wz4@h91=uIWUNlbpK3$C0P~ z^K&L(eokvBERGtAOH%6w%dI-rHYHqYyWDm-9uN%s8kgX@uMp>1IQf-aiV0R74(U)x z=3Li`6}992YY1nd!v}3YhgP&x@xFai7*w4@;XMa0o|9+NiwYb#!D48S0`Ht)gCYMP z@~u}@4l<%rJa@VO$b>FG?cD*icj<&W5{cBUk&eZSF#Vrs277#69{Z;}DXdoqs-f{j zB4(X`ZHidKw9PdgR44&Ft+ij#G#IB*z$Wi-Fywf#WT? zKg}}3_Dk|Unr(*bevun#ju}4q1zm$&bK^LcL2@xiT{b-pP z>Q~V)_(oyt$x5}t%z_A7>Us;y$3*YlwuPaGV`b*awPuoeS@g$GPj=47DXumDdO4)y zatO!eP>1}`AGF>q;SVJ?JzUxV*h3_EtZW)?7Os#%w!%0&i-LhR7DgIijExP9YBZC% zdF9ofsv7-h)8{Kx>-M+72mOGJJx3a~{A4tX9S+tX9<;LWFmO?EP$QBut89>(J@fX8_wIhqMO3wra3JMl_WJ;#qZYyUyONBvU%;W3&TT z9=4oeubOKSR|_j8Wc8( z2Kiq$4`l^3#9xR`WK$y|EM&^;s)|*mCGM&KJrkkBEVV`>A~aEs2#XYJQO_r`DU8Nj zV00RrO%pA!F^vsPO8gatDc4e%;-fId0w1TbEShG4kdZ8%W>{eQNEX#E!$OA6cGXtY zc&c&Gl7#ggFUhG1S$=M02XG@xqlY`frEG14SjzDMhvxc$^8CS;BYp}9#mr?QP)?My30%OygAOZ3=ephRjep! zBg9gZHd>Nue5C7o3q9k)33}6}2`tkd*i@>sc*nv3_0j~EYoztQM$vgDpQvmI81Dvc zWO*j^ogbXclIT{8xAox&^~1@im1u*nU3R0NPfY>sur5Hvc3wMyI}tHjjh%4w^{huU zY27qhq}_1KR91pp{}WT$9olX`Gmrg%dLVTg+lqSN_%wDsCZ_4A4q6~(I?EVv1W_l? zE3a~|tZ`T4l?Zx7p3>swZqG5eYdWfwlNPc9PEJF$(~98qh~=`iNI!;sqRl>Hkxu@K z*kjictAQf1r~IOS+TvZiX8?3P&4hYs2J=wM868)vC0uItF(stU&y@B6rnJGUvsgoL zyEfQ1i*#0R)PapU{Ea&Ojm`x$>V$o>*&5}X)~M4Wby>WXPlc&7=CCxXbn6&Ukza)S z3fMDv)Q~!t4JAEl;as-Vh$`Uao7wY}SfR3z4aHRbLm}#PYO?y4u&}C03s|y&TCH&N zt?X-ikkyi0iSB{hv&d6gSq+ZSEJQ6?#JUL$vF<3r!U`7~Li$HoNpengwcAtR!95M` z5F+%q@Zu7dN~3*wQp^_6SS#FGjQTd-3U?H<30T&!z?ovCK3>Zouq0YFnb#C_itlA> z37b#TeEA7(HiBkYp~B4uM`c(^`lO1Q@)CDRfv2jp{5Cu>t*$LwQn3Odo_A}@-#@S{ zt2(`m#WI?GIg?}66#zWyVLT+)+NTS1v3nX}l=9SV#5EnG&SKtDOsbiVuI-NE`9a6pOs$*s&-C%{;ImS>pwFxa~ zOFjG0vPpwMU5h@h|K0QJ*#oq}UzmG0+e91vh0v|c2FvbdHL*MORt_uKNu(ydmmnH0 z?bdVQ=cPSX?}QH{AYwGLsK@VN7c}GByosHLLEDkiZJU`DNo?ATUP7~09}K5Avou_< zdft9N8)Q3TjmxR5L=)j!QH`eeI;@L7W+i=<5{W8tBtov40hj- zVscF9W(c7BGZKw=&KA}`?WFbB&W`5$TX6>`v;ZIxr_~MKY>CP=|86Mf` zL?SD~a4`+v$|7i+72er`^tbt5ZQIJq2DEF99mt?)8bqbDI;sfTVMU9sw@-S2{f>6_ z(PoDiA7C-V&f&7rU9$qWNB5D=T_zPPwBsMdD(%K6Zi96^VcXcdq}$&y@-_UT6(Led z`fPoXUhnpwC|vY`jM>g|XphxG_h7HY_RH4ws@e`Mi%0MPHCC8uHBbycd|3D1f58$4K6;)9-%=t)%zHWGtdwl zX!~<$eVnbZN7yue=F>S;indv9hK9R&D7mF(+k`e;8DH#UXKB6-V%m%`&|~6e z^_%C}07B>3pzxTv#{{C*v#987lE-gVF=YolcSRyw0 z-63=%N@43EHiQ=X$vtz3O}(+m7HDb_-_<9|g~%%uD%Y>z+}FaneQ<6+@-;1N!Kl(- zH7dKdQJJrimY|}<=e&-TKb zN7+c);D0sX7}hny;$!Rv+&}C;fwI2`-af(Nuu_xAp*#H&*%Tm=JAFf{k)^d&_lDI58+aa)&mxg=y+n)@|W2L z13hK~SG*jlI$mS7L{o2w2wpnH`qNW3{|@)GUK!mW`&QJM0PJTpoDH(n3i4@o9qKQ= zxxP1O_vMeCW<2z4K$EjtlfAOkVbkxEAnV_ahoC_^<5P0i%{?`n~FZm!|$TD zz3A)j>v!2C+=C8#k2z_N4PJf^t;sDD@a(njJ+_MUz`x#O3A9&769ePkXZKQKhs7VT z0dV$x_6;@J;lNVU0O)LEp;XwRw~Y;;Ry#y|z;d-RLN3(GxHr&k$dCe!K4JGUGsu4J zc!KQLjz`#0DTml`K-z;w*d_dFs{vm`+XGG-)#V>D3!|}iwf0k%BO77^U&7zMU@DEb z2PmQjT@lelJ2V|&Yp>EV|07ML;hg<78a%y=|1(w8@GDi6qH`}b^oZXt$_hB!O|xIU zdW{)&|7Bs-x6B!urSl2bu$1l3;n5?87HRv-Ts!2cLG;A@uu+CDM65YV<=>TIermXD_tK?z;p0;wQ$ac7xlC8(Tv! zYGXH)^|HJ~w>?memfEjTqoqh9Qd+7tEx{We9m9f4>@M7+eRPQ>)0IBT4K+Be+6AM! z_!st|f!5mf`$Mo8_=~j84#&&nh{li5cj_|m^8`;UKQ-}fbc3JR$7Ie!H`)6P<0kBu zW-w{14)z z3t~QOhr)Bh_S(tB$rX4rw3+607^r3E$++8^kO7GhV4vd>7)jDke>37>9l`LX9C7_+J|d|mCqAr zv@xBwORefwESgc5{XLwo#@o9^5quV*XMKz(9k71@kAfZa=DvzB>I3tOvHo;{D;E7#@kpCdBZt z&@0goWN1n0(xs)vc->#y3Cm-6#Dsu%?mO@*aS`6RxdOt(^vH`9S|C*)q*IG8tEqOE zbiyk!d{9WQojCQVGCkBSxU96?UDXafF+48V5ri;eb>p--yZ=I+R@VHzu zX!6b_lS7Ln34>{|zNT0xqgKa`L3{wSA{Y&Fz{@FoDC7;|8IHd09ZRb!%G%+9K|C30 zdub4l3OV&#v5&B8IKLtOS8;0Lt}@){1uzH$vP#@{bb@sRidH8ijNtj0)QsSN!DK=z z1|AZJT9(Q`bcO{6l9W2i9QnM)A-Nq8Ym*~X&m4ZEf5KNfk7P`F{UFIZwK|5j*Y1I{UIINoh@=~4+8gv zxoLn`UGe+j_68yEFuxC)SMW&n-0yg%0nhFSmGfu)QHjMfuZ?TexoYCS5k91auw4tU zi<=(0h_k=0f{)jNfsR*jr+ST=)FolD+J~KYVa=h^q7^L;Jjs4@ny&W_3W|8^Om*RTSKlIG#8;yQP+oz(9J6;N9y1(||MUn=IJAn_Ya-wq4!Vv9QH)sn4{ zvJT1EV|h>s0na)d%3j#E4qu#x6YCI17j$V!4@A}@n6N^AJs(DctZ-*N%21XS&e!uX z@V9#24^LgR!W1MaV?B23f+g#D5*oU#TCxXTSkH%9d#q%I|EQ^aDa5Yj{lRcIkDvrM zXLs|lxXXlF?&hOtv<N8G1~5rY=@$IF(Me< z77T5lhaQOcE=ROB6P6wK@lazvf@uNnaL+wF$orMUfgV}GeP~*0V9R|x9q0VyeLNNU zdEq{ujTEJB#8NA`Hu8~Zu^!sUb7{LBgV>$w&l~w-nPv&KXd5r0G+U@g8~ANR3l)j? z^06dOUF_xC2p&eAe~7<|&ds4legOIC-oY2)4biC`ypCe8lXvn$?6qkppHAx3b36I7 z222~9&=#Q6oc0*LZBXxjj7MoFG|xQ2@09lnqr_8S-xGKuFy%=!q5IUApX3i?+>^R+ zFLxM_TV>Dj8gf$o`*S?sh;agG&HN{%KKUSj2JLIxK}`}=!=LzAqbAPRsk|8P#nmTO zKEp(<3S2nKYiXjQmL21F7-^QGesz-XCNx)3H^0hv2pn1L8E(e=V>P9fa|1@!kA9z{ zRVY;d^9lcq7+i{5{q!s^({d}-nV<2;s9txzgC`gaHA<~Ipc5@O@*?$1{sZ2c4gCrU z!%??>&6gTbh%>*zb(1Ba?i>DBY}p9YyZBb-Qo@ar(FL=+cm({|#S8E*YR0#Gv}u#l zq^yILo4Hec`dj|K8Kckc`iX~O^cg(#Gk*g4lldPMT3krQy?iIG)!tsd2HA4gB|e|D zs_$JwW|`U*qhx{E-;3dmt3?6nY5OXiqItqz%?lLztd`TkU87lCA(X2jT5HE9W zz0bA?ClzLR$u8=s)ePMh@q>1WIWtNbsYcm^n`qkL1ny0KZx^vN+N>hvDm;tzfdGPh z2Xp(0Rj4T7&3M!sbxi20;Q-IgGhX^!@fiJ}A5(Z@+*7#?59!^92Rede5L%6N6l zFcD$I3(coSh;l+Vm?39|vKe-zVON_#O%tz@t?KHL!pd>BHjNcu;u&J)II$Ebl;^pV#lJ|Wnm0v!N^s9P^m_3oIz<<+7ac~c1#h@Mo+{?!<(4|~25~o`(H2$B z6F;-iSWA=?RZvk}>h{!<%bD5gU*?Dxh#YT0QHzB~gG4AiQXnSc<&^qqfi}W;3(TA+ zHqjglw9gYWaSJnaz8GaFv=qUu^ReuLee*>=F7Th{i<`77;DVb)1qyKyoVrBWbBl6{cQ-dL6BA6RaiB~L!A-;QGI1Tw+@&&+ zTsoe;8YTS#yyTdR_ZUQf za{YDxsN#p{RV+rdHq%LpVy1p+!tJ)L3^x1BgUe)gs2B!8q80i>OGAI4rugX*M54iKxeL zHsM4A+Hh1f;tX$jRn)?+W1=7CqhAyELe_C%HEqQR7bCp!rD_}AhaA8 z1Mn#Ao#P_Ou+!QEy~jm53dG10;t2z4gb!X315qCOFmLxEeFSBD9~^y6l$%=m5SN@n zWM?$Q8E8Eb=Me6o_}6Yd>qiXXuOmY`q2P7#0a~M^KZ^tt9+ThrrbyF{zbh?a@W`8D zDC^abh7eeJLIlHSZ;Ea-*sW*8&DuTDu(!k*EiHLV)M!q}CvS;J?L7R)w?sOghpWTi z7L%#wg;ckSrP@(9R^X9wD=O6pn`(boT#x#|1~*a0Y1fE)}$sY)n;Fdz|{7_`t(T!0DekHzUJlBRaKIEJXX%|F)81$V;V)bqYic$lyRh9oncVw3F%PZGAeJFa5{G?%F{TFIc8-w9^bp_OY(kpU!7)m_=0oHSRQ`@am*P~W z;T+!KRN}}SwaKacjT)P|F$$b7iwM{;7@1WB@o`F;!DZKHG8$IJDfggi{y9z=Mq1Q_ zcm<7V4Tk$G^N3u-jZ!dfI^Mv&`|N=x1}`NjLhYZZ;75uzkddV9LJ#GGBxN8b|4vfg z!+CpSn6d~BWm2-Th19BQvLb6P;_(#a6>>_gAFkYJ>{n;MUW(H%e#-FULLA>2wR5C0 z!+iCID4#z-rj03N~L5W05(1eK=+Wq1U${$S8xO2n3TAmWGodL07Vk+A7+0&F+hIZBo zk55x>#!R=`J58CSnfHk^l*jPU=<^xcB=x9iGnLPcCQ~O%_j`b&3lyut5G%sr*ho>O zzA#_eY*4q{qC^|4@q+hJ35Sc6_tD?D|5jx?ao|UxiNYB0cGzO24P~VZ@UaLNS+Pr5 z5}Jaf7CPoi;raOW?c6&g63q#QjDO-%(r-%R8z)X)<}O}dQ0Xq7kI|fX0GGiXnR?ya zJNz|S+>xr+Om&yLt4pi1dAbiGzoH7&K7Q$#!_$ZA5cpMHu{#fzF2Qw{505WVhTv*G zy##rQKC5}Tf?vQCsz+BVKWgQcdr&4!*%o6Sf%8w{=5N8h%1T;;OL?Ob4qx7@z~zDp z_bKKC>x?+JXW619D=LbYOFgjvd8HH=Z^V8@JCV6 Date: Wed, 24 Sep 2025 17:55:58 +0200 Subject: [PATCH 195/273] revive/rpc: revert changes within lib.rs and receipt_extractor.rs --- substrate/frame/revive/rpc/src/lib.rs | 11 +---------- substrate/frame/revive/rpc/src/receipt_extractor.rs | 6 +++--- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/substrate/frame/revive/rpc/src/lib.rs b/substrate/frame/revive/rpc/src/lib.rs index ebe7dc7fc476a..3cdb55f6f081a 100644 --- a/substrate/frame/revive/rpc/src/lib.rs +++ b/substrate/frame/revive/rpc/src/lib.rs @@ -163,16 +163,7 @@ impl EthRpcServer for EthRpcServerImpl { async fn send_raw_transaction(&self, transaction: Bytes) -> RpcResult { let hash = H256(keccak_256(&transaction.0)); - - let transaction = match TransactionSigned::decode(&transaction.0) { - Ok(tx) => tx, - Err(err) => { - log::debug!(target: LOG_TARGET, "Failed to decode transaction: {err:?}"); - return Err(EthRpcError::RlpError(err).into()); - }, - }; - - let call = subxt_client::tx().revive().eth_transact(subxt::utils::Static(transaction)); + let call = subxt_client::tx().revive().eth_transact(transaction.0); self.client.submit(call).await.map_err(|err| { log::debug!(target: LOG_TARGET, "submit call failed: {err:?}"); err diff --git a/substrate/frame/revive/rpc/src/receipt_extractor.rs b/substrate/frame/revive/rpc/src/receipt_extractor.rs index 46bee0d63fcf7..0e5273d4f7501 100644 --- a/substrate/frame/revive/rpc/src/receipt_extractor.rs +++ b/substrate/frame/revive/rpc/src/receipt_extractor.rs @@ -112,10 +112,10 @@ impl ReceiptExtractor { .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 = call.signed_transaction.0; - let transaction_hash = H256(keccak_256(&signed_tx.signed_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 From a139a351b5ea4b0f9b6a8059a4c83c4b51a4d97d Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Wed, 24 Sep 2025 18:05:56 +0200 Subject: [PATCH 196/273] revive/rpc: update block_author --- substrate/frame/revive/rpc/src/client.rs | 2 +- substrate/frame/revive/rpc/src/client/runtime_api.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/rpc/src/client.rs b/substrate/frame/revive/rpc/src/client.rs index 36945ba5bc1bf..83298ff904396 100644 --- a/substrate/frame/revive/rpc/src/client.rs +++ b/substrate/frame/revive/rpc/src/client.rs @@ -632,7 +632,7 @@ impl Client { let header = block.header(); let timestamp = extract_block_timestamp(block).await.unwrap_or_default(); - let block_author = runtime_api.block_author().await.ok().flatten().unwrap_or_default(); + let block_author = runtime_api.block_author().await.ok().unwrap_or_default(); // TODO: remove once subxt is updated let parent_hash = header.parent_hash.0.into(); diff --git a/substrate/frame/revive/rpc/src/client/runtime_api.rs b/substrate/frame/revive/rpc/src/client/runtime_api.rs index f42c805fb5f61..1ca3d06c57188 100644 --- a/substrate/frame/revive/rpc/src/client/runtime_api.rs +++ b/substrate/frame/revive/rpc/src/client/runtime_api.rs @@ -97,7 +97,7 @@ impl RuntimeApi { } /// Get the miner address - pub async fn block_author(&self) -> Result, ClientError> { + pub async fn block_author(&self) -> Result { let payload = subxt_client::apis().revive_api().block_author(); let author = self.0.call(payload).await?; Ok(author) From 1faebb2f2cb46566adb0ee1d0aeb02ae91540dec Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Wed, 24 Sep 2025 18:43:47 +0200 Subject: [PATCH 197/273] revive/tests: update tests after weights changes --- substrate/frame/revive/src/tests/block_hash.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 34b794ccd1061..a1ce7d0f5afbe 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -141,7 +141,7 @@ fn events_are_captured() { TransactionSigned::Transaction4844Signed(Default::default()).signed_payload(), ]; let expected_tx_root = Block::compute_trie_root(&expected_payloads); - const EXPECTED_GAS: u64 = 7203594; + const EXPECTED_GAS: u64 = 6906428; let logs = vec![AlloyLog::new_unchecked( contract.0.into(), From f894abc39fac8d56fdf2b532de24e9eb5d254044 Mon Sep 17 00:00:00 2001 From: "cmd[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 10:02:25 +0000 Subject: [PATCH 198/273] Update from github-actions[bot] running command 'bench --runtime dev --pallet pallet_revive' --- substrate/frame/revive/src/weights.rs | 1168 ++++++++++++------------- 1 file changed, 582 insertions(+), 586 deletions(-) diff --git a/substrate/frame/revive/src/weights.rs b/substrate/frame/revive/src/weights.rs index 6bbfa6b147b87..b272985fd6fae 100644 --- a/substrate/frame/revive/src/weights.rs +++ b/substrate/frame/revive/src/weights.rs @@ -35,9 +35,9 @@ //! Autogenerated weights for `pallet_revive` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2025-09-24, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2025-09-25, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `4d14026c9cda`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `881150ca8787`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` // Executed Command: @@ -179,8 +179,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `147` // Estimated: `1632` - // Minimum execution time: 3_137_000 picoseconds. - Weight::from_parts(3_342_000, 1632) + // Minimum execution time: 3_043_000 picoseconds. + Weight::from_parts(3_333_000, 1632) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -190,10 +190,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `458 + k * (69 ±0)` // Estimated: `448 + k * (70 ±0)` - // Minimum execution time: 14_338_000 picoseconds. - Weight::from_parts(732_716, 448) - // Standard Error: 1_405 - .saturating_add(Weight::from_parts(1_214_088, 0).saturating_mul(k.into())) + // Minimum execution time: 14_513_000 picoseconds. + Weight::from_parts(14_833_000, 448) + // Standard Error: 919 + .saturating_add(Weight::from_parts(1_192_693, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -217,10 +217,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1172 + c * (1 ±0)` // Estimated: `7107 + c * (1 ±0)` - // Minimum execution time: 87_813_000 picoseconds. - Weight::from_parts(124_568_531, 7107) - // Standard Error: 10 - .saturating_add(Weight::from_parts(1_417, 0).saturating_mul(c.into())) + // Minimum execution time: 90_182_000 picoseconds. + Weight::from_parts(127_351_676, 7107) + // Standard Error: 11 + .saturating_add(Weight::from_parts(1_420, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -242,10 +242,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1112` // Estimated: `7051` - // Minimum execution time: 83_039_000 picoseconds. - Weight::from_parts(86_967_123, 7051) - // Standard Error: 18 - .saturating_add(Weight::from_parts(7, 0).saturating_mul(c.into())) + // Minimum execution time: 84_859_000 picoseconds. + Weight::from_parts(88_351_086, 7051) + // Standard Error: 17 + .saturating_add(Weight::from_parts(105, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -262,14 +262,12 @@ impl WeightInfo for SubstrateWeight { /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// The range of component `b` is `[0, 1]`. - fn basic_block_compilation(b: u32, ) -> Weight { + fn basic_block_compilation(_b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `4516` // Estimated: `10456` - // Minimum execution time: 126_331_000 picoseconds. - Weight::from_parts(130_785_116, 10456) - // Standard Error: 414_115 - .saturating_add(Weight::from_parts(564_683, 0).saturating_mul(b.into())) + // Minimum execution time: 126_840_000 picoseconds. + Weight::from_parts(131_448_116, 10456) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -293,12 +291,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6811` - // Minimum execution time: 770_540_000 picoseconds. - Weight::from_parts(38_373_107, 6811) - // Standard Error: 35 - .saturating_add(Weight::from_parts(20_159, 0).saturating_mul(c.into())) - // Standard Error: 28 - .saturating_add(Weight::from_parts(5_201, 0).saturating_mul(i.into())) + // Minimum execution time: 759_864_000 picoseconds. + Weight::from_parts(61_804_765, 6811) + // Standard Error: 32 + .saturating_add(Weight::from_parts(19_995, 0).saturating_mul(c.into())) + // Standard Error: 25 + .saturating_add(Weight::from_parts(5_090, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -325,14 +323,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6821` - // Minimum execution time: 291_223_000 picoseconds. - Weight::from_parts(204_772_655, 6821) - // Standard Error: 23 - .saturating_add(Weight::from_parts(14_892, 0).saturating_mul(c.into())) - // Standard Error: 18 - .saturating_add(Weight::from_parts(402, 0).saturating_mul(i.into())) - // Standard Error: 1_531_657 - .saturating_add(Weight::from_parts(26_253_609, 0).saturating_mul(d.into())) + // Minimum execution time: 296_703_000 picoseconds. + Weight::from_parts(137_114_517, 6821) + // Standard Error: 41 + .saturating_add(Weight::from_parts(15_152, 0).saturating_mul(c.into())) + // Standard Error: 32 + .saturating_add(Weight::from_parts(771, 0).saturating_mul(i.into())) + // Standard Error: 2_686_368 + .saturating_add(Weight::from_parts(45_575_803, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) @@ -356,10 +354,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1623` // Estimated: `7552` - // Minimum execution time: 175_097_000 picoseconds. - Weight::from_parts(178_245_989, 7552) - // Standard Error: 10 - .saturating_add(Weight::from_parts(4_291, 0).saturating_mul(i.into())) + // Minimum execution time: 176_685_000 picoseconds. + Weight::from_parts(181_872_822, 7552) + // Standard Error: 11 + .saturating_add(Weight::from_parts(4_273, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -379,8 +377,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734` - // Minimum execution time: 89_950_000 picoseconds. - Weight::from_parts(93_653_000, 7734) + // Minimum execution time: 92_245_000 picoseconds. + Weight::from_parts(94_466_000, 7734) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -403,10 +401,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734` - // Minimum execution time: 96_129_000 picoseconds. - Weight::from_parts(100_557_626, 7734) - // Standard Error: 377_039 - .saturating_add(Weight::from_parts(24_138_173, 0).saturating_mul(d.into())) + // Minimum execution time: 97_723_000 picoseconds. + Weight::from_parts(101_795_926, 7734) + // Standard Error: 381_733 + .saturating_add(Weight::from_parts(26_168_673, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(d.into()))) @@ -422,10 +420,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `303` // Estimated: `3768` - // Minimum execution time: 56_402_000 picoseconds. - Weight::from_parts(48_856_000, 3768) - // Standard Error: 17 - .saturating_add(Weight::from_parts(14_177, 0).saturating_mul(c.into())) + // Minimum execution time: 55_275_000 picoseconds. + Weight::from_parts(45_495_493, 3768) + // Standard Error: 19 + .saturating_add(Weight::from_parts(14_273, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -439,8 +437,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `458` // Estimated: `3923` - // Minimum execution time: 52_285_000 picoseconds. - Weight::from_parts(53_452_000, 3923) + // Minimum execution time: 52_330_000 picoseconds. + Weight::from_parts(53_410_000, 3923) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -458,8 +456,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `797` // Estimated: `6737` - // Minimum execution time: 64_792_000 picoseconds. - Weight::from_parts(66_793_000, 6737) + // Minimum execution time: 66_325_000 picoseconds. + Weight::from_parts(67_314_000, 6737) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(6_u64)) } @@ -471,8 +469,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `510` // Estimated: `3975` - // Minimum execution time: 54_348_000 picoseconds. - Weight::from_parts(54_970_000, 3975) + // Minimum execution time: 55_199_000 picoseconds. + Weight::from_parts(56_546_000, 3975) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -484,8 +482,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `93` // Estimated: `3558` - // Minimum execution time: 39_090_000 picoseconds. - Weight::from_parts(40_311_000, 3558) + // Minimum execution time: 39_793_000 picoseconds. + Weight::from_parts(40_493_000, 3558) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -497,8 +495,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 13_141_000 picoseconds. - Weight::from_parts(13_843_000, 3610) + // Minimum execution time: 13_187_000 picoseconds. + Weight::from_parts(13_527_000, 3610) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// The range of component `r` is `[0, 1600]`. @@ -506,24 +504,24 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_540_000 picoseconds. - Weight::from_parts(8_693_337, 0) - // Standard Error: 204 - .saturating_add(Weight::from_parts(169_076, 0).saturating_mul(r.into())) + // Minimum execution time: 7_332_000 picoseconds. + Weight::from_parts(8_687_708, 0) + // Standard Error: 209 + .saturating_add(Weight::from_parts(173_436, 0).saturating_mul(r.into())) } fn seal_caller() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 333_000 picoseconds. - Weight::from_parts(397_000, 0) + // Minimum execution time: 338_000 picoseconds. + Weight::from_parts(367_000, 0) } fn seal_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 321_000 picoseconds. - Weight::from_parts(347_000, 0) + // Minimum execution time: 328_000 picoseconds. + Weight::from_parts(356_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -531,8 +529,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `567` // Estimated: `4032` - // Minimum execution time: 8_337_000 picoseconds. - Weight::from_parts(8_794_000, 4032) + // Minimum execution time: 8_199_000 picoseconds. + Weight::from_parts(8_624_000, 4032) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) @@ -541,16 +539,16 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `403` // Estimated: `3868` - // Minimum execution time: 9_365_000 picoseconds. - Weight::from_parts(9_849_000, 3868) + // Minimum execution time: 9_064_000 picoseconds. + Weight::from_parts(9_747_000, 3868) .saturating_add(T::DbWeight::get().reads(1_u64)) } fn own_code_hash() -> Weight { // Proof Size summary in bytes: // Measured: `366` // Estimated: `0` - // Minimum execution time: 7_147_000 picoseconds. - Weight::from_parts(7_593_000, 0) + // Minimum execution time: 6_919_000 picoseconds. + Weight::from_parts(7_280_000, 0) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) @@ -560,51 +558,51 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `475` // Estimated: `3940` - // Minimum execution time: 12_997_000 picoseconds. - Weight::from_parts(13_301_000, 3940) + // Minimum execution time: 12_795_000 picoseconds. + Weight::from_parts(13_452_000, 3940) .saturating_add(T::DbWeight::get().reads(2_u64)) } fn caller_is_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_035_000 picoseconds. - Weight::from_parts(1_137_000, 0) + // Minimum execution time: 1_037_000 picoseconds. + Weight::from_parts(1_126_000, 0) } fn caller_is_root() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_036_000 picoseconds. - Weight::from_parts(1_120_000, 0) + // Minimum execution time: 1_044_000 picoseconds. + Weight::from_parts(1_156_000, 0) } fn seal_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 308_000 picoseconds. - Weight::from_parts(336_000, 0) + // Minimum execution time: 299_000 picoseconds. + Weight::from_parts(359_000, 0) } fn weight_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 960_000 picoseconds. - Weight::from_parts(1_043_000, 0) + // Minimum execution time: 1_021_000 picoseconds. + Weight::from_parts(1_120_000, 0) } fn seal_ref_time_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 267_000 picoseconds. - Weight::from_parts(297_000, 0) + // Minimum execution time: 273_000 picoseconds. + Weight::from_parts(309_000, 0) } fn seal_balance() -> Weight { // Proof Size summary in bytes: // Measured: `469` // Estimated: `0` - // Minimum execution time: 12_434_000 picoseconds. - Weight::from_parts(12_790_000, 0) + // Minimum execution time: 12_068_000 picoseconds. + Weight::from_parts(12_792_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -616,8 +614,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `791` // Estimated: `4256` - // Minimum execution time: 18_486_000 picoseconds. - Weight::from_parts(19_245_000, 4256) + // Minimum execution time: 18_572_000 picoseconds. + Weight::from_parts(19_484_000, 4256) .saturating_add(T::DbWeight::get().reads(3_u64)) } /// Storage: `Revive::ImmutableDataOf` (r:1 w:0) @@ -627,10 +625,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `271 + n * (1 ±0)` // Estimated: `3736 + n * (1 ±0)` - // Minimum execution time: 6_149_000 picoseconds. - Weight::from_parts(6_874_947, 3736) + // Minimum execution time: 6_028_000 picoseconds. + Weight::from_parts(6_828_577, 3736) // Standard Error: 5 - .saturating_add(Weight::from_parts(563, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(559, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -641,67 +639,67 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_979_000 picoseconds. - Weight::from_parts(2_235_236, 0) + // Minimum execution time: 1_938_000 picoseconds. + Weight::from_parts(2_253_391, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(587, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(588, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().writes(1_u64)) } fn seal_value_transferred() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 291_000 picoseconds. - Weight::from_parts(325_000, 0) + // Minimum execution time: 272_000 picoseconds. + Weight::from_parts(316_000, 0) } fn minimum_balance() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_156_000 picoseconds. - Weight::from_parts(1_260_000, 0) + // Minimum execution time: 1_213_000 picoseconds. + Weight::from_parts(1_347_000, 0) } fn seal_return_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 255_000 picoseconds. - Weight::from_parts(287_000, 0) + // Minimum execution time: 253_000 picoseconds. + Weight::from_parts(282_000, 0) } fn seal_call_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 242_000 picoseconds. - Weight::from_parts(282_000, 0) + // Minimum execution time: 238_000 picoseconds. + Weight::from_parts(283_000, 0) } fn seal_gas_limit() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 448_000 picoseconds. - Weight::from_parts(494_000, 0) + // Minimum execution time: 473_000 picoseconds. + Weight::from_parts(556_000, 0) } fn seal_gas_price() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 255_000 picoseconds. - Weight::from_parts(293_000, 0) + // Minimum execution time: 282_000 picoseconds. + Weight::from_parts(334_000, 0) } fn seal_base_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 250_000 picoseconds. - Weight::from_parts(285_000, 0) + // Minimum execution time: 253_000 picoseconds. + Weight::from_parts(307_000, 0) } fn seal_block_number() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 245_000 picoseconds. - Weight::from_parts(309_000, 0) + // Minimum execution time: 293_000 picoseconds. + Weight::from_parts(341_000, 0) } /// Storage: `Session::Validators` (r:1 w:0) /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -709,8 +707,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `141` // Estimated: `1626` - // Minimum execution time: 21_807_000 picoseconds. - Weight::from_parts(22_212_000, 1626) + // Minimum execution time: 21_772_000 picoseconds. + Weight::from_parts(22_449_000, 1626) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Revive::BlockHash` (r:1 w:0) @@ -721,60 +719,60 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `295` // Estimated: `3760` - // Minimum execution time: 8_549_000 picoseconds. - Weight::from_parts(8_828_000, 3760) + // Minimum execution time: 8_286_000 picoseconds. + Weight::from_parts(8_872_000, 3760) .saturating_add(T::DbWeight::get().reads(2_u64)) } fn seal_now() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 264_000 picoseconds. - Weight::from_parts(290_000, 0) + // Minimum execution time: 277_000 picoseconds. + Weight::from_parts(315_000, 0) } fn seal_weight_to_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_595_000 picoseconds. - Weight::from_parts(1_732_000, 0) + // Minimum execution time: 1_612_000 picoseconds. + Weight::from_parts(1_773_000, 0) } /// The range of component `n` is `[0, 1048572]`. fn seal_copy_to_contract(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 444_000 picoseconds. - Weight::from_parts(661_839, 0) + // Minimum execution time: 428_000 picoseconds. + Weight::from_parts(41_583, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(238, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(239, 0).saturating_mul(n.into())) } fn seal_call_data_load() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 263_000 picoseconds. - Weight::from_parts(305_000, 0) + // Minimum execution time: 281_000 picoseconds. + Weight::from_parts(314_000, 0) } /// The range of component `n` is `[0, 1048576]`. fn seal_call_data_copy(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 258_000 picoseconds. - Weight::from_parts(284_000, 0) + // Minimum execution time: 257_000 picoseconds. + Weight::from_parts(222_536, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(150, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(149, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 131072]`. fn seal_return(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 275_000 picoseconds. - Weight::from_parts(557_511, 0) + // Minimum execution time: 286_000 picoseconds. + Weight::from_parts(606_042, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(236, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(235, 0).saturating_mul(n.into())) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -797,10 +795,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `583 + r * (368 ±0)` // Estimated: `4048 + r * (2208 ±0)` - // Minimum execution time: 16_800_000 picoseconds. - Weight::from_parts(17_989_334, 4048) - // Standard Error: 61_844 - .saturating_add(Weight::from_parts(45_142_965, 0).saturating_mul(r.into())) + // Minimum execution time: 16_576_000 picoseconds. + Weight::from_parts(17_695_744, 4048) + // Standard Error: 56_646 + .saturating_add(Weight::from_parts(45_062_655, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(4_u64)) @@ -813,12 +811,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_480_000 picoseconds. - Weight::from_parts(4_551_525, 0) - // Standard Error: 3_383 - .saturating_add(Weight::from_parts(222_280, 0).saturating_mul(t.into())) - // Standard Error: 37 - .saturating_add(Weight::from_parts(1_016, 0).saturating_mul(n.into())) + // Minimum execution time: 4_442_000 picoseconds. + Weight::from_parts(4_542_144, 0) + // Standard Error: 3_564 + .saturating_add(Weight::from_parts(235_217, 0).saturating_mul(t.into())) + // Standard Error: 39 + .saturating_add(Weight::from_parts(1_023, 0).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -826,8 +824,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 7_334_000 picoseconds. - Weight::from_parts(7_739_000, 648) + // Minimum execution time: 7_336_000 picoseconds. + Weight::from_parts(7_748_000, 648) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -836,8 +834,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 41_676_000 picoseconds. - Weight::from_parts(43_124_000, 10658) + // Minimum execution time: 41_574_000 picoseconds. + Weight::from_parts(42_424_000, 10658) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -846,8 +844,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 8_314_000 picoseconds. - Weight::from_parts(8_847_000, 648) + // Minimum execution time: 8_294_000 picoseconds. + Weight::from_parts(8_831_000, 648) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -857,8 +855,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 43_072_000 picoseconds. - Weight::from_parts(44_347_000, 10658) + // Minimum execution time: 43_327_000 picoseconds. + Weight::from_parts(44_273_000, 10658) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -870,12 +868,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + o * (1 ±0)` // Estimated: `247 + o * (1 ±0)` - // Minimum execution time: 8_670_000 picoseconds. - Weight::from_parts(9_444_232, 247) - // Standard Error: 56 - .saturating_add(Weight::from_parts(569, 0).saturating_mul(n.into())) - // Standard Error: 56 - .saturating_add(Weight::from_parts(1_223, 0).saturating_mul(o.into())) + // Minimum execution time: 8_947_000 picoseconds. + Weight::from_parts(9_408_356, 247) + // Standard Error: 62 + .saturating_add(Weight::from_parts(744, 0).saturating_mul(n.into())) + // Standard Error: 62 + .saturating_add(Weight::from_parts(1_420, 0).saturating_mul(o.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(o.into())) @@ -887,10 +885,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_312_000 picoseconds. - Weight::from_parts(9_452_645, 247) - // Standard Error: 68 - .saturating_add(Weight::from_parts(941, 0).saturating_mul(n.into())) + // Minimum execution time: 8_455_000 picoseconds. + Weight::from_parts(9_502_169, 247) + // Standard Error: 71 + .saturating_add(Weight::from_parts(822, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -902,10 +900,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_084_000 picoseconds. - Weight::from_parts(9_143_251, 247) + // Minimum execution time: 8_067_000 picoseconds. + Weight::from_parts(9_250_525, 247) // Standard Error: 84 - .saturating_add(Weight::from_parts(1_703, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_457, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -916,10 +914,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 7_422_000 picoseconds. - Weight::from_parts(8_507_657, 247) - // Standard Error: 78 - .saturating_add(Weight::from_parts(863, 0).saturating_mul(n.into())) + // Minimum execution time: 7_687_000 picoseconds. + Weight::from_parts(8_629_827, 247) + // Standard Error: 73 + .saturating_add(Weight::from_parts(711, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -930,10 +928,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_534_000 picoseconds. - Weight::from_parts(10_112_230, 247) - // Standard Error: 88 - .saturating_add(Weight::from_parts(1_599, 0).saturating_mul(n.into())) + // Minimum execution time: 9_123_000 picoseconds. + Weight::from_parts(10_077_753, 247) + // Standard Error: 82 + .saturating_add(Weight::from_parts(1_971, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -942,36 +940,36 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_569_000 picoseconds. - Weight::from_parts(1_671_000, 0) + // Minimum execution time: 1_597_000 picoseconds. + Weight::from_parts(1_701_000, 0) } fn set_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_901_000 picoseconds. - Weight::from_parts(2_108_000, 0) + // Minimum execution time: 2_027_000 picoseconds. + Weight::from_parts(2_133_000, 0) } fn get_transient_storage_empty() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_574_000 picoseconds. - Weight::from_parts(1_693_000, 0) + // Minimum execution time: 1_597_000 picoseconds. + Weight::from_parts(1_740_000, 0) } fn get_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_731_000 picoseconds. - Weight::from_parts(1_885_000, 0) + // Minimum execution time: 1_852_000 picoseconds. + Weight::from_parts(1_931_000, 0) } fn rollback_transient_storage() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_235_000 picoseconds. - Weight::from_parts(1_357_000, 0) + // Minimum execution time: 1_220_000 picoseconds. + Weight::from_parts(1_340_000, 0) } /// The range of component `n` is `[0, 416]`. /// The range of component `o` is `[0, 416]`. @@ -979,52 +977,50 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_233_000 picoseconds. - Weight::from_parts(2_580_006, 0) - // Standard Error: 17 - .saturating_add(Weight::from_parts(180, 0).saturating_mul(n.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(464, 0).saturating_mul(o.into())) + // Minimum execution time: 2_397_000 picoseconds. + Weight::from_parts(2_745_122, 0) + // Standard Error: 18 + .saturating_add(Weight::from_parts(158, 0).saturating_mul(n.into())) + // Standard Error: 18 + .saturating_add(Weight::from_parts(344, 0).saturating_mul(o.into())) } /// The range of component `n` is `[0, 416]`. fn seal_clear_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_996_000 picoseconds. - Weight::from_parts(2_490_053, 0) - // Standard Error: 25 - .saturating_add(Weight::from_parts(346, 0).saturating_mul(n.into())) + // Minimum execution time: 2_039_000 picoseconds. + Weight::from_parts(2_530_835, 0) + // Standard Error: 27 + .saturating_add(Weight::from_parts(440, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_get_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_958_000 picoseconds. - Weight::from_parts(2_167_207, 0) - // Standard Error: 22 - .saturating_add(Weight::from_parts(455, 0).saturating_mul(n.into())) + // Minimum execution time: 1_993_000 picoseconds. + Weight::from_parts(2_296_784, 0) + // Standard Error: 20 + .saturating_add(Weight::from_parts(303, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_contains_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_771_000 picoseconds. - Weight::from_parts(2_055_166, 0) + // Minimum execution time: 1_857_000 picoseconds. + Weight::from_parts(2_083_817, 0) // Standard Error: 17 - .saturating_add(Weight::from_parts(194, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(227, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. - fn seal_take_transient_storage(n: u32, ) -> Weight { + fn seal_take_transient_storage(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_600_000 picoseconds. - Weight::from_parts(2_869_587, 0) - // Standard Error: 22 - .saturating_add(Weight::from_parts(45, 0).saturating_mul(n.into())) + // Minimum execution time: 2_707_000 picoseconds. + Weight::from_parts(2_996_712, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -1043,14 +1039,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1982` // Estimated: `5447` - // Minimum execution time: 89_339_000 picoseconds. - Weight::from_parts(71_194_785, 5447) - // Standard Error: 177_775 - .saturating_add(Weight::from_parts(18_151_202, 0).saturating_mul(t.into())) - // Standard Error: 177_775 - .saturating_add(Weight::from_parts(25_131_334, 0).saturating_mul(d.into())) + // Minimum execution time: 90_029_000 picoseconds. + Weight::from_parts(71_172_970, 5447) + // Standard Error: 169_069 + .saturating_add(Weight::from_parts(19_082_380, 0).saturating_mul(t.into())) + // Standard Error: 169_069 + .saturating_add(Weight::from_parts(24_814_180, 0).saturating_mul(d.into())) // Standard Error: 0 - .saturating_add(Weight::from_parts(3, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(4, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(t.into()))) @@ -1065,10 +1061,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `366 + d * (212 ±0)` // Estimated: `2021 + d * (2021 ±0)` - // Minimum execution time: 24_467_000 picoseconds. - Weight::from_parts(12_119_417, 2021) - // Standard Error: 40_827 - .saturating_add(Weight::from_parts(13_748_197, 0).saturating_mul(d.into())) + // Minimum execution time: 23_859_000 picoseconds. + Weight::from_parts(12_073_197, 2021) + // Standard Error: 33_668 + .saturating_add(Weight::from_parts(13_492_051, 0).saturating_mul(d.into())) // Standard Error: 0 .saturating_add(Weight::from_parts(394, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(d.into()))) @@ -1085,8 +1081,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1363` // Estimated: `4828` - // Minimum execution time: 32_504_000 picoseconds. - Weight::from_parts(33_826_000, 4828) + // Minimum execution time: 32_493_000 picoseconds. + Weight::from_parts(33_818_000, 4828) .saturating_add(T::DbWeight::get().reads(3_u64)) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) @@ -1104,14 +1100,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1394` // Estimated: `4860` - // Minimum execution time: 147_209_000 picoseconds. - Weight::from_parts(104_165_168, 4860) - // Standard Error: 533_910 - .saturating_add(Weight::from_parts(18_524_068, 0).saturating_mul(t.into())) - // Standard Error: 533_910 - .saturating_add(Weight::from_parts(30_198_831, 0).saturating_mul(d.into())) + // Minimum execution time: 149_647_000 picoseconds. + Weight::from_parts(106_282_483, 4860) + // Standard Error: 579_265 + .saturating_add(Weight::from_parts(19_926_931, 0).saturating_mul(t.into())) + // Standard Error: 579_265 + .saturating_add(Weight::from_parts(29_243_692, 0).saturating_mul(d.into())) // Standard Error: 6 - .saturating_add(Weight::from_parts(4_029, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(4_030, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -1120,18 +1116,18 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_239_000 picoseconds. - Weight::from_parts(13_350_242, 0) + // Minimum execution time: 1_189_000 picoseconds. + Weight::from_parts(13_257_813, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_285, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_284, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn identity(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 740_000 picoseconds. - Weight::from_parts(894_530, 0) + // Minimum execution time: 727_000 picoseconds. + Weight::from_parts(785_643, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(148, 0).saturating_mul(n.into())) } @@ -1140,18 +1136,18 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_145_000 picoseconds. - Weight::from_parts(2_106_751, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(3_789, 0).saturating_mul(n.into())) + // Minimum execution time: 1_386_000 picoseconds. + Weight::from_parts(5_645_651, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(3_766, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_keccak_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_140_000 picoseconds. - Weight::from_parts(12_704_090, 0) + // Minimum execution time: 1_117_000 picoseconds. + Weight::from_parts(12_840_542, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(3_580, 0).saturating_mul(n.into())) } @@ -1160,8 +1156,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_577_000 picoseconds. - Weight::from_parts(11_102_200, 0) + // Minimum execution time: 1_644_000 picoseconds. + Weight::from_parts(12_914_994, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(1_447, 0).saturating_mul(n.into())) } @@ -1170,68 +1166,68 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_643_000 picoseconds. - Weight::from_parts(11_977_668, 0) + // Minimum execution time: 1_645_000 picoseconds. + Weight::from_parts(13_618_462, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_451, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_440, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048321]`. fn seal_sr25519_verify(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 42_844_000 picoseconds. - Weight::from_parts(95_143_512, 0) + // Minimum execution time: 42_663_000 picoseconds. + Weight::from_parts(97_917_401, 0) // Standard Error: 5 - .saturating_add(Weight::from_parts(5_028, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(5_007, 0).saturating_mul(n.into())) } fn ecdsa_recover() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 46_183_000 picoseconds. - Weight::from_parts(47_222_000, 0) + // Minimum execution time: 45_593_000 picoseconds. + Weight::from_parts(46_804_000, 0) } fn bn128_add() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 14_619_000 picoseconds. - Weight::from_parts(15_727_000, 0) + // Minimum execution time: 14_802_000 picoseconds. + Weight::from_parts(15_547_000, 0) } fn bn128_mul() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 980_244_000 picoseconds. - Weight::from_parts(992_300_000, 0) + // Minimum execution time: 979_532_000 picoseconds. + Weight::from_parts(985_691_000, 0) } /// The range of component `n` is `[0, 20]`. fn bn128_pairing(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 829_000 picoseconds. - Weight::from_parts(5_035_974_897, 0) - // Standard Error: 11_531_145 - .saturating_add(Weight::from_parts(6_051_195_715, 0).saturating_mul(n.into())) + // Minimum execution time: 867_000 picoseconds. + Weight::from_parts(5_007_553_671, 0) + // Standard Error: 10_683_043 + .saturating_add(Weight::from_parts(5_954_606_629, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1200]`. fn blake2f(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 936_000 picoseconds. - Weight::from_parts(1_212_971, 0) - // Standard Error: 15 - .saturating_add(Weight::from_parts(28_732, 0).saturating_mul(n.into())) + // Minimum execution time: 1_016_000 picoseconds. + Weight::from_parts(1_223_331, 0) + // Standard Error: 11 + .saturating_add(Weight::from_parts(28_895, 0).saturating_mul(n.into())) } fn seal_ecdsa_to_eth_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_938_000 picoseconds. - Weight::from_parts(13_110_000, 0) + // Minimum execution time: 12_885_000 picoseconds. + Weight::from_parts(13_085_000, 0) } /// Storage: `Revive::CodeInfoOf` (r:2 w:2) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) @@ -1246,10 +1242,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `391 + r * (401 ±0)` // Estimated: `6331 + r * (2129 ±0)` - // Minimum execution time: 14_998_000 picoseconds. - Weight::from_parts(16_168_812, 6331) - // Standard Error: 52_358 - .saturating_add(Weight::from_parts(44_835_387, 0).saturating_mul(r.into())) + // Minimum execution time: 15_000_000 picoseconds. + Weight::from_parts(15_827_097, 6331) + // Standard Error: 54_436 + .saturating_add(Weight::from_parts(45_169_302, 0).saturating_mul(r.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -1261,30 +1257,30 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_228_000 picoseconds. - Weight::from_parts(1_828_284, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(6_919, 0).saturating_mul(r.into())) + // Minimum execution time: 1_281_000 picoseconds. + Weight::from_parts(1_761_142, 0) + // Standard Error: 28 + .saturating_add(Weight::from_parts(7_240, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_500_000 picoseconds. - Weight::from_parts(64_160_653, 0) - // Standard Error: 284 - .saturating_add(Weight::from_parts(130_625, 0).saturating_mul(r.into())) + // Minimum execution time: 12_941_000 picoseconds. + Weight::from_parts(47_985_764, 0) + // Standard Error: 501 + .saturating_add(Weight::from_parts(114_377, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr_empty_loop(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_240_000 picoseconds. - Weight::from_parts(2_791_448, 0) - // Standard Error: 61 - .saturating_add(Weight::from_parts(71_969, 0).saturating_mul(r.into())) + // Minimum execution time: 3_196_000 picoseconds. + Weight::from_parts(2_103_105, 0) + // Standard Error: 57 + .saturating_add(Weight::from_parts(71_986, 0).saturating_mul(r.into())) } /// Storage: `Revive::PristineCode` (r:1 w:0) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -1293,10 +1289,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `457 + n * (1 ±0)` // Estimated: `3922 + n * (1 ±0)` - // Minimum execution time: 14_222_000 picoseconds. - Weight::from_parts(14_034_006, 3922) + // Minimum execution time: 13_694_000 picoseconds. + Weight::from_parts(13_817_772, 3922) // Standard Error: 6 - .saturating_add(Weight::from_parts(852, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(838, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1308,8 +1304,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `316` // Estimated: `6256` - // Minimum execution time: 12_029_000 picoseconds. - Weight::from_parts(12_717_000, 6256) + // Minimum execution time: 12_331_000 picoseconds. + Weight::from_parts(12_562_000, 6256) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -1323,8 +1319,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `439` // Estimated: `6794` - // Minimum execution time: 63_362_000 picoseconds. - Weight::from_parts(65_057_000, 6794) + // Minimum execution time: 62_340_000 picoseconds. + Weight::from_parts(64_756_000, 6794) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -1343,10 +1339,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `2897 + n * (65 ±0)` // Estimated: `6196 + n * (67 ±0)` - // Minimum execution time: 26_280_000 picoseconds. - Weight::from_parts(54_943_766, 6196) - // Standard Error: 4_467 - .saturating_add(Weight::from_parts(405_154, 0).saturating_mul(n.into())) + // Minimum execution time: 26_105_000 picoseconds. + Weight::from_parts(52_946_787, 6196) + // Standard Error: 4_176 + .saturating_add(Weight::from_parts(406_449, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 67).saturating_mul(n.into())) @@ -1366,10 +1362,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `3153 + d * (3 ±0)` // Estimated: `6612 + d * (3 ±0)` - // Minimum execution time: 56_248_000 picoseconds. - Weight::from_parts(58_624_974, 6612) - // Standard Error: 170 - .saturating_add(Weight::from_parts(12_979, 0).saturating_mul(d.into())) + // Minimum execution time: 56_634_000 picoseconds. + Weight::from_parts(58_329_844, 6612) + // Standard Error: 143 + .saturating_add(Weight::from_parts(13_211, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(d.into())) @@ -1387,12 +1383,14 @@ impl WeightInfo for SubstrateWeight { /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `e` is `[0, 100]`. - fn on_finalize_per_event(_e: u32, ) -> Weight { + fn on_finalize_per_event(e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1377` // Estimated: `4842` - // Minimum execution time: 43_263_000 picoseconds. - Weight::from_parts(45_551_022, 4842) + // Minimum execution time: 43_063_000 picoseconds. + Weight::from_parts(45_157_808, 4842) + // Standard Error: 945 + .saturating_add(Weight::from_parts(1_823, 0).saturating_mul(e.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -1413,10 +1411,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `1377` // Estimated: `4842` - // Minimum execution time: 43_003_000 picoseconds. - Weight::from_parts(45_119_285, 4842) - // Standard Error: 10 - .saturating_add(Weight::from_parts(44, 0).saturating_mul(d.into())) + // Minimum execution time: 43_443_000 picoseconds. + Weight::from_parts(45_235_925, 4842) + // Standard Error: 6 + .saturating_add(Weight::from_parts(32, 0).saturating_mul(d.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -1430,8 +1428,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `147` // Estimated: `1632` - // Minimum execution time: 3_137_000 picoseconds. - Weight::from_parts(3_342_000, 1632) + // Minimum execution time: 3_043_000 picoseconds. + Weight::from_parts(3_333_000, 1632) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -1441,10 +1439,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `458 + k * (69 ±0)` // Estimated: `448 + k * (70 ±0)` - // Minimum execution time: 14_338_000 picoseconds. - Weight::from_parts(732_716, 448) - // Standard Error: 1_405 - .saturating_add(Weight::from_parts(1_214_088, 0).saturating_mul(k.into())) + // Minimum execution time: 14_513_000 picoseconds. + Weight::from_parts(14_833_000, 448) + // Standard Error: 919 + .saturating_add(Weight::from_parts(1_192_693, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -1468,10 +1466,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1172 + c * (1 ±0)` // Estimated: `7107 + c * (1 ±0)` - // Minimum execution time: 87_813_000 picoseconds. - Weight::from_parts(124_568_531, 7107) - // Standard Error: 10 - .saturating_add(Weight::from_parts(1_417, 0).saturating_mul(c.into())) + // Minimum execution time: 90_182_000 picoseconds. + Weight::from_parts(127_351_676, 7107) + // Standard Error: 11 + .saturating_add(Weight::from_parts(1_420, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -1493,10 +1491,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1112` // Estimated: `7051` - // Minimum execution time: 83_039_000 picoseconds. - Weight::from_parts(86_967_123, 7051) - // Standard Error: 18 - .saturating_add(Weight::from_parts(7, 0).saturating_mul(c.into())) + // Minimum execution time: 84_859_000 picoseconds. + Weight::from_parts(88_351_086, 7051) + // Standard Error: 17 + .saturating_add(Weight::from_parts(105, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1513,14 +1511,12 @@ impl WeightInfo for () { /// Storage: `System::Account` (r:1 w:1) /// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `Measured`) /// The range of component `b` is `[0, 1]`. - fn basic_block_compilation(b: u32, ) -> Weight { + fn basic_block_compilation(_b: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `4516` // Estimated: `10456` - // Minimum execution time: 126_331_000 picoseconds. - Weight::from_parts(130_785_116, 10456) - // Standard Error: 414_115 - .saturating_add(Weight::from_parts(564_683, 0).saturating_mul(b.into())) + // Minimum execution time: 126_840_000 picoseconds. + Weight::from_parts(131_448_116, 10456) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1544,12 +1540,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6811` - // Minimum execution time: 770_540_000 picoseconds. - Weight::from_parts(38_373_107, 6811) - // Standard Error: 35 - .saturating_add(Weight::from_parts(20_159, 0).saturating_mul(c.into())) - // Standard Error: 28 - .saturating_add(Weight::from_parts(5_201, 0).saturating_mul(i.into())) + // Minimum execution time: 759_864_000 picoseconds. + Weight::from_parts(61_804_765, 6811) + // Standard Error: 32 + .saturating_add(Weight::from_parts(19_995, 0).saturating_mul(c.into())) + // Standard Error: 25 + .saturating_add(Weight::from_parts(5_090, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -1576,14 +1572,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `881` // Estimated: `6821` - // Minimum execution time: 291_223_000 picoseconds. - Weight::from_parts(204_772_655, 6821) - // Standard Error: 23 - .saturating_add(Weight::from_parts(14_892, 0).saturating_mul(c.into())) - // Standard Error: 18 - .saturating_add(Weight::from_parts(402, 0).saturating_mul(i.into())) - // Standard Error: 1_531_657 - .saturating_add(Weight::from_parts(26_253_609, 0).saturating_mul(d.into())) + // Minimum execution time: 296_703_000 picoseconds. + Weight::from_parts(137_114_517, 6821) + // Standard Error: 41 + .saturating_add(Weight::from_parts(15_152, 0).saturating_mul(c.into())) + // Standard Error: 32 + .saturating_add(Weight::from_parts(771, 0).saturating_mul(i.into())) + // Standard Error: 2_686_368 + .saturating_add(Weight::from_parts(45_575_803, 0).saturating_mul(d.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(d.into()))) @@ -1607,10 +1603,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1623` // Estimated: `7552` - // Minimum execution time: 175_097_000 picoseconds. - Weight::from_parts(178_245_989, 7552) - // Standard Error: 10 - .saturating_add(Weight::from_parts(4_291, 0).saturating_mul(i.into())) + // Minimum execution time: 176_685_000 picoseconds. + Weight::from_parts(181_872_822, 7552) + // Standard Error: 11 + .saturating_add(Weight::from_parts(4_273, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -1630,8 +1626,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734` - // Minimum execution time: 89_950_000 picoseconds. - Weight::from_parts(93_653_000, 7734) + // Minimum execution time: 92_245_000 picoseconds. + Weight::from_parts(94_466_000, 7734) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1654,10 +1650,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1794` // Estimated: `7734` - // Minimum execution time: 96_129_000 picoseconds. - Weight::from_parts(100_557_626, 7734) - // Standard Error: 377_039 - .saturating_add(Weight::from_parts(24_138_173, 0).saturating_mul(d.into())) + // Minimum execution time: 97_723_000 picoseconds. + Weight::from_parts(101_795_926, 7734) + // Standard Error: 381_733 + .saturating_add(Weight::from_parts(26_168_673, 0).saturating_mul(d.into())) .saturating_add(RocksDbWeight::get().reads(9_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(d.into()))) @@ -1673,10 +1669,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `303` // Estimated: `3768` - // Minimum execution time: 56_402_000 picoseconds. - Weight::from_parts(48_856_000, 3768) - // Standard Error: 17 - .saturating_add(Weight::from_parts(14_177, 0).saturating_mul(c.into())) + // Minimum execution time: 55_275_000 picoseconds. + Weight::from_parts(45_495_493, 3768) + // Standard Error: 19 + .saturating_add(Weight::from_parts(14_273, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1690,8 +1686,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `458` // Estimated: `3923` - // Minimum execution time: 52_285_000 picoseconds. - Weight::from_parts(53_452_000, 3923) + // Minimum execution time: 52_330_000 picoseconds. + Weight::from_parts(53_410_000, 3923) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1709,8 +1705,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `797` // Estimated: `6737` - // Minimum execution time: 64_792_000 picoseconds. - Weight::from_parts(66_793_000, 6737) + // Minimum execution time: 66_325_000 picoseconds. + Weight::from_parts(67_314_000, 6737) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(6_u64)) } @@ -1722,8 +1718,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `510` // Estimated: `3975` - // Minimum execution time: 54_348_000 picoseconds. - Weight::from_parts(54_970_000, 3975) + // Minimum execution time: 55_199_000 picoseconds. + Weight::from_parts(56_546_000, 3975) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1735,8 +1731,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `93` // Estimated: `3558` - // Minimum execution time: 39_090_000 picoseconds. - Weight::from_parts(40_311_000, 3558) + // Minimum execution time: 39_793_000 picoseconds. + Weight::from_parts(40_493_000, 3558) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1748,8 +1744,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `145` // Estimated: `3610` - // Minimum execution time: 13_141_000 picoseconds. - Weight::from_parts(13_843_000, 3610) + // Minimum execution time: 13_187_000 picoseconds. + Weight::from_parts(13_527_000, 3610) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// The range of component `r` is `[0, 1600]`. @@ -1757,24 +1753,24 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_540_000 picoseconds. - Weight::from_parts(8_693_337, 0) - // Standard Error: 204 - .saturating_add(Weight::from_parts(169_076, 0).saturating_mul(r.into())) + // Minimum execution time: 7_332_000 picoseconds. + Weight::from_parts(8_687_708, 0) + // Standard Error: 209 + .saturating_add(Weight::from_parts(173_436, 0).saturating_mul(r.into())) } fn seal_caller() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 333_000 picoseconds. - Weight::from_parts(397_000, 0) + // Minimum execution time: 338_000 picoseconds. + Weight::from_parts(367_000, 0) } fn seal_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 321_000 picoseconds. - Weight::from_parts(347_000, 0) + // Minimum execution time: 328_000 picoseconds. + Weight::from_parts(356_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -1782,8 +1778,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `567` // Estimated: `4032` - // Minimum execution time: 8_337_000 picoseconds. - Weight::from_parts(8_794_000, 4032) + // Minimum execution time: 8_199_000 picoseconds. + Weight::from_parts(8_624_000, 4032) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) @@ -1792,16 +1788,16 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `403` // Estimated: `3868` - // Minimum execution time: 9_365_000 picoseconds. - Weight::from_parts(9_849_000, 3868) + // Minimum execution time: 9_064_000 picoseconds. + Weight::from_parts(9_747_000, 3868) .saturating_add(RocksDbWeight::get().reads(1_u64)) } fn own_code_hash() -> Weight { // Proof Size summary in bytes: // Measured: `366` // Estimated: `0` - // Minimum execution time: 7_147_000 picoseconds. - Weight::from_parts(7_593_000, 0) + // Minimum execution time: 6_919_000 picoseconds. + Weight::from_parts(7_280_000, 0) } /// Storage: `Revive::AccountInfoOf` (r:1 w:0) /// Proof: `Revive::AccountInfoOf` (`max_values`: None, `max_size`: Some(247), added: 2722, mode: `Measured`) @@ -1811,51 +1807,51 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `475` // Estimated: `3940` - // Minimum execution time: 12_997_000 picoseconds. - Weight::from_parts(13_301_000, 3940) + // Minimum execution time: 12_795_000 picoseconds. + Weight::from_parts(13_452_000, 3940) .saturating_add(RocksDbWeight::get().reads(2_u64)) } fn caller_is_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_035_000 picoseconds. - Weight::from_parts(1_137_000, 0) + // Minimum execution time: 1_037_000 picoseconds. + Weight::from_parts(1_126_000, 0) } fn caller_is_root() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_036_000 picoseconds. - Weight::from_parts(1_120_000, 0) + // Minimum execution time: 1_044_000 picoseconds. + Weight::from_parts(1_156_000, 0) } fn seal_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 308_000 picoseconds. - Weight::from_parts(336_000, 0) + // Minimum execution time: 299_000 picoseconds. + Weight::from_parts(359_000, 0) } fn weight_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 960_000 picoseconds. - Weight::from_parts(1_043_000, 0) + // Minimum execution time: 1_021_000 picoseconds. + Weight::from_parts(1_120_000, 0) } fn seal_ref_time_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 267_000 picoseconds. - Weight::from_parts(297_000, 0) + // Minimum execution time: 273_000 picoseconds. + Weight::from_parts(309_000, 0) } fn seal_balance() -> Weight { // Proof Size summary in bytes: // Measured: `469` // Estimated: `0` - // Minimum execution time: 12_434_000 picoseconds. - Weight::from_parts(12_790_000, 0) + // Minimum execution time: 12_068_000 picoseconds. + Weight::from_parts(12_792_000, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -1867,8 +1863,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `791` // Estimated: `4256` - // Minimum execution time: 18_486_000 picoseconds. - Weight::from_parts(19_245_000, 4256) + // Minimum execution time: 18_572_000 picoseconds. + Weight::from_parts(19_484_000, 4256) .saturating_add(RocksDbWeight::get().reads(3_u64)) } /// Storage: `Revive::ImmutableDataOf` (r:1 w:0) @@ -1878,10 +1874,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `271 + n * (1 ±0)` // Estimated: `3736 + n * (1 ±0)` - // Minimum execution time: 6_149_000 picoseconds. - Weight::from_parts(6_874_947, 3736) + // Minimum execution time: 6_028_000 picoseconds. + Weight::from_parts(6_828_577, 3736) // Standard Error: 5 - .saturating_add(Weight::from_parts(563, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(559, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1892,67 +1888,67 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_979_000 picoseconds. - Weight::from_parts(2_235_236, 0) + // Minimum execution time: 1_938_000 picoseconds. + Weight::from_parts(2_253_391, 0) // Standard Error: 2 - .saturating_add(Weight::from_parts(587, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(588, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().writes(1_u64)) } fn seal_value_transferred() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 291_000 picoseconds. - Weight::from_parts(325_000, 0) + // Minimum execution time: 272_000 picoseconds. + Weight::from_parts(316_000, 0) } fn minimum_balance() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_156_000 picoseconds. - Weight::from_parts(1_260_000, 0) + // Minimum execution time: 1_213_000 picoseconds. + Weight::from_parts(1_347_000, 0) } fn seal_return_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 255_000 picoseconds. - Weight::from_parts(287_000, 0) + // Minimum execution time: 253_000 picoseconds. + Weight::from_parts(282_000, 0) } fn seal_call_data_size() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 242_000 picoseconds. - Weight::from_parts(282_000, 0) + // Minimum execution time: 238_000 picoseconds. + Weight::from_parts(283_000, 0) } fn seal_gas_limit() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 448_000 picoseconds. - Weight::from_parts(494_000, 0) + // Minimum execution time: 473_000 picoseconds. + Weight::from_parts(556_000, 0) } fn seal_gas_price() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 255_000 picoseconds. - Weight::from_parts(293_000, 0) + // Minimum execution time: 282_000 picoseconds. + Weight::from_parts(334_000, 0) } fn seal_base_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 250_000 picoseconds. - Weight::from_parts(285_000, 0) + // Minimum execution time: 253_000 picoseconds. + Weight::from_parts(307_000, 0) } fn seal_block_number() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 245_000 picoseconds. - Weight::from_parts(309_000, 0) + // Minimum execution time: 293_000 picoseconds. + Weight::from_parts(341_000, 0) } /// Storage: `Session::Validators` (r:1 w:0) /// Proof: `Session::Validators` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) @@ -1960,8 +1956,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `141` // Estimated: `1626` - // Minimum execution time: 21_807_000 picoseconds. - Weight::from_parts(22_212_000, 1626) + // Minimum execution time: 21_772_000 picoseconds. + Weight::from_parts(22_449_000, 1626) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Revive::BlockHash` (r:1 w:0) @@ -1972,60 +1968,60 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `295` // Estimated: `3760` - // Minimum execution time: 8_549_000 picoseconds. - Weight::from_parts(8_828_000, 3760) + // Minimum execution time: 8_286_000 picoseconds. + Weight::from_parts(8_872_000, 3760) .saturating_add(RocksDbWeight::get().reads(2_u64)) } fn seal_now() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 264_000 picoseconds. - Weight::from_parts(290_000, 0) + // Minimum execution time: 277_000 picoseconds. + Weight::from_parts(315_000, 0) } fn seal_weight_to_fee() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_595_000 picoseconds. - Weight::from_parts(1_732_000, 0) + // Minimum execution time: 1_612_000 picoseconds. + Weight::from_parts(1_773_000, 0) } /// The range of component `n` is `[0, 1048572]`. fn seal_copy_to_contract(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 444_000 picoseconds. - Weight::from_parts(661_839, 0) + // Minimum execution time: 428_000 picoseconds. + Weight::from_parts(41_583, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(238, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(239, 0).saturating_mul(n.into())) } fn seal_call_data_load() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 263_000 picoseconds. - Weight::from_parts(305_000, 0) + // Minimum execution time: 281_000 picoseconds. + Weight::from_parts(314_000, 0) } /// The range of component `n` is `[0, 1048576]`. fn seal_call_data_copy(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 258_000 picoseconds. - Weight::from_parts(284_000, 0) + // Minimum execution time: 257_000 picoseconds. + Weight::from_parts(222_536, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(150, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(149, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 131072]`. fn seal_return(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 275_000 picoseconds. - Weight::from_parts(557_511, 0) + // Minimum execution time: 286_000 picoseconds. + Weight::from_parts(606_042, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(236, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(235, 0).saturating_mul(n.into())) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -2048,10 +2044,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `583 + r * (368 ±0)` // Estimated: `4048 + r * (2208 ±0)` - // Minimum execution time: 16_800_000 picoseconds. - Weight::from_parts(17_989_334, 4048) - // Standard Error: 61_844 - .saturating_add(Weight::from_parts(45_142_965, 0).saturating_mul(r.into())) + // Minimum execution time: 16_576_000 picoseconds. + Weight::from_parts(17_695_744, 4048) + // Standard Error: 56_646 + .saturating_add(Weight::from_parts(45_062_655, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(4_u64)) @@ -2064,12 +2060,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_480_000 picoseconds. - Weight::from_parts(4_551_525, 0) - // Standard Error: 3_383 - .saturating_add(Weight::from_parts(222_280, 0).saturating_mul(t.into())) - // Standard Error: 37 - .saturating_add(Weight::from_parts(1_016, 0).saturating_mul(n.into())) + // Minimum execution time: 4_442_000 picoseconds. + Weight::from_parts(4_542_144, 0) + // Standard Error: 3_564 + .saturating_add(Weight::from_parts(235_217, 0).saturating_mul(t.into())) + // Standard Error: 39 + .saturating_add(Weight::from_parts(1_023, 0).saturating_mul(n.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -2077,8 +2073,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 7_334_000 picoseconds. - Weight::from_parts(7_739_000, 648) + // Minimum execution time: 7_336_000 picoseconds. + Weight::from_parts(7_748_000, 648) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -2087,8 +2083,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 41_676_000 picoseconds. - Weight::from_parts(43_124_000, 10658) + // Minimum execution time: 41_574_000 picoseconds. + Weight::from_parts(42_424_000, 10658) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -2097,8 +2093,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `648` // Estimated: `648` - // Minimum execution time: 8_314_000 picoseconds. - Weight::from_parts(8_847_000, 648) + // Minimum execution time: 8_294_000 picoseconds. + Weight::from_parts(8_831_000, 648) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2108,8 +2104,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `10658` // Estimated: `10658` - // Minimum execution time: 43_072_000 picoseconds. - Weight::from_parts(44_347_000, 10658) + // Minimum execution time: 43_327_000 picoseconds. + Weight::from_parts(44_273_000, 10658) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -2121,12 +2117,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + o * (1 ±0)` // Estimated: `247 + o * (1 ±0)` - // Minimum execution time: 8_670_000 picoseconds. - Weight::from_parts(9_444_232, 247) - // Standard Error: 56 - .saturating_add(Weight::from_parts(569, 0).saturating_mul(n.into())) - // Standard Error: 56 - .saturating_add(Weight::from_parts(1_223, 0).saturating_mul(o.into())) + // Minimum execution time: 8_947_000 picoseconds. + Weight::from_parts(9_408_356, 247) + // Standard Error: 62 + .saturating_add(Weight::from_parts(744, 0).saturating_mul(n.into())) + // Standard Error: 62 + .saturating_add(Weight::from_parts(1_420, 0).saturating_mul(o.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(o.into())) @@ -2138,10 +2134,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_312_000 picoseconds. - Weight::from_parts(9_452_645, 247) - // Standard Error: 68 - .saturating_add(Weight::from_parts(941, 0).saturating_mul(n.into())) + // Minimum execution time: 8_455_000 picoseconds. + Weight::from_parts(9_502_169, 247) + // Standard Error: 71 + .saturating_add(Weight::from_parts(822, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -2153,10 +2149,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_084_000 picoseconds. - Weight::from_parts(9_143_251, 247) + // Minimum execution time: 8_067_000 picoseconds. + Weight::from_parts(9_250_525, 247) // Standard Error: 84 - .saturating_add(Weight::from_parts(1_703, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_457, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -2167,10 +2163,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 7_422_000 picoseconds. - Weight::from_parts(8_507_657, 247) - // Standard Error: 78 - .saturating_add(Weight::from_parts(863, 0).saturating_mul(n.into())) + // Minimum execution time: 7_687_000 picoseconds. + Weight::from_parts(8_629_827, 247) + // Standard Error: 73 + .saturating_add(Weight::from_parts(711, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -2181,10 +2177,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `247 + n * (1 ±0)` - // Minimum execution time: 8_534_000 picoseconds. - Weight::from_parts(10_112_230, 247) - // Standard Error: 88 - .saturating_add(Weight::from_parts(1_599, 0).saturating_mul(n.into())) + // Minimum execution time: 9_123_000 picoseconds. + Weight::from_parts(10_077_753, 247) + // Standard Error: 82 + .saturating_add(Weight::from_parts(1_971, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -2193,36 +2189,36 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_569_000 picoseconds. - Weight::from_parts(1_671_000, 0) + // Minimum execution time: 1_597_000 picoseconds. + Weight::from_parts(1_701_000, 0) } fn set_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_901_000 picoseconds. - Weight::from_parts(2_108_000, 0) + // Minimum execution time: 2_027_000 picoseconds. + Weight::from_parts(2_133_000, 0) } fn get_transient_storage_empty() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_574_000 picoseconds. - Weight::from_parts(1_693_000, 0) + // Minimum execution time: 1_597_000 picoseconds. + Weight::from_parts(1_740_000, 0) } fn get_transient_storage_full() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_731_000 picoseconds. - Weight::from_parts(1_885_000, 0) + // Minimum execution time: 1_852_000 picoseconds. + Weight::from_parts(1_931_000, 0) } fn rollback_transient_storage() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_235_000 picoseconds. - Weight::from_parts(1_357_000, 0) + // Minimum execution time: 1_220_000 picoseconds. + Weight::from_parts(1_340_000, 0) } /// The range of component `n` is `[0, 416]`. /// The range of component `o` is `[0, 416]`. @@ -2230,52 +2226,50 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_233_000 picoseconds. - Weight::from_parts(2_580_006, 0) - // Standard Error: 17 - .saturating_add(Weight::from_parts(180, 0).saturating_mul(n.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(464, 0).saturating_mul(o.into())) + // Minimum execution time: 2_397_000 picoseconds. + Weight::from_parts(2_745_122, 0) + // Standard Error: 18 + .saturating_add(Weight::from_parts(158, 0).saturating_mul(n.into())) + // Standard Error: 18 + .saturating_add(Weight::from_parts(344, 0).saturating_mul(o.into())) } /// The range of component `n` is `[0, 416]`. fn seal_clear_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_996_000 picoseconds. - Weight::from_parts(2_490_053, 0) - // Standard Error: 25 - .saturating_add(Weight::from_parts(346, 0).saturating_mul(n.into())) + // Minimum execution time: 2_039_000 picoseconds. + Weight::from_parts(2_530_835, 0) + // Standard Error: 27 + .saturating_add(Weight::from_parts(440, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_get_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_958_000 picoseconds. - Weight::from_parts(2_167_207, 0) - // Standard Error: 22 - .saturating_add(Weight::from_parts(455, 0).saturating_mul(n.into())) + // Minimum execution time: 1_993_000 picoseconds. + Weight::from_parts(2_296_784, 0) + // Standard Error: 20 + .saturating_add(Weight::from_parts(303, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. fn seal_contains_transient_storage(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_771_000 picoseconds. - Weight::from_parts(2_055_166, 0) + // Minimum execution time: 1_857_000 picoseconds. + Weight::from_parts(2_083_817, 0) // Standard Error: 17 - .saturating_add(Weight::from_parts(194, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(227, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 416]`. - fn seal_take_transient_storage(n: u32, ) -> Weight { + fn seal_take_transient_storage(_n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_600_000 picoseconds. - Weight::from_parts(2_869_587, 0) - // Standard Error: 22 - .saturating_add(Weight::from_parts(45, 0).saturating_mul(n.into())) + // Minimum execution time: 2_707_000 picoseconds. + Weight::from_parts(2_996_712, 0) } /// Storage: `Revive::OriginalAccount` (r:1 w:0) /// Proof: `Revive::OriginalAccount` (`max_values`: None, `max_size`: Some(52), added: 2527, mode: `Measured`) @@ -2294,14 +2288,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1982` // Estimated: `5447` - // Minimum execution time: 89_339_000 picoseconds. - Weight::from_parts(71_194_785, 5447) - // Standard Error: 177_775 - .saturating_add(Weight::from_parts(18_151_202, 0).saturating_mul(t.into())) - // Standard Error: 177_775 - .saturating_add(Weight::from_parts(25_131_334, 0).saturating_mul(d.into())) + // Minimum execution time: 90_029_000 picoseconds. + Weight::from_parts(71_172_970, 5447) + // Standard Error: 169_069 + .saturating_add(Weight::from_parts(19_082_380, 0).saturating_mul(t.into())) + // Standard Error: 169_069 + .saturating_add(Weight::from_parts(24_814_180, 0).saturating_mul(d.into())) // Standard Error: 0 - .saturating_add(Weight::from_parts(3, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(4, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(t.into()))) @@ -2316,10 +2310,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `366 + d * (212 ±0)` // Estimated: `2021 + d * (2021 ±0)` - // Minimum execution time: 24_467_000 picoseconds. - Weight::from_parts(12_119_417, 2021) - // Standard Error: 40_827 - .saturating_add(Weight::from_parts(13_748_197, 0).saturating_mul(d.into())) + // Minimum execution time: 23_859_000 picoseconds. + Weight::from_parts(12_073_197, 2021) + // Standard Error: 33_668 + .saturating_add(Weight::from_parts(13_492_051, 0).saturating_mul(d.into())) // Standard Error: 0 .saturating_add(Weight::from_parts(394, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(d.into()))) @@ -2336,8 +2330,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1363` // Estimated: `4828` - // Minimum execution time: 32_504_000 picoseconds. - Weight::from_parts(33_826_000, 4828) + // Minimum execution time: 32_493_000 picoseconds. + Weight::from_parts(33_818_000, 4828) .saturating_add(RocksDbWeight::get().reads(3_u64)) } /// Storage: `Revive::CodeInfoOf` (r:1 w:1) @@ -2355,14 +2349,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1394` // Estimated: `4860` - // Minimum execution time: 147_209_000 picoseconds. - Weight::from_parts(104_165_168, 4860) - // Standard Error: 533_910 - .saturating_add(Weight::from_parts(18_524_068, 0).saturating_mul(t.into())) - // Standard Error: 533_910 - .saturating_add(Weight::from_parts(30_198_831, 0).saturating_mul(d.into())) + // Minimum execution time: 149_647_000 picoseconds. + Weight::from_parts(106_282_483, 4860) + // Standard Error: 579_265 + .saturating_add(Weight::from_parts(19_926_931, 0).saturating_mul(t.into())) + // Standard Error: 579_265 + .saturating_add(Weight::from_parts(29_243_692, 0).saturating_mul(d.into())) // Standard Error: 6 - .saturating_add(Weight::from_parts(4_029, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(4_030, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -2371,18 +2365,18 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_239_000 picoseconds. - Weight::from_parts(13_350_242, 0) + // Minimum execution time: 1_189_000 picoseconds. + Weight::from_parts(13_257_813, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_285, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_284, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn identity(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 740_000 picoseconds. - Weight::from_parts(894_530, 0) + // Minimum execution time: 727_000 picoseconds. + Weight::from_parts(785_643, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(148, 0).saturating_mul(n.into())) } @@ -2391,18 +2385,18 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_145_000 picoseconds. - Weight::from_parts(2_106_751, 0) - // Standard Error: 1 - .saturating_add(Weight::from_parts(3_789, 0).saturating_mul(n.into())) + // Minimum execution time: 1_386_000 picoseconds. + Weight::from_parts(5_645_651, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(3_766, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_keccak_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_140_000 picoseconds. - Weight::from_parts(12_704_090, 0) + // Minimum execution time: 1_117_000 picoseconds. + Weight::from_parts(12_840_542, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(3_580, 0).saturating_mul(n.into())) } @@ -2411,8 +2405,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_577_000 picoseconds. - Weight::from_parts(11_102_200, 0) + // Minimum execution time: 1_644_000 picoseconds. + Weight::from_parts(12_914_994, 0) // Standard Error: 0 .saturating_add(Weight::from_parts(1_447, 0).saturating_mul(n.into())) } @@ -2421,68 +2415,68 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_643_000 picoseconds. - Weight::from_parts(11_977_668, 0) + // Minimum execution time: 1_645_000 picoseconds. + Weight::from_parts(13_618_462, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_451, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_440, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048321]`. fn seal_sr25519_verify(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 42_844_000 picoseconds. - Weight::from_parts(95_143_512, 0) + // Minimum execution time: 42_663_000 picoseconds. + Weight::from_parts(97_917_401, 0) // Standard Error: 5 - .saturating_add(Weight::from_parts(5_028, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(5_007, 0).saturating_mul(n.into())) } fn ecdsa_recover() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 46_183_000 picoseconds. - Weight::from_parts(47_222_000, 0) + // Minimum execution time: 45_593_000 picoseconds. + Weight::from_parts(46_804_000, 0) } fn bn128_add() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 14_619_000 picoseconds. - Weight::from_parts(15_727_000, 0) + // Minimum execution time: 14_802_000 picoseconds. + Weight::from_parts(15_547_000, 0) } fn bn128_mul() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 980_244_000 picoseconds. - Weight::from_parts(992_300_000, 0) + // Minimum execution time: 979_532_000 picoseconds. + Weight::from_parts(985_691_000, 0) } /// The range of component `n` is `[0, 20]`. fn bn128_pairing(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 829_000 picoseconds. - Weight::from_parts(5_035_974_897, 0) - // Standard Error: 11_531_145 - .saturating_add(Weight::from_parts(6_051_195_715, 0).saturating_mul(n.into())) + // Minimum execution time: 867_000 picoseconds. + Weight::from_parts(5_007_553_671, 0) + // Standard Error: 10_683_043 + .saturating_add(Weight::from_parts(5_954_606_629, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1200]`. fn blake2f(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 936_000 picoseconds. - Weight::from_parts(1_212_971, 0) - // Standard Error: 15 - .saturating_add(Weight::from_parts(28_732, 0).saturating_mul(n.into())) + // Minimum execution time: 1_016_000 picoseconds. + Weight::from_parts(1_223_331, 0) + // Standard Error: 11 + .saturating_add(Weight::from_parts(28_895, 0).saturating_mul(n.into())) } fn seal_ecdsa_to_eth_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_938_000 picoseconds. - Weight::from_parts(13_110_000, 0) + // Minimum execution time: 12_885_000 picoseconds. + Weight::from_parts(13_085_000, 0) } /// Storage: `Revive::CodeInfoOf` (r:2 w:2) /// Proof: `Revive::CodeInfoOf` (`max_values`: None, `max_size`: Some(97), added: 2572, mode: `Measured`) @@ -2497,10 +2491,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `391 + r * (401 ±0)` // Estimated: `6331 + r * (2129 ±0)` - // Minimum execution time: 14_998_000 picoseconds. - Weight::from_parts(16_168_812, 6331) - // Standard Error: 52_358 - .saturating_add(Weight::from_parts(44_835_387, 0).saturating_mul(r.into())) + // Minimum execution time: 15_000_000 picoseconds. + Weight::from_parts(15_827_097, 6331) + // Standard Error: 54_436 + .saturating_add(Weight::from_parts(45_169_302, 0).saturating_mul(r.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((2_u64).saturating_mul(r.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -2512,30 +2506,30 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_228_000 picoseconds. - Weight::from_parts(1_828_284, 0) - // Standard Error: 19 - .saturating_add(Weight::from_parts(6_919, 0).saturating_mul(r.into())) + // Minimum execution time: 1_281_000 picoseconds. + Weight::from_parts(1_761_142, 0) + // Standard Error: 28 + .saturating_add(Weight::from_parts(7_240, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 12_500_000 picoseconds. - Weight::from_parts(64_160_653, 0) - // Standard Error: 284 - .saturating_add(Weight::from_parts(130_625, 0).saturating_mul(r.into())) + // Minimum execution time: 12_941_000 picoseconds. + Weight::from_parts(47_985_764, 0) + // Standard Error: 501 + .saturating_add(Weight::from_parts(114_377, 0).saturating_mul(r.into())) } /// The range of component `r` is `[0, 10000]`. fn instr_empty_loop(r: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_240_000 picoseconds. - Weight::from_parts(2_791_448, 0) - // Standard Error: 61 - .saturating_add(Weight::from_parts(71_969, 0).saturating_mul(r.into())) + // Minimum execution time: 3_196_000 picoseconds. + Weight::from_parts(2_103_105, 0) + // Standard Error: 57 + .saturating_add(Weight::from_parts(71_986, 0).saturating_mul(r.into())) } /// Storage: `Revive::PristineCode` (r:1 w:0) /// Proof: `Revive::PristineCode` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -2544,10 +2538,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `457 + n * (1 ±0)` // Estimated: `3922 + n * (1 ±0)` - // Minimum execution time: 14_222_000 picoseconds. - Weight::from_parts(14_034_006, 3922) + // Minimum execution time: 13_694_000 picoseconds. + Weight::from_parts(13_817_772, 3922) // Standard Error: 6 - .saturating_add(Weight::from_parts(852, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(838, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -2559,8 +2553,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `316` // Estimated: `6256` - // Minimum execution time: 12_029_000 picoseconds. - Weight::from_parts(12_717_000, 6256) + // Minimum execution time: 12_331_000 picoseconds. + Weight::from_parts(12_562_000, 6256) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -2574,8 +2568,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `439` // Estimated: `6794` - // Minimum execution time: 63_362_000 picoseconds. - Weight::from_parts(65_057_000, 6794) + // Minimum execution time: 62_340_000 picoseconds. + Weight::from_parts(64_756_000, 6794) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2594,10 +2588,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `2897 + n * (65 ±0)` // Estimated: `6196 + n * (67 ±0)` - // Minimum execution time: 26_280_000 picoseconds. - Weight::from_parts(54_943_766, 6196) - // Standard Error: 4_467 - .saturating_add(Weight::from_parts(405_154, 0).saturating_mul(n.into())) + // Minimum execution time: 26_105_000 picoseconds. + Weight::from_parts(52_946_787, 6196) + // Standard Error: 4_176 + .saturating_add(Weight::from_parts(406_449, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 67).saturating_mul(n.into())) @@ -2617,10 +2611,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `3153 + d * (3 ±0)` // Estimated: `6612 + d * (3 ±0)` - // Minimum execution time: 56_248_000 picoseconds. - Weight::from_parts(58_624_974, 6612) - // Standard Error: 170 - .saturating_add(Weight::from_parts(12_979, 0).saturating_mul(d.into())) + // Minimum execution time: 56_634_000 picoseconds. + Weight::from_parts(58_329_844, 6612) + // Standard Error: 143 + .saturating_add(Weight::from_parts(13_211, 0).saturating_mul(d.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) .saturating_add(Weight::from_parts(0, 3).saturating_mul(d.into())) @@ -2638,12 +2632,14 @@ impl WeightInfo for () { /// Storage: `Revive::ReceiptInfoData` (r:0 w:1) /// Proof: `Revive::ReceiptInfoData` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// The range of component `e` is `[0, 100]`. - fn on_finalize_per_event(_e: u32, ) -> Weight { + fn on_finalize_per_event(e: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `1377` // Estimated: `4842` - // Minimum execution time: 43_263_000 picoseconds. - Weight::from_parts(45_551_022, 4842) + // Minimum execution time: 43_063_000 picoseconds. + Weight::from_parts(45_157_808, 4842) + // Standard Error: 945 + .saturating_add(Weight::from_parts(1_823, 0).saturating_mul(e.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } @@ -2664,10 +2660,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `1377` // Estimated: `4842` - // Minimum execution time: 43_003_000 picoseconds. - Weight::from_parts(45_119_285, 4842) - // Standard Error: 10 - .saturating_add(Weight::from_parts(44, 0).saturating_mul(d.into())) + // Minimum execution time: 43_443_000 picoseconds. + Weight::from_parts(45_235_925, 4842) + // Standard Error: 6 + .saturating_add(Weight::from_parts(32, 0).saturating_mul(d.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } From a44a155b9f60e87bcfcbff9ce88c28aa5bb99463 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 25 Sep 2025 10:44:55 +0000 Subject: [PATCH 199/273] revive: Ensure the IR forms fallback to index 1 Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 21 ++++++++++++++++++- .../frame/revive/src/tests/block_hash.rs | 10 ++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 1aaeb7813684e..0d75dc5961b16 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -163,7 +163,7 @@ pub struct IncrementalHashBuilder { /// The intermediate representation of the [`IncrementalHashBuilder`] that can be placed into the /// pallets storage. This contains the minimum amount of data that is needed to serialize /// and deserialize the incremental hash builder. -#[derive(Encode, Decode, scale_info::TypeInfo, Clone, PartialEq, Eq, Debug, Default)] +#[derive(Encode, Decode, scale_info::TypeInfo, Clone, PartialEq, Eq, Debug)] pub struct IncrementalHashBuilderIR { /// The nibbles of the builder. pub key: Vec, @@ -189,6 +189,25 @@ pub struct IncrementalHashBuilderIR { pub index: u64, } +impl Default for IncrementalHashBuilderIR { + fn default() -> Self { + Self { + // First deserialization time from the pallet storage, is expected + // to contain index 1. + index: 1, + key: Vec::new(), + value_type: 0, + builder_value: Vec::new(), + stack: Vec::new(), + state_masks: Vec::new(), + tree_masks: Vec::new(), + hash_masks: Vec::new(), + stored_in_database: false, + rlp_buf: Vec::new(), + } + } +} + impl IncrementalHashBuilder { /// Construct the hash builder from the first value. pub fn new() -> Self { diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index e69b9061833cf..c6a5e27a13ae4 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -21,8 +21,8 @@ use crate::{ evm::{Block, TransactionSigned}, test_utils::{builder::Contract, deposit_limit, ALICE}, tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeOrigin, Test}, - BalanceWithDust, Code, Config, EthBlock, EthBlockBuilderIR, EthereumBlock, - EthereumBlockBuilder, Pallet, ReceiptGasInfo, ReceiptInfoData, + BalanceWithDust, Code, Config, EthBlock, EthBlockBuilderFirstValues, EthBlockBuilderIR, + EthereumBlock, EthereumBlockBuilder, Pallet, ReceiptGasInfo, ReceiptInfoData, }; use frame_support::traits::{fungible::Mutate, Hooks}; @@ -86,7 +86,11 @@ fn transactions_are_captured() { // Double check the trie root hash. let mut builder = EthereumBlockBuilder::from_ir(block_builder); - builder.transaction_root_builder.load_first_value(expected_payloads[0].clone()); + + let maybe_first_values = EthBlockBuilderFirstValues::::take(); + if let Some(values) = maybe_first_values { + builder.load_first_values(Some(values)); + } let tx_root = builder.transaction_root_builder.finish(); assert_eq!(tx_root, expected_tx_root.0.into()); From dd91bef82fe8d9a7262ec3cba45e3fcd5e468562 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 25 Sep 2025 10:53:29 +0000 Subject: [PATCH 200/273] revive/tests: Move away from hardcoded gas and use expected values Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/tests/block_hash.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index c6a5e27a13ae4..6321be4e01c5e 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -146,7 +146,9 @@ fn events_are_captured() { TransactionSigned::Transaction4844Signed(Default::default()).signed_payload(), ]; let expected_tx_root = Block::compute_trie_root(&expected_payloads); - const EXPECTED_GAS: u64 = 7735804; + + let block_builder = EthBlockBuilderIR::::get(); + let gas_used = block_builder.gas_info[0].gas_used; let logs = vec![AlloyLog::new_unchecked( contract.0.into(), @@ -155,7 +157,7 @@ fn events_are_captured() { )]; let receipt = alloy_consensus::Receipt { status: true.into(), - cumulative_gas_used: EXPECTED_GAS, + cumulative_gas_used: gas_used.as_u64(), logs, }; @@ -168,7 +170,6 @@ fn events_are_captured() { let block_builder = EthBlockBuilderIR::::get(); // 1 transaction captured. assert_eq!(block_builder.gas_info.len(), 1); - assert_eq!(block_builder.gas_info, vec![ReceiptGasInfo { gas_used: EXPECTED_GAS.into() }]); let mut builder = EthereumBlockBuilder::from_ir(block_builder); builder.transaction_root_builder.load_first_value(expected_payloads[0].clone()); From 5bd73cd89ebac7a5f28f483ffeafee0a1fe725d2 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 25 Sep 2025 11:13:45 +0000 Subject: [PATCH 201/273] revive: Add more documentation Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 68 ++++++++++++++++---- 1 file changed, 57 insertions(+), 11 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 0d75dc5961b16..9aaccc2eacea0 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -516,7 +516,45 @@ impl Default for EthereumBlockBuilderIR { } } -/// Ethereum block builder. +/// Ethereum block builder designed to incrementally build the transaction and receipt trie roots. +/// +/// This builder is optimized to minimize memory usage and pallet storage by leveraging the internal +/// structure of the Ethereum trie and the RLP encoding of receipts. +/// +/// The builder relies on the pallet storage to store the first transaction and receipt. This +/// ensures we are reading and writing a minimal amount of data to the pallet storage. For example, +/// if the block has less than 127 transactions, for each transaction we would have otherwise +/// serialized and deserialized the first transaction bytes. +/// +/// # Example +/// +/// ```ignore +/// // Get the intermediate representation from pallet storage. +/// let ir = EthBlockBuilderIR::::get(); +/// // Convert from the serialized from into the builder object. +/// let mut block_builder = EthereumBlockBuilder::from_ir(ir); +/// +/// for tx in transactions { +/// // Ensure the first transaction is loaded. +/// if block_builder.should_load_first_values() { +/// let values = EthBlockBuilderFirstValues::::take(); +/// block_builder.load_first_values(values); +/// } +/// +/// // Process the transaction. +/// if let Some(first_values) = block_builder.process_transaction(..) { +/// // Store the first transaction and receipt in pallet storage. +/// EthBlockBuilderFirstValues::::put(first_values); +/// } +/// } +/// +/// // Either the value was previously consumed, or the block has less than 127 transactions. +/// let values = EthBlockBuilderFirstValues::::take(); +/// block_builder.load_first_values(values); +/// +/// // Build the block. +/// let (block, gas_info) = block_builder.build(...); +/// ``` pub struct EthereumBlockBuilder { pub(crate) transaction_root_builder: IncrementalHashBuilder, pub(crate) receipts_root_builder: IncrementalHashBuilder, @@ -542,6 +580,8 @@ impl EthereumBlockBuilder { } /// Converts the builder into an intermediate representation. + /// + /// The intermediate representation is extracted from the pallet storage. pub fn to_ir(self) -> EthereumBlockBuilderIR { EthereumBlockBuilderIR { transaction_root_builder: self.transaction_root_builder.to_ir(), @@ -554,6 +594,8 @@ impl EthereumBlockBuilder { } /// Converts the intermediate representation back into a builder. + /// + /// The intermediate representation is placed into the pallet storage. pub fn from_ir(ir: EthereumBlockBuilderIR) -> Self { Self { transaction_root_builder: IncrementalHashBuilder::from_ir(ir.transaction_root_builder), @@ -565,11 +607,6 @@ impl EthereumBlockBuilder { } } - /// Reset the state of the block builder to accommodate for the next block. - pub fn reset(&mut self) { - *self = Self::new(); - } - /// Check if the first transaction and receipt should be loaded from storage. /// /// This returns true if the index of the current value is 0x7f. @@ -580,10 +617,14 @@ impl EthereumBlockBuilder { /// Loads the first values from storage. /// - /// This is only needed if `should_load_first_values` returns true. + /// Loading the first value in required when: + /// - [`Self::should_load_first_values`] returns true. + /// - Before the [`Self::build`] method is called if and only the + /// [`Self::should_load_first_values`] has not returned true. /// - /// The values are expected to be identical to the first transaction and receipt and - /// are returned by `Self::process_transaction`. + /// The loaded values are expected to be stored in the pallet storage and must + /// be identical to the first transaction and receipt. Therefore, this + /// method takes as input the return of [`Self::process_transaction`]. pub fn load_first_values(&mut self, values: Option<(Vec, Vec)>) { if let Some((tx_encoded, receipt_encoded)) = values { self.transaction_root_builder.load_first_value(tx_encoded); @@ -593,8 +634,9 @@ impl EthereumBlockBuilder { /// Process a single transaction at a time. /// - /// Returns the first transaction and receipt to be stored in the pallet storage. - /// Otherwise, returns None. + /// Returns the first transaction and receipt to be stored in the pallet storage until + /// either the [`Self::should_load_first_values`] returns true or the [`Self::build`] method + /// is called. pub fn process_transaction( &mut self, transaction_encoded: Vec, @@ -625,6 +667,7 @@ impl EthereumBlockBuilder { self.gas_info.push(ReceiptGasInfo { gas_used: gas_used.ref_time().into() }); // The first transaction and receipt are returned to be stored in the pallet storage. + // The index of the incremental hash builders already expects the next items. if self.tx_hashes.len() == 1 { Some((transaction_encoded, encoded_receipt)) } else { @@ -674,6 +717,9 @@ impl EthereumBlockBuilder { (block, gas_info) } + /// Extracts the transaction type from the RLP encoded transaction. + /// + /// This is needed to build the RLP encoding of the receipt. fn extract_transaction_type(transaction_encoded: &[u8]) -> Vec { // The transaction type is the first byte from the encoded transaction, // when the transaction is not legacy. For legacy transactions, there's From 6cdf62385a0ea49f1885491dae5becab9c1f8d24 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 25 Sep 2025 12:51:12 +0000 Subject: [PATCH 202/273] revive: Optimize one storage access for build phase Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 14 ++++++++++++++ substrate/frame/revive/src/lib.rs | 8 ++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 9aaccc2eacea0..49ffbcd931764 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -501,6 +501,7 @@ pub struct EthereumBlockBuilderIR { logs_bloom: [u8; BLOOM_SIZE_BYTES], pub(crate) gas_info: Vec, + first_values_loaded: bool, } impl Default for EthereumBlockBuilderIR { @@ -512,6 +513,7 @@ impl Default for EthereumBlockBuilderIR { tx_hashes: Vec::new(), logs_bloom: [0; BLOOM_SIZE_BYTES], gas_info: Vec::new(), + first_values_loaded: false, } } } @@ -564,6 +566,7 @@ pub struct EthereumBlockBuilder { logs_bloom: LogsBloom, gas_info: Vec, + first_values_loaded: bool, } impl EthereumBlockBuilder { @@ -576,6 +579,7 @@ impl EthereumBlockBuilder { tx_hashes: Vec::new(), logs_bloom: LogsBloom::new(), gas_info: Vec::new(), + first_values_loaded: false, } } @@ -590,6 +594,7 @@ impl EthereumBlockBuilder { tx_hashes: self.tx_hashes, logs_bloom: self.logs_bloom.bloom, gas_info: self.gas_info, + first_values_loaded: self.first_values_loaded, } } @@ -604,6 +609,7 @@ impl EthereumBlockBuilder { tx_hashes: ir.tx_hashes, logs_bloom: LogsBloom { bloom: ir.logs_bloom }, gas_info: ir.gas_info, + first_values_loaded: ir.first_values_loaded, } } @@ -627,11 +633,19 @@ impl EthereumBlockBuilder { /// method takes as input the return of [`Self::process_transaction`]. pub fn load_first_values(&mut self, values: Option<(Vec, Vec)>) { if let Some((tx_encoded, receipt_encoded)) = values { + self.first_values_loaded = true; self.transaction_root_builder.load_first_value(tx_encoded); self.receipts_root_builder.load_first_value(receipt_encoded); } } + /// Check if the first values have been loaded. + /// + /// Returns true after [`Self::load_first_values`] has been called. + pub fn first_values_loaded(&self) -> bool { + self.first_values_loaded + } + /// Process a single transaction at a time. /// /// Returns the first transaction and receipt to be stored in the pallet storage until diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 6a89ff9b51b86..995e95a542881 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -759,8 +759,12 @@ pub mod pallet { // Load the first values if not already loaded. let mut ethereum_block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); - let maybe_first_values = EthBlockBuilderFirstValues::::take(); - ethereum_block_builder.load_first_values(maybe_first_values); + + // Avoid a storage modification if the values are already loaded. + if !ethereum_block_builder.first_values_loaded() { + let maybe_first_values = EthBlockBuilderFirstValues::::take(); + ethereum_block_builder.load_first_values(maybe_first_values); + } let (block, receipt_data) = ethereum_block_builder.build( eth_block_num, From 56bda9412b3c2fa6692f863d06593917ba3092a7 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 25 Sep 2025 13:59:46 +0000 Subject: [PATCH 203/273] revive: Hide away the storage loads Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 86 +++++++++----------- substrate/frame/revive/src/lib.rs | 27 +----- 2 files changed, 42 insertions(+), 71 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 49ffbcd931764..93a1a2a2cf431 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -306,8 +306,12 @@ impl IncrementalHashBuilder { } /// Check if we should load the first value from storage. - pub fn should_load_first_value(&self) -> bool { - self.index == 0x7f + pub fn should_load_first_value(&self, all_tx_processed: bool) -> bool { + if all_tx_processed { + self.index < 0x7f + } else { + self.index == 0x7f + } } /// Build the trie root hash. @@ -495,13 +499,10 @@ const BLOOM_SIZE_BYTES: usize = 256; pub struct EthereumBlockBuilderIR { transaction_root_builder: IncrementalHashBuilderIR, receipts_root_builder: IncrementalHashBuilderIR, - gas_used: U256, - pub(crate) tx_hashes: Vec, - logs_bloom: [u8; BLOOM_SIZE_BYTES], + pub(crate) tx_hashes: Vec, pub(crate) gas_info: Vec, - first_values_loaded: bool, } impl Default for EthereumBlockBuilderIR { @@ -513,7 +514,6 @@ impl Default for EthereumBlockBuilderIR { tx_hashes: Vec::new(), logs_bloom: [0; BLOOM_SIZE_BYTES], gas_info: Vec::new(), - first_values_loaded: false, } } } @@ -557,7 +557,7 @@ impl Default for EthereumBlockBuilderIR { /// // Build the block. /// let (block, gas_info) = block_builder.build(...); /// ``` -pub struct EthereumBlockBuilder { +pub struct EthereumBlockBuilder { pub(crate) transaction_root_builder: IncrementalHashBuilder, pub(crate) receipts_root_builder: IncrementalHashBuilder, @@ -566,10 +566,10 @@ pub struct EthereumBlockBuilder { logs_bloom: LogsBloom, gas_info: Vec, - first_values_loaded: bool, + _phantom: core::marker::PhantomData, } -impl EthereumBlockBuilder { +impl EthereumBlockBuilder { /// Constructs a new [`EthereumBlockBuilder`]. pub fn new() -> Self { Self { @@ -579,7 +579,7 @@ impl EthereumBlockBuilder { tx_hashes: Vec::new(), logs_bloom: LogsBloom::new(), gas_info: Vec::new(), - first_values_loaded: false, + _phantom: core::marker::PhantomData, } } @@ -594,7 +594,6 @@ impl EthereumBlockBuilder { tx_hashes: self.tx_hashes, logs_bloom: self.logs_bloom.bloom, gas_info: self.gas_info, - first_values_loaded: self.first_values_loaded, } } @@ -609,41 +608,18 @@ impl EthereumBlockBuilder { tx_hashes: ir.tx_hashes, logs_bloom: LogsBloom { bloom: ir.logs_bloom }, gas_info: ir.gas_info, - first_values_loaded: ir.first_values_loaded, + _phantom: core::marker::PhantomData, } } - /// Check if the first transaction and receipt should be loaded from storage. - /// - /// This returns true if the index of the current value is 0x7f. - pub fn should_load_first_values(&self) -> bool { - self.transaction_root_builder.should_load_first_value() || - self.receipts_root_builder.should_load_first_value() + /// Store the first transaction and receipt in pallet storage. + fn store_first_values(&mut self, values: (Vec, Vec)) { + crate::EthBlockBuilderFirstValues::::put(Some(values)); } - /// Loads the first values from storage. - /// - /// Loading the first value in required when: - /// - [`Self::should_load_first_values`] returns true. - /// - Before the [`Self::build`] method is called if and only the - /// [`Self::should_load_first_values`] has not returned true. - /// - /// The loaded values are expected to be stored in the pallet storage and must - /// be identical to the first transaction and receipt. Therefore, this - /// method takes as input the return of [`Self::process_transaction`]. - pub fn load_first_values(&mut self, values: Option<(Vec, Vec)>) { - if let Some((tx_encoded, receipt_encoded)) = values { - self.first_values_loaded = true; - self.transaction_root_builder.load_first_value(tx_encoded); - self.receipts_root_builder.load_first_value(receipt_encoded); - } - } - - /// Check if the first values have been loaded. - /// - /// Returns true after [`Self::load_first_values`] has been called. - pub fn first_values_loaded(&self) -> bool { - self.first_values_loaded + /// Load the first transaction and receipt from pallet storage. + fn load_first_values(&mut self) -> Option<(Vec, Vec)> { + crate::EthBlockBuilderFirstValues::::take() } /// Process a single transaction at a time. @@ -658,7 +634,7 @@ impl EthereumBlockBuilder { gas_used: Weight, encoded_logs: Vec, receipt_bloom: LogsBloom, - ) -> Option<(Vec, Vec)> { + ) { let tx_hash = H256(keccak_256(&transaction_encoded)); self.tx_hashes.push(tx_hash); @@ -683,12 +659,19 @@ impl EthereumBlockBuilder { // The first transaction and receipt are returned to be stored in the pallet storage. // The index of the incremental hash builders already expects the next items. if self.tx_hashes.len() == 1 { - Some((transaction_encoded, encoded_receipt)) - } else { - self.transaction_root_builder.add_value(transaction_encoded); - self.receipts_root_builder.add_value(encoded_receipt); - None + self.store_first_values((transaction_encoded, encoded_receipt)); + return; + } + + if self.transaction_root_builder.should_load_first_value(false) { + if let Some((first_tx, first_receipt)) = self.load_first_values() { + self.transaction_root_builder.load_first_value(first_tx); + self.receipts_root_builder.load_first_value(first_receipt); + } } + + self.transaction_root_builder.add_value(transaction_encoded); + self.receipts_root_builder.add_value(encoded_receipt); } /// Build the ethereum block from provided data. @@ -700,6 +683,13 @@ impl EthereumBlockBuilder { block_author: H160, gas_limit: U256, ) -> (Block, Vec) { + if self.transaction_root_builder.should_load_first_value(true) { + if let Some((first_tx, first_receipt)) = self.load_first_values() { + self.transaction_root_builder.load_first_value(first_tx); + self.receipts_root_builder.load_first_value(first_receipt); + } + } + let transactions_root = self.transaction_root_builder.finish(); let receipts_root = self.receipts_root_builder.finish(); diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 995e95a542881..e57720ae5d447 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -758,15 +758,7 @@ pub mod pallet { EthBlockBuilderIR::::kill(); // Load the first values if not already loaded. - let mut ethereum_block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); - - // Avoid a storage modification if the values are already loaded. - if !ethereum_block_builder.first_values_loaded() { - let maybe_first_values = EthBlockBuilderFirstValues::::take(); - ethereum_block_builder.load_first_values(maybe_first_values); - } - - let (block, receipt_data) = ethereum_block_builder.build( + let (block, receipt_data) = EthereumBlockBuilder::::from_ir(block_builder_ir).build( eth_block_num, parent_hash, T::Time::now().into(), @@ -2051,26 +2043,15 @@ impl Pallet { let (encoded_logs, bloom) = block_storage::get_receipt_details().unwrap_or_default(); let block_builder_ir = EthBlockBuilderIR::::get(); - let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); - - // The first transaction and receipt are loaded if we are processing the - // transaction index 0x7f. This efficiently preserves the first values without - // serializing / deserializing them on every transaction. - if block_builder.should_load_first_values() { - let values = EthBlockBuilderFirstValues::::take(); - block_builder.load_first_values(values); - } + let mut block_builder = EthereumBlockBuilder::::from_ir(block_builder_ir); - if let Some((tx, receipt)) = block_builder.process_transaction( + block_builder.process_transaction( transaction_encoded, success, gas_used, encoded_logs, bloom, - ) { - // Preserve the first values into storage. - EthBlockBuilderFirstValues::::put(Some((tx, receipt))); - } + ); EthBlockBuilderIR::::put(block_builder.to_ir()); } From 10db30668b7992e51bdbbc6a0a9db17f5bd43d14 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 25 Sep 2025 14:22:49 +0000 Subject: [PATCH 204/273] revive/tests: Adjust testing to new API Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 158 +++++++++--------- .../frame/revive/src/tests/block_hash.rs | 11 +- 2 files changed, 84 insertions(+), 85 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 93a1a2a2cf431..b75f7a3026783 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -743,7 +743,10 @@ impl EthereumBlockBuilder { #[cfg(test)] mod test { use super::*; - use crate::evm::{Block, ReceiptInfo}; + use crate::{ + evm::{Block, ReceiptInfo}, + tests::{ExtBuilder, Test}, + }; use alloy_trie::{HashBuilder, Nibbles}; /// Manual implementation of the Ethereum trie root computation. @@ -807,7 +810,7 @@ mod test { let mut first_value = Some(rlp_values[0].clone()); let mut builder = IncrementalHashBuilder::new(); for rlp_value in rlp_values.iter().skip(1) { - if builder.should_load_first_value() { + if builder.should_load_first_value(false) { let value = first_value.take().expect("First value must be present; qed"); builder.load_first_value(value); } @@ -891,92 +894,89 @@ mod test { }) .collect(); - let mut first_values = None; - // Build the ethereum block incrementally. - let mut incremental_block = EthereumBlockBuilder::new(); - for (signed, logs, success, gas_used) in transaction_details { - let mut log_size = 0; - - let mut accumulate_receipt = AccumulateReceipt::new(); - for (address, data, topics) in &logs { - let current_size = data.len() + topics.len() * 32 + 20; - log_size += current_size; - accumulate_receipt.add_log(address, data, topics); - } + ExtBuilder::default().build().execute_with(|| { + // Build the ethereum block incrementally. + let mut incremental_block = EthereumBlockBuilder::::new(); + for (signed, logs, success, gas_used) in transaction_details { + let mut log_size = 0; + + let mut accumulate_receipt = AccumulateReceipt::new(); + for (address, data, topics) in &logs { + let current_size = data.len() + topics.len() * 32 + 20; + log_size += current_size; + accumulate_receipt.add_log(address, data, topics); + } - if incremental_block.should_load_first_values() { - incremental_block.load_first_values(first_values.take()); + incremental_block.process_transaction( + signed, + success, + gas_used.into(), + accumulate_receipt.encoding, + accumulate_receipt.bloom, + ); + + let ir = incremental_block.to_ir(); + incremental_block = EthereumBlockBuilder::from_ir(ir); + println!(" Log size {:?}", log_size); } - if let Some(values) = incremental_block.process_transaction( - signed, - success, - gas_used.into(), - accumulate_receipt.encoding, - accumulate_receipt.bloom, - ) { - first_values = Some(values); - } + // The block hash would differ here because we don't take into account + // the ommers and other fields from the substrate perspective. + // However, the state roots must be identical. + let built_block = incremental_block + .build( + block.number, + block.parent_hash, + block.timestamp, + block.miner, + Default::default(), + ) + .0; - let ir = incremental_block.to_ir(); - incremental_block = EthereumBlockBuilder::from_ir(ir); - println!(" Log size {:?}", log_size); - } + assert_eq!(built_block.gas_used, block.gas_used); + assert_eq!(built_block.logs_bloom, block.logs_bloom); + // We are using the tx root for state root. + assert_eq!(built_block.state_root, built_block.transactions_root); - // The block hash would differ here because we don't take into account - // the ommers and other fields from the substrate perspective. - // However, the state roots must be identical. - incremental_block.load_first_values(first_values.take()); - let built_block = incremental_block - .build( - block.number, - block.parent_hash, - block.timestamp, - block.miner, - Default::default(), - ) - .0; - - assert_eq!(built_block.gas_used, block.gas_used); - assert_eq!(built_block.logs_bloom, block.logs_bloom); - // We are using the tx root for state root. - assert_eq!(built_block.state_root, built_block.transactions_root); - - // Double check the receipts roots. - assert_eq!(built_block.receipts_root, block.receipts_root); - - let manual_hash = manual_trie_root_compute(encoded_tx.clone()); - - let mut total_size = 0; - for enc in &encoded_tx { - total_size += enc.len(); - } - println!("Total size used by transactions: {:?}", total_size); + // Double check the receipts roots. + assert_eq!(built_block.receipts_root, block.receipts_root); - let mut first_value = Some(encoded_tx[0].clone()); - let mut builder = IncrementalHashBuilder::new(); - for tx in encoded_tx.iter().skip(1) { - if builder.should_load_first_value() { - let value = first_value.take().expect("First value must be present; qed"); - builder.load_first_value(value); + let manual_hash = manual_trie_root_compute(encoded_tx.clone()); + + let mut total_size = 0; + for enc in &encoded_tx { + total_size += enc.len(); } - builder.add_value(tx.clone()) - } - if let Some(value) = first_value.take() { - builder.load_first_value(value); - } - let incremental_hash = builder.finish(); + println!("Total size used by transactions: {:?}", total_size); + + let mut builder = IncrementalHashBuilder::new(); + let mut loaded = false; + for tx in encoded_tx.iter().skip(1) { + if builder.should_load_first_value(false) { + loaded = true; + let first_tx = encoded_tx[0].clone(); + builder.load_first_value(first_tx); + } + builder.add_value(tx.clone()) + } + if !loaded { + let first_tx = encoded_tx[0].clone(); + builder.load_first_value(first_tx); + } + + let incremental_hash = builder.finish(); - println!("Incremental hash: {:?}", incremental_hash); - println!("Manual Hash: {:?}", manual_hash); - println!("Built block Hash: {:?}", built_block.transactions_root); - println!("Real Block Tx Hash: {:?}", block.transactions_root); + println!("Incremental hash: {:?}", incremental_hash); + println!("Manual Hash: {:?}", manual_hash); + println!("Built block Hash: {:?}", built_block.transactions_root); + println!("Real Block Tx Hash: {:?}", block.transactions_root); - assert_eq!(incremental_hash, block.transactions_root); + assert_eq!(incremental_hash, block.transactions_root); - // This double checks the compute logic. - assert_eq!(manual_hash, block.transactions_root); - // This ensures we can compute the same transaction root as Ethereum. - assert_eq!(block.transactions_root, built_block.transactions_root); + // This double checks the compute logic. + assert_eq!(manual_hash, block.transactions_root); + // This ensures we can compute the same transaction root as Ethereum. + assert_eq!(block.transactions_root, built_block.transactions_root); + }); } } diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 6321be4e01c5e..526288734d114 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -85,12 +85,11 @@ fn transactions_are_captured() { let expected_tx_root = Block::compute_trie_root(&expected_payloads); // Double check the trie root hash. - let mut builder = EthereumBlockBuilder::from_ir(block_builder); + let mut builder = EthereumBlockBuilder::::from_ir(block_builder); + + let first_values = EthBlockBuilderFirstValues::::get().unwrap(); + builder.transaction_root_builder.load_first_value(first_values.0); - let maybe_first_values = EthBlockBuilderFirstValues::::take(); - if let Some(values) = maybe_first_values { - builder.load_first_values(Some(values)); - } let tx_root = builder.transaction_root_builder.finish(); assert_eq!(tx_root, expected_tx_root.0.into()); @@ -171,7 +170,7 @@ fn events_are_captured() { // 1 transaction captured. assert_eq!(block_builder.gas_info.len(), 1); - let mut builder = EthereumBlockBuilder::from_ir(block_builder); + let mut builder = EthereumBlockBuilder::::from_ir(block_builder); builder.transaction_root_builder.load_first_value(expected_payloads[0].clone()); let tx_root = builder.transaction_root_builder.finish(); assert_eq!(tx_root, expected_tx_root.0.into()); From 5f905b31d578630f3ca56d8385012d4985a38f56 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 25 Sep 2025 14:31:33 +0000 Subject: [PATCH 205/273] revive: Move receipt and logs bloom to dedicated module Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 172 +--------------- .../revive/src/evm/block_hash/receipt.rs | 188 ++++++++++++++++++ 2 files changed, 193 insertions(+), 167 deletions(-) create mode 100644 substrate/frame/revive/src/evm/block_hash/receipt.rs diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index b75f7a3026783..1366c08b79f97 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -17,8 +17,12 @@ //!Types, and traits to integrate pallet-revive with EVM. #![warn(missing_docs)] +mod receipt; +pub use receipt::{AccumulateReceipt, LogsBloom}; + use crate::evm::{ - Block, HashesOrTransactionInfos, TYPE_EIP1559, TYPE_EIP2930, TYPE_EIP4844, TYPE_EIP7702, + block_hash::receipt::BLOOM_SIZE_BYTES, Block, HashesOrTransactionInfos, TYPE_EIP1559, + TYPE_EIP2930, TYPE_EIP4844, TYPE_EIP7702, }; use alloc::{vec, vec::Vec}; @@ -328,172 +332,6 @@ impl IncrementalHashBuilder { } } -/// Accumulate events (logs) into a stream of RLP encoded bytes. -/// This is a very straight forward implementation that RLP encodes logs as they are added. -/// -/// The main goal is to generate the RLP-encoded representation of receipts -/// which is required to compute the receipt root hash, without storing the full receipt -/// data in memory. -/// -/// One approach is to store the full receipt in memory, together with the RLP encoding -/// of the receipt. -/// -/// However, since we only care about the RLP encoding of the receipt, we can optimize the memory -/// usage by only storing the RLP encoded value and the logs directly. This effectively saves -/// the need to store the full receipt (which can grow unboundedly due to the number of logs), and -/// builds the RLP encoding incrementally as logs are added. -/// -/// The implementation leverages the RLP encoding details of the receipt: -/// -/// ```ignore -/// // Memory representation of the RLP encoded receipt: -/// [ -/// ReceiptHeader ++ rlp(status) ++ rlp(gas) ++ rlp(bloom) -/// ++ LogsHeader ++ rlp(log1) ++ rlp(log2) ++ ... ++ rlp(logN) -/// ] -/// ``` -/// -/// The optimization comes from the fact that `rlp(log1) ++ rlp(log2) ++ ... ++ rlp(logN)` -/// can be built incrementally. -/// -/// On average, from the real ethereum block, this implementation reduces the memory usage by 30%. -/// `EncodedReceipt Space optimization (on average): 0.6995642434146292` -pub struct AccumulateReceipt { - /// The RLP bytes where the logs are accumulated. - pub encoding: Vec, - /// The bloom filter collected from accumulating logs. - pub bloom: LogsBloom, -} - -/// Bloom log filter compatible with Ethereum implementation. -/// -/// This structure avoids conversions between substrate to alloy types -/// to optimally compute the bloom. -#[derive(Clone, Copy)] -pub struct LogsBloom { - /// The bloom bytes used to store logs. - pub bloom: [u8; BLOOM_SIZE_BYTES], -} - -impl Default for LogsBloom { - fn default() -> Self { - Self::new() - } -} - -impl LogsBloom { - /// Constructs a new [`LogsBloom`]. - pub const fn new() -> Self { - Self { bloom: [0u8; BLOOM_SIZE_BYTES] } - } - - /// Ingests a raw log (event) into the bloom filter. - pub fn accrue_log(&mut self, contract: &H160, topics: &[H256]) { - Self::m3_2048(&mut self.bloom, contract.as_ref()); - - for topic in topics { - Self::m3_2048(&mut self.bloom, topic.as_ref()); - } - } - - /// Accrues the input into the bloom filter. - pub fn accrue_bloom(&mut self, other: &Self) { - for i in 0..BLOOM_SIZE_BYTES { - self.bloom[i] |= other.bloom[i]; - } - } - - /// Specialized Bloom filter that sets three bits out of 2048, given an - /// arbitrary byte sequence. - /// - /// See Section 4.3.1 "Transaction Receipt" of the - /// [Ethereum Yellow Paper][ref] (page 6). - /// - /// [ref]: https://ethereum.github.io/yellowpaper/paper.pdf - fn m3_2048(bloom: &mut [u8; 256], bytes: &[u8]) { - let hash = keccak_256(bytes); - for i in [0, 2, 4] { - let bit = (hash[i + 1] as usize + ((hash[i] as usize) << 8)) & 0x7FF; - bloom[256 - 1 - bit / 8] |= 1 << (bit % 8); - } - } -} - -impl AccumulateReceipt { - /// Constructs a new [`AccumulateReceipt`]. - pub const fn new() -> Self { - Self { encoding: Vec::new(), bloom: LogsBloom::new() } - } - - /// Add the log into the accumulated receipt. - /// - /// This accrues the log bloom and keeps track of the RLP encoding of the log. - pub fn add_log(&mut self, contract: &H160, data: &[u8], topics: &[H256]) { - // Accrue the log bloom. - self.bloom.accrue_log(contract, topics); - - // Determine the length of the log RLP encoding. - let mut topics_len: usize = 0; - for topic in topics { - // Topics are represented by 32 bytes. However, their encoding - // can produce different lengths depending on their value. - topics_len = topics_len.saturating_add(rlp::Encodable::length(&topic.0)); - } - // Account for the size of the list header. - let topics_list_header_length = topics_len + rlp::length_of_length(topics_len); - // Compute the total payload length of the log. - let payload_length = rlp::Encodable::length(&contract.0) + - rlp::Encodable::length(&data) + - topics_list_header_length; - - let header = rlp::Header { list: true, payload_length }; - header.encode(&mut self.encoding); - rlp::Encodable::encode(&contract.0, &mut self.encoding); - // Encode the topics as a list - rlp::Header { list: true, payload_length: topics_len }.encode(&mut self.encoding); - for topic in topics { - rlp::Encodable::encode(&topic.0, &mut self.encoding); - } - rlp::Encodable::encode(&data, &mut self.encoding); - } - - /// Finalize the accumulated receipt and return the RLP encoded bytes. - pub fn encoded_receipt( - encoded_logs: Vec, - bloom: LogsBloom, - status: bool, - gas: u64, - transaction_type: Vec, - ) -> Vec { - let logs_length = encoded_logs.len(); - let list_header_length = logs_length + rlp::length_of_length(logs_length); - - let header = rlp::Header { - list: true, - payload_length: rlp::Encodable::length(&status) + - rlp::Encodable::length(&gas) + - rlp::Encodable::length(&bloom.bloom) + - list_header_length, - }; - - let mut encoded = transaction_type; - header.encode(&mut encoded); - rlp::Encodable::encode(&status, &mut encoded); - rlp::Encodable::encode(&gas, &mut encoded); - rlp::Encodable::encode(&bloom.bloom, &mut encoded); - - let logs_header = rlp::Header { list: true, payload_length: logs_length }; - logs_header.encode(&mut encoded); - - encoded.extend(encoded_logs); - - encoded - } -} - -/// Number of bytes that a bloom stores. -const BLOOM_SIZE_BYTES: usize = 256; - /// The intermediate representation of the Ethereum block builder. #[derive(Encode, Decode, TypeInfo)] pub struct EthereumBlockBuilderIR { diff --git a/substrate/frame/revive/src/evm/block_hash/receipt.rs b/substrate/frame/revive/src/evm/block_hash/receipt.rs new file mode 100644 index 0000000000000..2877f49f2e80a --- /dev/null +++ b/substrate/frame/revive/src/evm/block_hash/receipt.rs @@ -0,0 +1,188 @@ +// 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. + +//! Handle encoded RLP ethereum receipts for block hash computation. + +use alloc::vec::Vec; +use alloy_core::rlp; +use sp_core::{keccak_256, H160, H256}; + +/// Number of bytes that a bloom stores. +pub const BLOOM_SIZE_BYTES: usize = 256; + +/// Accumulate events (logs) into a stream of RLP encoded bytes. +/// This is a straight forward implementation that RLP encodes logs as they are added. +/// +/// The main goal is to generate the RLP-encoded representation of receipts +/// which is required to compute the receipt root hash, without storing the full receipt +/// data in memory. +/// +/// One approach is to store the full receipt in memory, together with the RLP encoding +/// of the receipt. +/// +/// However, since we only care about the RLP encoding of the receipt, we can optimize the memory +/// usage by only storing the RLP encoded value and the logs directly. This effectively saves +/// the need to store the full receipt (which can grow unboundedly due to the number of logs), and +/// builds the RLP encoding incrementally as logs are added. +///BLOOM_SIZE_BYTES +/// The implementation leverages the RLP encoding details of the receipt: +/// +/// ```ignore +/// // Memory representation of the RLP encoded receipt: +/// [ +/// ReceiptHeader ++ rlp(status) ++ rlp(gas) ++ rlp(bloom) +/// ++ LogsHeader ++ rlp(log1) ++ rlp(log2) ++ ... ++ rlp(logN) +/// ] +/// ``` +/// +/// The optimization comes from the fact that `rlp(log1) ++ rlp(log2) ++ ... ++ rlp(logN)` +/// can be built incrementally. +/// +/// On average, from the real ethereum block, this implementation reduces the memory usage by 30%. +/// `EncodedReceipt Space optimization (on average): 0.6995642434146292` +pub struct AccumulateReceipt { + /// The RLP bytes where the logs are accumulated. + pub encoding: Vec, + /// The bloom filter collected from accumulating logs. + pub bloom: LogsBloom, +} + +impl AccumulateReceipt { + /// Constructs a new [`AccumulateReceipt`]. + pub const fn new() -> Self { + Self { encoding: Vec::new(), bloom: LogsBloom::new() } + } + + /// Add the log into the accumulated receipt. + /// + /// This accrues the log bloom and keeps track of the RLP encoding of the log. + pub fn add_log(&mut self, contract: &H160, data: &[u8], topics: &[H256]) { + // Accrue the log bloom. + self.bloom.accrue_log(contract, topics); + + // Determine the length of the log RLP encoding. + let mut topics_len: usize = 0; + for topic in topics { + // Topics are represented by 32 bytes. However, their encoding + // can produce different lengths depending on their value. + topics_len = topics_len.saturating_add(rlp::Encodable::length(&topic.0)); + } + // Account for the size of the list header. + let topics_list_header_length = topics_len + rlp::length_of_length(topics_len); + // Compute the total payload length of the log. + let payload_length = rlp::Encodable::length(&contract.0) + + rlp::Encodable::length(&data) + + topics_list_header_length; + + let header = rlp::Header { list: true, payload_length }; + header.encode(&mut self.encoding); + rlp::Encodable::encode(&contract.0, &mut self.encoding); + // Encode the topics as a list + rlp::Header { list: true, payload_length: topics_len }.encode(&mut self.encoding); + for topic in topics { + rlp::Encodable::encode(&topic.0, &mut self.encoding); + } + rlp::Encodable::encode(&data, &mut self.encoding); + } + + /// Finalize the accumulated receipt and return the RLP encoded bytes. + pub fn encoded_receipt( + encoded_logs: Vec, + bloom: LogsBloom, + status: bool, + gas: u64, + transaction_type: Vec, + ) -> Vec { + let logs_length = encoded_logs.len(); + let list_header_length = logs_length + rlp::length_of_length(logs_length); + + let header = rlp::Header { + list: true, + payload_length: rlp::Encodable::length(&status) + + rlp::Encodable::length(&gas) + + rlp::Encodable::length(&bloom.bloom) + + list_header_length, + }; + + let mut encoded = transaction_type; + header.encode(&mut encoded); + rlp::Encodable::encode(&status, &mut encoded); + rlp::Encodable::encode(&gas, &mut encoded); + rlp::Encodable::encode(&bloom.bloom, &mut encoded); + + let logs_header = rlp::Header { list: true, payload_length: logs_length }; + logs_header.encode(&mut encoded); + + encoded.extend(encoded_logs); + + encoded + } +} + +/// Bloom log filter compatible with Ethereum implementation. +/// +/// This structure avoids conversions between substrate to alloy types +/// to optimally compute the bloom. +#[derive(Clone, Copy)] +pub struct LogsBloom { + /// The bloom bytes used to store logs. + pub bloom: [u8; BLOOM_SIZE_BYTES], +} + +impl Default for LogsBloom { + fn default() -> Self { + Self::new() + } +} + +impl LogsBloom { + /// Constructs a new [`LogsBloom`]. + pub const fn new() -> Self { + Self { bloom: [0u8; BLOOM_SIZE_BYTES] } + } + + /// Ingests a raw log (event) into the bloom filter. + pub fn accrue_log(&mut self, contract: &H160, topics: &[H256]) { + Self::m3_2048(&mut self.bloom, contract.as_ref()); + + for topic in topics { + Self::m3_2048(&mut self.bloom, topic.as_ref()); + } + } + + /// Accrues the input into the bloom filter. + pub fn accrue_bloom(&mut self, other: &Self) { + for i in 0..BLOOM_SIZE_BYTES { + self.bloom[i] |= other.bloom[i]; + } + } + + /// Specialized Bloom filter that sets three bits out of 2048, given an + /// arbitrary byte sequence. + /// + /// See Section 4.3.1 "Transaction Receipt" of the + /// [Ethereum Yellow Paper][ref] (page 6). + /// + /// [ref]: https://ethereum.github.io/yellowpaper/paper.pdf + fn m3_2048(bloom: &mut [u8; 256], bytes: &[u8]) { + let hash = keccak_256(bytes); + for i in [0, 2, 4] { + let bit = (hash[i + 1] as usize + ((hash[i] as usize) << 8)) & 0x7FF; + bloom[256 - 1 - bit / 8] |= 1 << (bit % 8); + } + } +} From 4ef29824b70cb15522d09ffb617028a99649ae18 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 25 Sep 2025 14:36:28 +0000 Subject: [PATCH 206/273] revive: Move incremental builder to dedicated module Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 253 +---------------- .../revive/src/evm/block_hash/hash_builder.rs | 265 ++++++++++++++++++ 2 files changed, 272 insertions(+), 246 deletions(-) create mode 100644 substrate/frame/revive/src/evm/block_hash/hash_builder.rs diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index 1366c08b79f97..a9f215bc67a48 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -14,27 +14,24 @@ // 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. + //!Types, and traits to integrate pallet-revive with EVM. #![warn(missing_docs)] mod receipt; pub use receipt::{AccumulateReceipt, LogsBloom}; +mod hash_builder; +pub use hash_builder::{IncrementalHashBuilder, IncrementalHashBuilderIR}; + use crate::evm::{ block_hash::receipt::BLOOM_SIZE_BYTES, Block, HashesOrTransactionInfos, TYPE_EIP1559, TYPE_EIP2930, TYPE_EIP4844, TYPE_EIP7702, }; use alloc::{vec, vec::Vec}; -use alloy_core::{ - primitives::{bytes::BufMut, B256}, - rlp, -}; -use alloy_trie::{ - hash_builder::{HashBuilderValue, HashBuilderValueRef}, - nodes::RlpNode, - HashBuilder, Nibbles, TrieMask, -}; +use alloy_core::primitives::{bytes::BufMut, B256}; + use codec::{Decode, Encode}; use frame_support::weights::Weight; use scale_info::TypeInfo; @@ -95,243 +92,6 @@ impl Block { } } -/// The Incremental Hash Builder is designed to efficiently compute the transaction and receipt -/// trie roots in Ethereum, minimizing memory usage. This is achieved by constructing the Merkle -/// Trie incrementally, rather than storing all values in memory simultaneously. -/// -/// ## ETH Trie Overview -/// -/// In Ethereum, the trie calculates the hash of a node (leaf) by combining the remaining key path -/// with the RLP-encoded item, as follows: -/// -/// ```ignore -/// hash (remaining of the key path ++ RLP (item)) -/// ``` -/// -/// Because the hash incorporates the remaining key path, computing the trie root accurately -/// requires more than just the hash of the RLP-encoded item (hash(RLP(item))). To address this, the -/// Incremental Hash Builder leverages the internal structure of the Ethereum trie to optimize -/// memory usage. -/// -/// The Ethereum trie is ordered by the RLP-encoded index of items (RLP(index)). This ordering -/// allows the trie to be built incrementally, provided the items are added in a consistent order. -/// We leverage the following property of encoding RLP indexes to avoid sorting the items (and -/// therefore, we avoid knowing the number of items in advance): -/// -/// ```ignore -/// rlp(1) < rlp(2) < ... < rlp(127) < RLP (0) < rlp(128) < ... < rlp(n) -/// ``` -/// For more details see: -/// -/// -/// This property allows the builder to add items in the order of indices 1, 2, ..., 127, followed -/// by index 0, and then index 128 onward. In this implementation, the focus is on placing the first -/// RLP encoded value at index 128. -/// -/// The primary optimization comes from computing the hash (remaining_key_path ++ RLP(item)) as -/// early as possible during the trie construction process. This approach minimizes the memory -/// required by avoiding the need to store all items simultaneously. -/// -/// For transactions, from real ethereum block, we can observe the following: -/// - worst case we use 90% less space -/// - best case we use 99.5% less space -/// -/// ```ignore -/// hash max 8042 -/// hash min 444 -/// hash total 79655 -/// hash saved worst case 0.1009603916891595 -/// hash saved best case 0.005574038039043374 -/// ``` -/// -/// For receipts, from real ethereum block, we can observe the following: -/// - worst case we use 94% less space -/// - best case we use 99.3% less space -/// -/// ```ignore -/// hash max 7249 -/// hash min 760 -/// hash total 106054 -/// hash saved worst case 0.06835197163709054 -/// hash saved best case 0.007166160635148132 -/// ``` -pub struct IncrementalHashBuilder { - /// Hash builder. - hash_builder: HashBuilder, - /// The index of the current value. - index: u64, - /// RLP encoded value. - first_value: Option>, -} - -/// The intermediate representation of the [`IncrementalHashBuilder`] that can be placed into the -/// pallets storage. This contains the minimum amount of data that is needed to serialize -/// and deserialize the incremental hash builder. -#[derive(Encode, Decode, scale_info::TypeInfo, Clone, PartialEq, Eq, Debug)] -pub struct IncrementalHashBuilderIR { - /// The nibbles of the builder. - pub key: Vec, - /// The type of the builder value. - /// 0 represents plain bytes. - /// 1 represents the hash of the bytes. - pub value_type: u8, - /// The current value stored by the builder. - pub builder_value: Vec, - /// The stack of RLP nodes. - pub stack: Vec>, - /// State mask. - pub state_masks: Vec, - /// Tree mask. - pub tree_masks: Vec, - /// Hash mask. - pub hash_masks: Vec, - /// True if the buider should be stored in database. - pub stored_in_database: bool, - /// Current RLP buffer. - pub rlp_buf: Vec, - /// The index of the current value. - pub index: u64, -} - -impl Default for IncrementalHashBuilderIR { - fn default() -> Self { - Self { - // First deserialization time from the pallet storage, is expected - // to contain index 1. - index: 1, - key: Vec::new(), - value_type: 0, - builder_value: Vec::new(), - stack: Vec::new(), - state_masks: Vec::new(), - tree_masks: Vec::new(), - hash_masks: Vec::new(), - stored_in_database: false, - rlp_buf: Vec::new(), - } - } -} - -impl IncrementalHashBuilder { - /// Construct the hash builder from the first value. - pub fn new() -> Self { - Self { hash_builder: HashBuilder::default(), index: 1, first_value: None } - } - - /// Converts the intermediate representation back into a builder. - pub fn from_ir(serialized: IncrementalHashBuilderIR) -> Self { - let value = match serialized.value_type { - 0 => { - let mut value = HashBuilderValue::new(); - value.set_bytes_owned(serialized.builder_value); - value - }, - 1 => { - let buffer: alloy_core::primitives::B256 = serialized.builder_value[..] - .try_into() - .expect("The buffer was serialized properly; qed"); - let value_ref = HashBuilderValueRef::Hash(&buffer); - - let mut value = HashBuilderValue::new(); - value.set_from_ref(value_ref); - value - }, - _ => panic!("Value type was serialized properly; qed"), - }; - - let hash_builder = HashBuilder { - key: Nibbles::from_nibbles(serialized.key), - value, - stack: serialized - .stack - .into_iter() - .map(|raw| RlpNode::from_raw(&raw).expect("RlpNode was encoded properly; qed")) - .collect(), - state_masks: serialized - .state_masks - .into_iter() - .map(|mask| TrieMask::new(mask)) - .collect(), - tree_masks: serialized.tree_masks.into_iter().map(|mask| TrieMask::new(mask)).collect(), - hash_masks: serialized.hash_masks.into_iter().map(|mask| TrieMask::new(mask)).collect(), - stored_in_database: serialized.stored_in_database, - updated_branch_nodes: None, - proof_retainer: None, - rlp_buf: serialized.rlp_buf, - }; - - IncrementalHashBuilder { hash_builder, index: serialized.index, first_value: None } - } - - /// Converts the builder into an intermediate representation. - pub fn to_ir(self) -> IncrementalHashBuilderIR { - IncrementalHashBuilderIR { - key: self.hash_builder.key.to_vec(), - value_type: match self.hash_builder.value.as_ref() { - HashBuilderValueRef::Bytes(_) => 0, - HashBuilderValueRef::Hash(_) => 1, - }, - builder_value: self.hash_builder.value.as_slice().to_vec(), - stack: self.hash_builder.stack.into_iter().map(|n| n.as_slice().to_vec()).collect(), - - state_masks: self.hash_builder.state_masks.into_iter().map(|mask| mask.get()).collect(), - tree_masks: self.hash_builder.tree_masks.into_iter().map(|mask| mask.get()).collect(), - hash_masks: self.hash_builder.hash_masks.into_iter().map(|mask| mask.get()).collect(), - - stored_in_database: self.hash_builder.stored_in_database, - rlp_buf: self.hash_builder.rlp_buf, - index: self.index, - } - } - - /// Add a new value to the hash builder. - /// - /// The value is returned if it should be preserved until a later time. - pub fn add_value(&mut self, value: Vec) { - let rlp_index = rlp::encode_fixed_size(&self.index); - self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &value); - - if self.index == 0x7f { - // Pushing the previous item since we are expecting the index - // to be index + 1 in the sorted order. - if let Some(encoded_value) = self.first_value.take() { - let rlp_index = rlp::encode_fixed_size(&0usize); - - self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); - } - } - - self.index = self.index.saturating_add(1); - } - - /// Load the first value from storage. - pub fn load_first_value(&mut self, value: Vec) { - self.first_value = Some(value); - } - - /// Check if we should load the first value from storage. - pub fn should_load_first_value(&self, all_tx_processed: bool) -> bool { - if all_tx_processed { - self.index < 0x7f - } else { - self.index == 0x7f - } - } - - /// Build the trie root hash. - pub fn finish(&mut self) -> H256 { - // We have less than 0x7f items to the trie. Therefore, the - // first value index is the last one in the sorted vector - // by rlp encoding of the index. - if let Some(encoded_value) = self.first_value.take() { - let rlp_index = rlp::encode_fixed_size(&0usize); - self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); - } - - self.hash_builder.root().0.into() - } -} - /// The intermediate representation of the Ethereum block builder. #[derive(Encode, Decode, TypeInfo)] pub struct EthereumBlockBuilderIR { @@ -585,6 +345,7 @@ mod test { evm::{Block, ReceiptInfo}, tests::{ExtBuilder, Test}, }; + use alloy_core::rlp; use alloy_trie::{HashBuilder, Nibbles}; /// Manual implementation of the Ethereum trie root computation. diff --git a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs new file mode 100644 index 0000000000000..e72ae4c303293 --- /dev/null +++ b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs @@ -0,0 +1,265 @@ +// 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. + +//! Incremental hash builder for Ethereum transaction and receipt trie roots. + +use alloc::vec::Vec; +use alloy_core::rlp; +use alloy_trie::{ + hash_builder::{HashBuilderValue, HashBuilderValueRef}, + nodes::RlpNode, + HashBuilder, Nibbles, TrieMask, +}; +use codec::{Decode, Encode}; +use sp_core::H256; + +/// The Incremental Hash Builder is designed to efficiently compute the transaction and receipt +/// trie roots in Ethereum, minimizing memory usage. This is achieved by constructing the Merkle +/// Trie incrementally, rather than storing all values in memory simultaneously. +/// +/// ## ETH Trie Overview +/// +/// In Ethereum, the trie calculates the hash of a node (leaf) by combining the remaining key path +/// with the RLP-encoded item, as follows: +/// +/// ```ignore +/// hash (remaining of the key path ++ RLP (item)) +/// ``` +/// +/// Because the hash incorporates the remaining key path, computing the trie root accurately +/// requires more than just the hash of the RLP-encoded item (hash(RLP(item))). To address this, the +/// Incremental Hash Builder leverages the internal structure of the Ethereum trie to optimize +/// memory usage. +/// +/// The Ethereum trie is ordered by the RLP-encoded index of items (RLP(index)). This ordering +/// allows the trie to be built incrementally, provided the items are added in a consistent order. +/// We leverage the following property of encoding RLP indexes to avoid sorting the items (and +/// therefore, we avoid knowing the number of items in advance): +/// +/// ```ignore +/// rlp(1) < rlp(2) < ... < rlp(127) < RLP (0) < rlp(128) < ... < rlp(n) +/// ``` +/// For more details see: +/// +/// +/// This property allows the builder to add items in the order of indices 1, 2, ..., 127, followed +/// by index 0, and then index 128 onward. In this implementation, the focus is on placing the first +/// RLP encoded value at index 128. +/// +/// The primary optimization comes from computing the hash (remaining_key_path ++ RLP(item)) as +/// early as possible during the trie construction process. This approach minimizes the memory +/// required by avoiding the need to store all items simultaneously. +/// +/// For transactions, from real ethereum block, we can observe the following: +/// - worst case we use 90% less space +/// - best case we use 99.5% less space +/// +/// ```ignore +/// hash max 8042 +/// hash min 444 +/// hash total 79655 +/// hash saved worst case 0.1009603916891595 +/// hash saved best case 0.005574038039043374 +/// ``` +/// +/// For receipts, from real ethereum block, we can observe the following: +/// - worst case we use 94% less space +/// - best case we use 99.3% less space +/// +/// ```ignore +/// hash max 7249 +/// hash min 760 +/// hash total 106054 +/// hash saved worst case 0.06835197163709054 +/// hash saved best case 0.007166160635148132 +/// ``` +pub struct IncrementalHashBuilder { + /// Hash builder. + hash_builder: HashBuilder, + /// The index of the current value. + index: u64, + /// RLP encoded value. + first_value: Option>, +} + +impl IncrementalHashBuilder { + /// Construct the hash builder from the first value. + pub fn new() -> Self { + Self { hash_builder: HashBuilder::default(), index: 1, first_value: None } + } + + /// Converts the intermediate representation back into a builder. + pub fn from_ir(serialized: IncrementalHashBuilderIR) -> Self { + let value = match serialized.value_type { + 0 => { + let mut value = HashBuilderValue::new(); + value.set_bytes_owned(serialized.builder_value); + value + }, + 1 => { + let buffer: alloy_core::primitives::B256 = serialized.builder_value[..] + .try_into() + .expect("The buffer was serialized properly; qed"); + let value_ref = HashBuilderValueRef::Hash(&buffer); + + let mut value = HashBuilderValue::new(); + value.set_from_ref(value_ref); + value + }, + _ => panic!("Value type was serialized properly; qed"), + }; + + let hash_builder = HashBuilder { + key: Nibbles::from_nibbles(serialized.key), + value, + stack: serialized + .stack + .into_iter() + .map(|raw| RlpNode::from_raw(&raw).expect("RlpNode was encoded properly; qed")) + .collect(), + state_masks: serialized + .state_masks + .into_iter() + .map(|mask| TrieMask::new(mask)) + .collect(), + tree_masks: serialized.tree_masks.into_iter().map(|mask| TrieMask::new(mask)).collect(), + hash_masks: serialized.hash_masks.into_iter().map(|mask| TrieMask::new(mask)).collect(), + stored_in_database: serialized.stored_in_database, + updated_branch_nodes: None, + proof_retainer: None, + rlp_buf: serialized.rlp_buf, + }; + + IncrementalHashBuilder { hash_builder, index: serialized.index, first_value: None } + } + + /// Converts the builder into an intermediate representation. + pub fn to_ir(self) -> IncrementalHashBuilderIR { + IncrementalHashBuilderIR { + key: self.hash_builder.key.to_vec(), + value_type: match self.hash_builder.value.as_ref() { + HashBuilderValueRef::Bytes(_) => 0, + HashBuilderValueRef::Hash(_) => 1, + }, + builder_value: self.hash_builder.value.as_slice().to_vec(), + stack: self.hash_builder.stack.into_iter().map(|n| n.as_slice().to_vec()).collect(), + + state_masks: self.hash_builder.state_masks.into_iter().map(|mask| mask.get()).collect(), + tree_masks: self.hash_builder.tree_masks.into_iter().map(|mask| mask.get()).collect(), + hash_masks: self.hash_builder.hash_masks.into_iter().map(|mask| mask.get()).collect(), + + stored_in_database: self.hash_builder.stored_in_database, + rlp_buf: self.hash_builder.rlp_buf, + index: self.index, + } + } + + /// Add a new value to the hash builder. + /// + /// The value is returned if it should be preserved until a later time. + pub fn add_value(&mut self, value: Vec) { + let rlp_index = rlp::encode_fixed_size(&self.index); + self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &value); + + if self.index == 0x7f { + // Pushing the previous item since we are expecting the index + // to be index + 1 in the sorted order. + if let Some(encoded_value) = self.first_value.take() { + let rlp_index = rlp::encode_fixed_size(&0usize); + + self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); + } + } + + self.index = self.index.saturating_add(1); + } + + /// Load the first value from storage. + pub fn load_first_value(&mut self, value: Vec) { + self.first_value = Some(value); + } + + /// Check if we should load the first value from storage. + pub fn should_load_first_value(&self, all_tx_processed: bool) -> bool { + if all_tx_processed { + self.index < 0x7f + } else { + self.index == 0x7f + } + } + + /// Build the trie root hash. + pub fn finish(&mut self) -> H256 { + // We have less than 0x7f items to the trie. Therefore, the + // first value index is the last one in the sorted vector + // by rlp encoding of the index. + if let Some(encoded_value) = self.first_value.take() { + let rlp_index = rlp::encode_fixed_size(&0usize); + self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); + } + + self.hash_builder.root().0.into() + } +} + +/// The intermediate representation of the [`IncrementalHashBuilder`] that can be placed into the +/// pallets storage. This contains the minimum amount of data that is needed to serialize +/// and deserialize the incremental hash builder. +#[derive(Encode, Decode, scale_info::TypeInfo, Clone, PartialEq, Eq, Debug)] +pub struct IncrementalHashBuilderIR { + /// The nibbles of the builder. + pub key: Vec, + /// The type of the builder value. + /// 0 represents plain bytes. + /// 1 represents the hash of the bytes. + pub value_type: u8, + /// The current value stored by the builder. + pub builder_value: Vec, + /// The stack of RLP nodes. + pub stack: Vec>, + /// State mask. + pub state_masks: Vec, + /// Tree mask. + pub tree_masks: Vec, + /// Hash mask. + pub hash_masks: Vec, + /// True if the buider should be stored in database. + pub stored_in_database: bool, + /// Current RLP buffer. + pub rlp_buf: Vec, + /// The index of the current value. + pub index: u64, +} + +impl Default for IncrementalHashBuilderIR { + fn default() -> Self { + Self { + // First deserialization time from the pallet storage, is expected + // to contain index 1. + index: 1, + key: Vec::new(), + value_type: 0, + builder_value: Vec::new(), + stack: Vec::new(), + state_masks: Vec::new(), + tree_masks: Vec::new(), + hash_masks: Vec::new(), + stored_in_database: false, + rlp_buf: Vec::new(), + } + } +} From 1895820e56c7c9bc970ee0476f1eedb8a68de103 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 25 Sep 2025 14:42:17 +0000 Subject: [PATCH 207/273] revive: Move block builder to a dedicated module Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 501 +---------------- .../src/evm/block_hash/block_builder.rs | 524 ++++++++++++++++++ .../revive/src/evm/block_hash/receipt.rs | 2 +- 3 files changed, 531 insertions(+), 496 deletions(-) create mode 100644 substrate/frame/revive/src/evm/block_hash/block_builder.rs diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index a9f215bc67a48..f222ed49d4f8b 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -24,18 +24,17 @@ pub use receipt::{AccumulateReceipt, LogsBloom}; mod hash_builder; pub use hash_builder::{IncrementalHashBuilder, IncrementalHashBuilderIR}; -use crate::evm::{ - block_hash::receipt::BLOOM_SIZE_BYTES, Block, HashesOrTransactionInfos, TYPE_EIP1559, - TYPE_EIP2930, TYPE_EIP4844, TYPE_EIP7702, -}; +mod block_builder; +pub use block_builder::{EthereumBlockBuilder, EthereumBlockBuilderIR}; -use alloc::{vec, vec::Vec}; +use crate::evm::Block; + +use alloc::vec::Vec; use alloy_core::primitives::{bytes::BufMut, B256}; use codec::{Decode, Encode}; -use frame_support::weights::Weight; use scale_info::TypeInfo; -use sp_core::{keccak_256, H160, H256, U256}; +use sp_core::{H256, U256}; /// Details needed to reconstruct the receipt info in the RPC /// layer without losing accuracy. @@ -91,491 +90,3 @@ impl Block { alloy_header.hash_slow().0.into() } } - -/// The intermediate representation of the Ethereum block builder. -#[derive(Encode, Decode, TypeInfo)] -pub struct EthereumBlockBuilderIR { - transaction_root_builder: IncrementalHashBuilderIR, - receipts_root_builder: IncrementalHashBuilderIR, - gas_used: U256, - logs_bloom: [u8; BLOOM_SIZE_BYTES], - pub(crate) tx_hashes: Vec, - pub(crate) gas_info: Vec, -} - -impl Default for EthereumBlockBuilderIR { - fn default() -> Self { - Self { - transaction_root_builder: IncrementalHashBuilderIR::default(), - receipts_root_builder: IncrementalHashBuilderIR::default(), - gas_used: U256::zero(), - tx_hashes: Vec::new(), - logs_bloom: [0; BLOOM_SIZE_BYTES], - gas_info: Vec::new(), - } - } -} - -/// Ethereum block builder designed to incrementally build the transaction and receipt trie roots. -/// -/// This builder is optimized to minimize memory usage and pallet storage by leveraging the internal -/// structure of the Ethereum trie and the RLP encoding of receipts. -/// -/// The builder relies on the pallet storage to store the first transaction and receipt. This -/// ensures we are reading and writing a minimal amount of data to the pallet storage. For example, -/// if the block has less than 127 transactions, for each transaction we would have otherwise -/// serialized and deserialized the first transaction bytes. -/// -/// # Example -/// -/// ```ignore -/// // Get the intermediate representation from pallet storage. -/// let ir = EthBlockBuilderIR::::get(); -/// // Convert from the serialized from into the builder object. -/// let mut block_builder = EthereumBlockBuilder::from_ir(ir); -/// -/// for tx in transactions { -/// // Ensure the first transaction is loaded. -/// if block_builder.should_load_first_values() { -/// let values = EthBlockBuilderFirstValues::::take(); -/// block_builder.load_first_values(values); -/// } -/// -/// // Process the transaction. -/// if let Some(first_values) = block_builder.process_transaction(..) { -/// // Store the first transaction and receipt in pallet storage. -/// EthBlockBuilderFirstValues::::put(first_values); -/// } -/// } -/// -/// // Either the value was previously consumed, or the block has less than 127 transactions. -/// let values = EthBlockBuilderFirstValues::::take(); -/// block_builder.load_first_values(values); -/// -/// // Build the block. -/// let (block, gas_info) = block_builder.build(...); -/// ``` -pub struct EthereumBlockBuilder { - pub(crate) transaction_root_builder: IncrementalHashBuilder, - pub(crate) receipts_root_builder: IncrementalHashBuilder, - - gas_used: U256, - pub(crate) tx_hashes: Vec, - - logs_bloom: LogsBloom, - gas_info: Vec, - _phantom: core::marker::PhantomData, -} - -impl EthereumBlockBuilder { - /// Constructs a new [`EthereumBlockBuilder`]. - pub fn new() -> Self { - Self { - transaction_root_builder: IncrementalHashBuilder::new(), - receipts_root_builder: IncrementalHashBuilder::new(), - gas_used: U256::zero(), - tx_hashes: Vec::new(), - logs_bloom: LogsBloom::new(), - gas_info: Vec::new(), - _phantom: core::marker::PhantomData, - } - } - - /// Converts the builder into an intermediate representation. - /// - /// The intermediate representation is extracted from the pallet storage. - pub fn to_ir(self) -> EthereumBlockBuilderIR { - EthereumBlockBuilderIR { - transaction_root_builder: self.transaction_root_builder.to_ir(), - receipts_root_builder: self.receipts_root_builder.to_ir(), - gas_used: self.gas_used, - tx_hashes: self.tx_hashes, - logs_bloom: self.logs_bloom.bloom, - gas_info: self.gas_info, - } - } - - /// Converts the intermediate representation back into a builder. - /// - /// The intermediate representation is placed into the pallet storage. - pub fn from_ir(ir: EthereumBlockBuilderIR) -> Self { - Self { - transaction_root_builder: IncrementalHashBuilder::from_ir(ir.transaction_root_builder), - receipts_root_builder: IncrementalHashBuilder::from_ir(ir.receipts_root_builder), - gas_used: ir.gas_used, - tx_hashes: ir.tx_hashes, - logs_bloom: LogsBloom { bloom: ir.logs_bloom }, - gas_info: ir.gas_info, - _phantom: core::marker::PhantomData, - } - } - - /// Store the first transaction and receipt in pallet storage. - fn store_first_values(&mut self, values: (Vec, Vec)) { - crate::EthBlockBuilderFirstValues::::put(Some(values)); - } - - /// Load the first transaction and receipt from pallet storage. - fn load_first_values(&mut self) -> Option<(Vec, Vec)> { - crate::EthBlockBuilderFirstValues::::take() - } - - /// Process a single transaction at a time. - /// - /// Returns the first transaction and receipt to be stored in the pallet storage until - /// either the [`Self::should_load_first_values`] returns true or the [`Self::build`] method - /// is called. - pub fn process_transaction( - &mut self, - transaction_encoded: Vec, - success: bool, - gas_used: Weight, - encoded_logs: Vec, - receipt_bloom: LogsBloom, - ) { - let tx_hash = H256(keccak_256(&transaction_encoded)); - self.tx_hashes.push(tx_hash); - - // Update the transaction trie. - let transaction_type = Self::extract_transaction_type(transaction_encoded.as_slice()); - - // Update gas and logs bloom. - self.gas_used = self.gas_used.saturating_add(gas_used.ref_time().into()); - self.logs_bloom.accrue_bloom(&receipt_bloom); - - // Update the receipt trie. - let encoded_receipt = AccumulateReceipt::encoded_receipt( - encoded_logs, - receipt_bloom, - success, - self.gas_used.as_u64(), - transaction_type, - ); - - self.gas_info.push(ReceiptGasInfo { gas_used: gas_used.ref_time().into() }); - - // The first transaction and receipt are returned to be stored in the pallet storage. - // The index of the incremental hash builders already expects the next items. - if self.tx_hashes.len() == 1 { - self.store_first_values((transaction_encoded, encoded_receipt)); - return; - } - - if self.transaction_root_builder.should_load_first_value(false) { - if let Some((first_tx, first_receipt)) = self.load_first_values() { - self.transaction_root_builder.load_first_value(first_tx); - self.receipts_root_builder.load_first_value(first_receipt); - } - } - - self.transaction_root_builder.add_value(transaction_encoded); - self.receipts_root_builder.add_value(encoded_receipt); - } - - /// Build the ethereum block from provided data. - pub fn build( - &mut self, - block_number: U256, - parent_hash: H256, - timestamp: U256, - block_author: H160, - gas_limit: U256, - ) -> (Block, Vec) { - if self.transaction_root_builder.should_load_first_value(true) { - if let Some((first_tx, first_receipt)) = self.load_first_values() { - self.transaction_root_builder.load_first_value(first_tx); - self.receipts_root_builder.load_first_value(first_receipt); - } - } - - let transactions_root = self.transaction_root_builder.finish(); - let receipts_root = self.receipts_root_builder.finish(); - - let tx_hashes = core::mem::replace(&mut self.tx_hashes, Vec::new()); - let gas_info = core::mem::replace(&mut self.gas_info, Vec::new()); - - let mut block = Block { - number: block_number, - parent_hash, - timestamp, - miner: block_author, - gas_limit, - - state_root: transactions_root, - transactions_root, - receipts_root, - - gas_used: self.gas_used, - - logs_bloom: self.logs_bloom.bloom.into(), - transactions: HashesOrTransactionInfos::Hashes(tx_hashes), - - ..Default::default() - }; - - let block_hash = block.header_hash(); - block.hash = block_hash; - - (block, gas_info) - } - - /// Extracts the transaction type from the RLP encoded transaction. - /// - /// This is needed to build the RLP encoding of the receipt. - fn extract_transaction_type(transaction_encoded: &[u8]) -> Vec { - // The transaction type is the first byte from the encoded transaction, - // when the transaction is not legacy. For legacy transactions, there's - // no type defined. Additionally, the RLP encoding of the tx type byte - // is identical to the tx type. - transaction_encoded - .first() - .cloned() - .map(|first| match first { - TYPE_EIP2930 | TYPE_EIP1559 | TYPE_EIP4844 | TYPE_EIP7702 => vec![first], - _ => vec![], - }) - .unwrap_or_default() - } -} - -#[cfg(test)] -mod test { - use super::*; - use crate::{ - evm::{Block, ReceiptInfo}, - tests::{ExtBuilder, Test}, - }; - use alloy_core::rlp; - use alloy_trie::{HashBuilder, Nibbles}; - - /// Manual implementation of the Ethereum trie root computation. - /// - /// Given the RLP encoded values, the implementation adjusts the - /// index to account for RLP encoding rules. - fn manual_trie_root_compute(encoded: Vec>) -> H256 { - const fn adjust_index_for_rlp(i: usize, len: usize) -> usize { - if i > 0x7f { - i - } else if i == 0x7f || i + 1 == len { - 0 - } else { - i + 1 - } - } - - let mut hb = HashBuilder::default(); - - let items_len = encoded.len(); - for i in 0..items_len { - let index = adjust_index_for_rlp(i, items_len); - - let index_buffer = rlp::encode_fixed_size(&index); - hb.add_leaf(Nibbles::unpack(&index_buffer), &encoded[index]); - - // Each mask in these vectors holds a u16. - let masks_len = (hb.state_masks.len() + hb.tree_masks.len() + hb.hash_masks.len()) * 2; - let _size = hb.key.len() + - hb.value.as_slice().len() + - hb.stack.len() * 33 + - masks_len + hb.rlp_buf.len(); - } - - hb.root().0.into() - } - - /// The test compares three hashing options: - /// - Block::compute_trie_root: this uses the consensus proofs crate - /// - manual_trie_root_compute: this ensures the keys are added in the correct order - /// - IncrementalHashBuilder: this offers the most compact storage option - /// - /// The above hashes must be identical. While at it, the incremental hash - /// builder is serialized and deserialized to ensure consistency. - #[test] - fn incremental_hasher() { - const UPPER_BOUND: usize = 256; - const RLP_VALUE_SIZE: usize = 128; - - let mut rlp_values = Vec::with_capacity(UPPER_BOUND); - - for i in 0..UPPER_BOUND { - // Simulate an RLP value repeated for `i`. - let rlp_value = vec![i as u8; RLP_VALUE_SIZE]; - - rlp_values.push(rlp_value); - - let block_hash: H256 = Block::compute_trie_root(&rlp_values).0.into(); - let manual_hash = manual_trie_root_compute(rlp_values.clone()); - - let mut first_value = Some(rlp_values[0].clone()); - let mut builder = IncrementalHashBuilder::new(); - for rlp_value in rlp_values.iter().skip(1) { - if builder.should_load_first_value(false) { - let value = first_value.take().expect("First value must be present; qed"); - builder.load_first_value(value); - } - builder.add_value(rlp_value.clone()); - - let ir_builder = builder.to_ir(); - builder = IncrementalHashBuilder::from_ir(ir_builder); - } - if let Some(value) = first_value.take() { - builder.load_first_value(value); - } - let incremental_hash = builder.finish(); - - assert_eq!(block_hash, manual_hash); - assert_eq!(block_hash, incremental_hash); - } - } - - #[test] - fn test_alloy_rlp_ordering_compatibility() { - let zero_encoded = rlp::encode_fixed_size(&0usize); - let max_single_byte = rlp::encode_fixed_size(&127usize); - let first_multi_byte = rlp::encode_fixed_size(&128usize); - - // Document the exact bytes we expect - assert_eq!(zero_encoded.as_slice(), &[0x80]); // RLP encoding of 0 - assert_eq!(max_single_byte.as_slice(), &[0x7f]); // RLP encoding of 127 - assert_eq!(first_multi_byte.as_slice(), &[0x81, 0x80]); // RLP encoding of 128 - - // Verify ordering - assert!(max_single_byte < zero_encoded); - assert!(zero_encoded < first_multi_byte); - } - - #[test] - fn ensure_identical_hashes() { - // curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x161bd0f", true],"id":1}' -H "Content-Type: application/json" https://ethereum-rpc.publicnode.com | jq .result - const BLOCK_PATH: &str = "./test-assets/eth_block.json"; - // curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockReceipts","params":["0x161bd0f"],"id":1}' -H "Content-Type: application/json" https://ethereum-rpc.publicnode.com | jq .result - const BLOCK_RECEIPTS: &str = "./test-assets/eth_receipts.json"; - - let json = std::fs::read_to_string(BLOCK_PATH).unwrap(); - let block: Block = serde_json::from_str(&json).unwrap(); - - let json = std::fs::read_to_string(BLOCK_RECEIPTS).unwrap(); - let receipts: Vec = serde_json::from_str(&json).unwrap(); - - assert_eq!(block.header_hash(), receipts[0].block_hash); - - let tx = match &block.transactions { - HashesOrTransactionInfos::TransactionInfos(infos) => infos.clone(), - _ => panic!("Expected full tx body"), - }; - - let encoded_tx: Vec<_> = tx - .clone() - .into_iter() - .map(|tx| tx.transaction_signed.signed_payload()) - .collect(); - - let transaction_details: Vec<_> = tx - .into_iter() - .zip(receipts.into_iter()) - .map(|(tx_info, receipt_info)| { - if tx_info.transaction_index != receipt_info.transaction_index { - panic!("Transaction and receipt index do not match"); - } - - let logs: Vec<_> = receipt_info - .logs - .into_iter() - .map(|log| (log.address, log.data.unwrap_or_default().0, log.topics)) - .collect(); - - ( - tx_info.transaction_signed.signed_payload(), - logs, - receipt_info.status.unwrap_or_default() == 1.into(), - receipt_info.gas_used.as_u64(), - ) - }) - .collect(); - - ExtBuilder::default().build().execute_with(|| { - // Build the ethereum block incrementally. - let mut incremental_block = EthereumBlockBuilder::::new(); - for (signed, logs, success, gas_used) in transaction_details { - let mut log_size = 0; - - let mut accumulate_receipt = AccumulateReceipt::new(); - for (address, data, topics) in &logs { - let current_size = data.len() + topics.len() * 32 + 20; - log_size += current_size; - accumulate_receipt.add_log(address, data, topics); - } - - incremental_block.process_transaction( - signed, - success, - gas_used.into(), - accumulate_receipt.encoding, - accumulate_receipt.bloom, - ); - - let ir = incremental_block.to_ir(); - incremental_block = EthereumBlockBuilder::from_ir(ir); - println!(" Log size {:?}", log_size); - } - - // The block hash would differ here because we don't take into account - // the ommers and other fields from the substrate perspective. - // However, the state roots must be identical. - let built_block = incremental_block - .build( - block.number, - block.parent_hash, - block.timestamp, - block.miner, - Default::default(), - ) - .0; - - assert_eq!(built_block.gas_used, block.gas_used); - assert_eq!(built_block.logs_bloom, block.logs_bloom); - // We are using the tx root for state root. - assert_eq!(built_block.state_root, built_block.transactions_root); - - // Double check the receipts roots. - assert_eq!(built_block.receipts_root, block.receipts_root); - - let manual_hash = manual_trie_root_compute(encoded_tx.clone()); - - let mut total_size = 0; - for enc in &encoded_tx { - total_size += enc.len(); - } - println!("Total size used by transactions: {:?}", total_size); - - let mut builder = IncrementalHashBuilder::new(); - let mut loaded = false; - for tx in encoded_tx.iter().skip(1) { - if builder.should_load_first_value(false) { - loaded = true; - let first_tx = encoded_tx[0].clone(); - builder.load_first_value(first_tx); - } - builder.add_value(tx.clone()) - } - if !loaded { - let first_tx = encoded_tx[0].clone(); - builder.load_first_value(first_tx); - } - - let incremental_hash = builder.finish(); - - println!("Incremental hash: {:?}", incremental_hash); - println!("Manual Hash: {:?}", manual_hash); - println!("Built block Hash: {:?}", built_block.transactions_root); - println!("Real Block Tx Hash: {:?}", block.transactions_root); - - assert_eq!(incremental_hash, block.transactions_root); - - // This double checks the compute logic. - assert_eq!(manual_hash, block.transactions_root); - // This ensures we can compute the same transaction root as Ethereum. - assert_eq!(block.transactions_root, built_block.transactions_root); - }); - } -} diff --git a/substrate/frame/revive/src/evm/block_hash/block_builder.rs b/substrate/frame/revive/src/evm/block_hash/block_builder.rs new file mode 100644 index 0000000000000..f86de6b241dcc --- /dev/null +++ b/substrate/frame/revive/src/evm/block_hash/block_builder.rs @@ -0,0 +1,524 @@ +// 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. + +//! Ethereum block builder. + +use crate::{ + evm::{ + block_hash::{ + receipt::BLOOM_SIZE_BYTES, AccumulateReceipt, IncrementalHashBuilder, + IncrementalHashBuilderIR, LogsBloom, + }, + Block, HashesOrTransactionInfos, TYPE_EIP1559, TYPE_EIP2930, TYPE_EIP4844, TYPE_EIP7702, + }, + ReceiptGasInfo, +}; + +use alloc::{vec, vec::Vec}; + +use codec::{Decode, Encode}; +use frame_support::weights::Weight; +use scale_info::TypeInfo; +use sp_core::{keccak_256, H160, H256, U256}; + +/// Ethereum block builder designed to incrementally build the transaction and receipt trie roots. +/// +/// This builder is optimized to minimize memory usage and pallet storage by leveraging the internal +/// structure of the Ethereum trie and the RLP encoding of receipts. +/// +/// The builder relies on the pallet storage to store the first transaction and receipt. This +/// ensures we are reading and writing a minimal amount of data to the pallet storage. For example, +/// if the block has less than 127 transactions, for each transaction we would have otherwise +/// serialized and deserialized the first transaction bytes. +/// +/// # Example +/// +/// ```ignore +/// // Get the intermediate representation from pallet storage. +/// let ir = EthBlockBuilderIR::::get(); +/// // Convert from the serialized from into the builder object. +/// let mut block_builder = EthereumBlockBuilder::from_ir(ir); +/// +/// for tx in transactions { +/// // Ensure the first transaction is loaded. +/// if block_builder.should_load_first_values() { +/// let values = EthBlockBuilderFirstValues::::take(); +/// block_builder.load_first_values(values); +/// } +/// +/// // Process the transaction. +/// if let Some(first_values) = block_builder.process_transaction(..) { +/// // Store the first transaction and receipt in pallet storage. +/// EthBlockBuilderFirstValues::::put(first_values); +/// } +/// } +/// +/// // Either the value was previously consumed, or the block has less than 127 transactions. +/// let values = EthBlockBuilderFirstValues::::take(); +/// block_builder.load_first_values(values); +/// +/// // Build the block. +/// let (block, gas_info) = block_builder.build(...); +/// ``` +pub struct EthereumBlockBuilder { + pub(crate) transaction_root_builder: IncrementalHashBuilder, + pub(crate) receipts_root_builder: IncrementalHashBuilder, + + gas_used: U256, + pub(crate) tx_hashes: Vec, + + logs_bloom: LogsBloom, + gas_info: Vec, + _phantom: core::marker::PhantomData, +} + +impl EthereumBlockBuilder { + /// Constructs a new [`EthereumBlockBuilder`]. + pub fn new() -> Self { + Self { + transaction_root_builder: IncrementalHashBuilder::new(), + receipts_root_builder: IncrementalHashBuilder::new(), + gas_used: U256::zero(), + tx_hashes: Vec::new(), + logs_bloom: LogsBloom::new(), + gas_info: Vec::new(), + _phantom: core::marker::PhantomData, + } + } + + /// Converts the builder into an intermediate representation. + /// + /// The intermediate representation is extracted from the pallet storage. + pub fn to_ir(self) -> EthereumBlockBuilderIR { + EthereumBlockBuilderIR { + transaction_root_builder: self.transaction_root_builder.to_ir(), + receipts_root_builder: self.receipts_root_builder.to_ir(), + gas_used: self.gas_used, + tx_hashes: self.tx_hashes, + logs_bloom: self.logs_bloom.bloom, + gas_info: self.gas_info, + } + } + + /// Converts the intermediate representation back into a builder. + /// + /// The intermediate representation is placed into the pallet storage. + pub fn from_ir(ir: EthereumBlockBuilderIR) -> Self { + Self { + transaction_root_builder: IncrementalHashBuilder::from_ir(ir.transaction_root_builder), + receipts_root_builder: IncrementalHashBuilder::from_ir(ir.receipts_root_builder), + gas_used: ir.gas_used, + tx_hashes: ir.tx_hashes, + logs_bloom: LogsBloom { bloom: ir.logs_bloom }, + gas_info: ir.gas_info, + _phantom: core::marker::PhantomData, + } + } + + /// Store the first transaction and receipt in pallet storage. + fn store_first_values(&mut self, values: (Vec, Vec)) { + crate::EthBlockBuilderFirstValues::::put(Some(values)); + } + + /// Load the first transaction and receipt from pallet storage. + fn load_first_values(&mut self) -> Option<(Vec, Vec)> { + crate::EthBlockBuilderFirstValues::::take() + } + + /// Process a single transaction at a time. + /// + /// Returns the first transaction and receipt to be stored in the pallet storage until + /// either the [`Self::should_load_first_values`] returns true or the [`Self::build`] method + /// is called. + pub fn process_transaction( + &mut self, + transaction_encoded: Vec, + success: bool, + gas_used: Weight, + encoded_logs: Vec, + receipt_bloom: LogsBloom, + ) { + let tx_hash = H256(keccak_256(&transaction_encoded)); + self.tx_hashes.push(tx_hash); + + // Update the transaction trie. + let transaction_type = Self::extract_transaction_type(transaction_encoded.as_slice()); + + // Update gas and logs bloom. + self.gas_used = self.gas_used.saturating_add(gas_used.ref_time().into()); + self.logs_bloom.accrue_bloom(&receipt_bloom); + + // Update the receipt trie. + let encoded_receipt = AccumulateReceipt::encoded_receipt( + encoded_logs, + receipt_bloom, + success, + self.gas_used.as_u64(), + transaction_type, + ); + + self.gas_info.push(ReceiptGasInfo { gas_used: gas_used.ref_time().into() }); + + // The first transaction and receipt are returned to be stored in the pallet storage. + // The index of the incremental hash builders already expects the next items. + if self.tx_hashes.len() == 1 { + self.store_first_values((transaction_encoded, encoded_receipt)); + return; + } + + if self.transaction_root_builder.should_load_first_value(false) { + if let Some((first_tx, first_receipt)) = self.load_first_values() { + self.transaction_root_builder.load_first_value(first_tx); + self.receipts_root_builder.load_first_value(first_receipt); + } + } + + self.transaction_root_builder.add_value(transaction_encoded); + self.receipts_root_builder.add_value(encoded_receipt); + } + + /// Build the ethereum block from provided data. + pub fn build( + &mut self, + block_number: U256, + parent_hash: H256, + timestamp: U256, + block_author: H160, + gas_limit: U256, + ) -> (Block, Vec) { + if self.transaction_root_builder.should_load_first_value(true) { + if let Some((first_tx, first_receipt)) = self.load_first_values() { + self.transaction_root_builder.load_first_value(first_tx); + self.receipts_root_builder.load_first_value(first_receipt); + } + } + + let transactions_root = self.transaction_root_builder.finish(); + let receipts_root = self.receipts_root_builder.finish(); + + let tx_hashes = core::mem::replace(&mut self.tx_hashes, Vec::new()); + let gas_info = core::mem::replace(&mut self.gas_info, Vec::new()); + + let mut block = Block { + number: block_number, + parent_hash, + timestamp, + miner: block_author, + gas_limit, + + state_root: transactions_root, + transactions_root, + receipts_root, + + gas_used: self.gas_used, + + logs_bloom: self.logs_bloom.bloom.into(), + transactions: HashesOrTransactionInfos::Hashes(tx_hashes), + + ..Default::default() + }; + + let block_hash = block.header_hash(); + block.hash = block_hash; + + (block, gas_info) + } + + /// Extracts the transaction type from the RLP encoded transaction. + /// + /// This is needed to build the RLP encoding of the receipt. + fn extract_transaction_type(transaction_encoded: &[u8]) -> Vec { + // The transaction type is the first byte from the encoded transaction, + // when the transaction is not legacy. For legacy transactions, there's + // no type defined. Additionally, the RLP encoding of the tx type byte + // is identical to the tx type. + transaction_encoded + .first() + .cloned() + .map(|first| match first { + TYPE_EIP2930 | TYPE_EIP1559 | TYPE_EIP4844 | TYPE_EIP7702 => vec![first], + _ => vec![], + }) + .unwrap_or_default() + } +} + +/// The intermediate representation of the Ethereum block builder. +#[derive(Encode, Decode, TypeInfo)] +pub struct EthereumBlockBuilderIR { + transaction_root_builder: IncrementalHashBuilderIR, + receipts_root_builder: IncrementalHashBuilderIR, + gas_used: U256, + logs_bloom: [u8; BLOOM_SIZE_BYTES], + pub(crate) tx_hashes: Vec, + pub(crate) gas_info: Vec, +} + +impl Default for EthereumBlockBuilderIR { + fn default() -> Self { + Self { + transaction_root_builder: IncrementalHashBuilderIR::default(), + receipts_root_builder: IncrementalHashBuilderIR::default(), + gas_used: U256::zero(), + tx_hashes: Vec::new(), + logs_bloom: [0; BLOOM_SIZE_BYTES], + gas_info: Vec::new(), + } + } +} + +#[cfg(test)] +mod test { + use super::*; + use crate::{ + evm::{Block, ReceiptInfo}, + tests::{ExtBuilder, Test}, + }; + use alloy_core::rlp; + use alloy_trie::{HashBuilder, Nibbles}; + + /// Manual implementation of the Ethereum trie root computation. + /// + /// Given the RLP encoded values, the implementation adjusts the + /// index to account for RLP encoding rules. + fn manual_trie_root_compute(encoded: Vec>) -> H256 { + const fn adjust_index_for_rlp(i: usize, len: usize) -> usize { + if i > 0x7f { + i + } else if i == 0x7f || i + 1 == len { + 0 + } else { + i + 1 + } + } + + let mut hb = HashBuilder::default(); + + let items_len = encoded.len(); + for i in 0..items_len { + let index = adjust_index_for_rlp(i, items_len); + + let index_buffer = rlp::encode_fixed_size(&index); + hb.add_leaf(Nibbles::unpack(&index_buffer), &encoded[index]); + + // Each mask in these vectors holds a u16. + let masks_len = (hb.state_masks.len() + hb.tree_masks.len() + hb.hash_masks.len()) * 2; + let _size = hb.key.len() + + hb.value.as_slice().len() + + hb.stack.len() * 33 + + masks_len + hb.rlp_buf.len(); + } + + hb.root().0.into() + } + + /// The test compares three hashing options: + /// - Block::compute_trie_root: this uses the consensus proofs crate + /// - manual_trie_root_compute: this ensures the keys are added in the correct order + /// - IncrementalHashBuilder: this offers the most compact storage option + /// + /// The above hashes must be identical. While at it, the incremental hash + /// builder is serialized and deserialized to ensure consistency. + #[test] + fn incremental_hasher() { + const UPPER_BOUND: usize = 256; + const RLP_VALUE_SIZE: usize = 128; + + let mut rlp_values = Vec::with_capacity(UPPER_BOUND); + + for i in 0..UPPER_BOUND { + // Simulate an RLP value repeated for `i`. + let rlp_value = vec![i as u8; RLP_VALUE_SIZE]; + + rlp_values.push(rlp_value); + + let block_hash: H256 = Block::compute_trie_root(&rlp_values).0.into(); + let manual_hash = manual_trie_root_compute(rlp_values.clone()); + + let mut first_value = Some(rlp_values[0].clone()); + let mut builder = IncrementalHashBuilder::new(); + for rlp_value in rlp_values.iter().skip(1) { + if builder.should_load_first_value(false) { + let value = first_value.take().expect("First value must be present; qed"); + builder.load_first_value(value); + } + builder.add_value(rlp_value.clone()); + + let ir_builder = builder.to_ir(); + builder = IncrementalHashBuilder::from_ir(ir_builder); + } + if let Some(value) = first_value.take() { + builder.load_first_value(value); + } + let incremental_hash = builder.finish(); + + assert_eq!(block_hash, manual_hash); + assert_eq!(block_hash, incremental_hash); + } + } + + #[test] + fn test_alloy_rlp_ordering_compatibility() { + let zero_encoded = rlp::encode_fixed_size(&0usize); + let max_single_byte = rlp::encode_fixed_size(&127usize); + let first_multi_byte = rlp::encode_fixed_size(&128usize); + + // Document the exact bytes we expect + assert_eq!(zero_encoded.as_slice(), &[0x80]); // RLP encoding of 0 + assert_eq!(max_single_byte.as_slice(), &[0x7f]); // RLP encoding of 127 + assert_eq!(first_multi_byte.as_slice(), &[0x81, 0x80]); // RLP encoding of 128 + + // Verify ordering + assert!(max_single_byte < zero_encoded); + assert!(zero_encoded < first_multi_byte); + } + + #[test] + fn ensure_identical_hashes() { + // curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x161bd0f", true],"id":1}' -H "Content-Type: application/json" https://ethereum-rpc.publicnode.com | jq .result + const BLOCK_PATH: &str = "./test-assets/eth_block.json"; + // curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockReceipts","params":["0x161bd0f"],"id":1}' -H "Content-Type: application/json" https://ethereum-rpc.publicnode.com | jq .result + const BLOCK_RECEIPTS: &str = "./test-assets/eth_receipts.json"; + + let json = std::fs::read_to_string(BLOCK_PATH).unwrap(); + let block: Block = serde_json::from_str(&json).unwrap(); + + let json = std::fs::read_to_string(BLOCK_RECEIPTS).unwrap(); + let receipts: Vec = serde_json::from_str(&json).unwrap(); + + assert_eq!(block.header_hash(), receipts[0].block_hash); + + let tx = match &block.transactions { + HashesOrTransactionInfos::TransactionInfos(infos) => infos.clone(), + _ => panic!("Expected full tx body"), + }; + + let encoded_tx: Vec<_> = tx + .clone() + .into_iter() + .map(|tx| tx.transaction_signed.signed_payload()) + .collect(); + + let transaction_details: Vec<_> = tx + .into_iter() + .zip(receipts.into_iter()) + .map(|(tx_info, receipt_info)| { + if tx_info.transaction_index != receipt_info.transaction_index { + panic!("Transaction and receipt index do not match"); + } + + let logs: Vec<_> = receipt_info + .logs + .into_iter() + .map(|log| (log.address, log.data.unwrap_or_default().0, log.topics)) + .collect(); + + ( + tx_info.transaction_signed.signed_payload(), + logs, + receipt_info.status.unwrap_or_default() == 1.into(), + receipt_info.gas_used.as_u64(), + ) + }) + .collect(); + + ExtBuilder::default().build().execute_with(|| { + // Build the ethereum block incrementally. + let mut incremental_block = EthereumBlockBuilder::::new(); + for (signed, logs, success, gas_used) in transaction_details { + let mut log_size = 0; + + let mut accumulate_receipt = AccumulateReceipt::new(); + for (address, data, topics) in &logs { + let current_size = data.len() + topics.len() * 32 + 20; + log_size += current_size; + accumulate_receipt.add_log(address, data, topics); + } + + incremental_block.process_transaction( + signed, + success, + gas_used.into(), + accumulate_receipt.encoding, + accumulate_receipt.bloom, + ); + + let ir = incremental_block.to_ir(); + incremental_block = EthereumBlockBuilder::from_ir(ir); + println!(" Log size {:?}", log_size); + } + + // The block hash would differ here because we don't take into account + // the ommers and other fields from the substrate perspective. + // However, the state roots must be identical. + let built_block = incremental_block + .build( + block.number, + block.parent_hash, + block.timestamp, + block.miner, + Default::default(), + ) + .0; + + assert_eq!(built_block.gas_used, block.gas_used); + assert_eq!(built_block.logs_bloom, block.logs_bloom); + // We are using the tx root for state root. + assert_eq!(built_block.state_root, built_block.transactions_root); + + // Double check the receipts roots. + assert_eq!(built_block.receipts_root, block.receipts_root); + + let manual_hash = manual_trie_root_compute(encoded_tx.clone()); + + let mut total_size = 0; + for enc in &encoded_tx { + total_size += enc.len(); + } + println!("Total size used by transactions: {:?}", total_size); + + let mut builder = IncrementalHashBuilder::new(); + let mut loaded = false; + for tx in encoded_tx.iter().skip(1) { + if builder.should_load_first_value(false) { + loaded = true; + let first_tx = encoded_tx[0].clone(); + builder.load_first_value(first_tx); + } + builder.add_value(tx.clone()) + } + if !loaded { + let first_tx = encoded_tx[0].clone(); + builder.load_first_value(first_tx); + } + + let incremental_hash = builder.finish(); + + println!("Incremental hash: {:?}", incremental_hash); + println!("Manual Hash: {:?}", manual_hash); + println!("Built block Hash: {:?}", built_block.transactions_root); + println!("Real Block Tx Hash: {:?}", block.transactions_root); + + assert_eq!(incremental_hash, block.transactions_root); + + // This double checks the compute logic. + assert_eq!(manual_hash, block.transactions_root); + // This ensures we can compute the same transaction root as Ethereum. + assert_eq!(block.transactions_root, built_block.transactions_root); + }); + } +} diff --git a/substrate/frame/revive/src/evm/block_hash/receipt.rs b/substrate/frame/revive/src/evm/block_hash/receipt.rs index 2877f49f2e80a..298fb0201c1ca 100644 --- a/substrate/frame/revive/src/evm/block_hash/receipt.rs +++ b/substrate/frame/revive/src/evm/block_hash/receipt.rs @@ -38,7 +38,7 @@ pub const BLOOM_SIZE_BYTES: usize = 256; /// usage by only storing the RLP encoded value and the logs directly. This effectively saves /// the need to store the full receipt (which can grow unboundedly due to the number of logs), and /// builds the RLP encoding incrementally as logs are added. -///BLOOM_SIZE_BYTES +/// /// The implementation leverages the RLP encoding details of the receipt: /// /// ```ignore From 5921361e008eafd18aa0403a1ffa91080776f6d2 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 25 Sep 2025 15:03:06 +0000 Subject: [PATCH 208/273] revive: Move functionality away from lib.rs into block_storage Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/block_storage.rs | 81 ++++++++++++++++++- substrate/frame/revive/src/lib.rs | 75 +++-------------- .../frame/revive/src/tests/block_hash.rs | 4 +- 3 files changed, 92 insertions(+), 68 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_storage.rs b/substrate/frame/revive/src/evm/block_storage.rs index dec38f8268bc8..144d501d0416f 100644 --- a/substrate/frame/revive/src/evm/block_storage.rs +++ b/substrate/frame/revive/src/evm/block_storage.rs @@ -16,13 +16,21 @@ // limitations under the License. use crate::{ - evm::block_hash::{AccumulateReceipt, LogsBloom}, + evm::block_hash::{AccumulateReceipt, EthereumBlockBuilder, LogsBloom}, + sp_runtime::traits::One, + BlockHash, Config, EthBlockBuilderIR, EthereumBlock, ReceiptInfoData, UniqueSaturatedInto, H160, H256, }; + +use frame_support::weights::Weight; +pub use sp_core::U256; + use alloc::vec::Vec; use environmental::environmental; /// The maximum number of block hashes to keep in the history. +/// +/// Note: This might be made configurable in the future. pub const BLOCK_HASH_COUNT: u32 = 256; // Accumulates the receipt's events (logs) for the current transaction @@ -56,3 +64,74 @@ pub fn get_receipt_details() -> Option<(Vec, LogsBloom)> { pub fn with_ethereum_context(f: impl FnOnce() -> R) -> R { receipt::using(&mut AccumulateReceipt::new(), f) } + +/// Clear the storage used to capture the block hash related data. +pub fn on_initialize() { + ReceiptInfoData::::kill(); + EthereumBlock::::kill(); +} + +/// Build the ethereum block and store it into the pallet storage. +pub fn on_finalize_build_eth_block( + block_author: H160, + eth_block_num: U256, + gas_limit: U256, + timestamp: U256, +) { + let parent_hash = if eth_block_num > U256::zero() { + BlockHash::::get(eth_block_num - 1) + } else { + H256::default() + }; + + let block_builder_ir = EthBlockBuilderIR::::get(); + EthBlockBuilderIR::::kill(); + + // Load the first values if not already loaded. + let (block, receipt_data) = EthereumBlockBuilder::::from_ir(block_builder_ir).build( + eth_block_num, + parent_hash, + timestamp, + block_author, + gas_limit, + ); + + // Put the block hash into storage. + BlockHash::::insert(eth_block_num, block.hash); + + // Prune older block hashes. + let block_hash_count = BLOCK_HASH_COUNT; + let to_remove = + eth_block_num.saturating_sub(block_hash_count.into()).saturating_sub(One::one()); + if !to_remove.is_zero() { + >::remove(U256::from(UniqueSaturatedInto::::unique_saturated_into( + to_remove, + ))); + } + // Store the ETH block into the last block. + EthereumBlock::::put(block); + // Store the receipt info data for offchain reconstruction. + ReceiptInfoData::::put(receipt_data); +} + +/// Process a transaction payload with extra details. +/// This stores the RLP encoded transaction and receipt details into storage. +/// +/// The data is used during the `on_finalize` hook to reconstruct the ETH block. +pub fn process_transaction( + transaction_encoded: Vec, + success: bool, + gas_used: Weight, +) { + // Method returns `None` only when called from outside of the ethereum context. + // This is not the case here, since the `store_transaction` is called from within the + // ethereum context. + let (encoded_logs, bloom) = get_receipt_details().unwrap_or_default(); + + let block_builder_ir = EthBlockBuilderIR::::get(); + let mut block_builder = EthereumBlockBuilder::::from_ir(block_builder_ir); + + block_builder.process_transaction(transaction_encoded, success, gas_used, encoded_logs, bloom); + + EthBlockBuilderIR::::put(block_builder.to_ir()); +} diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index e57720ae5d447..fea4de22bf67b 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -46,7 +46,7 @@ pub mod weights_utils; use crate::{ evm::{ - block_hash::{EthereumBlockBuilder, EthereumBlockBuilderIR, ReceiptGasInfo}, + block_hash::{EthereumBlockBuilderIR, ReceiptGasInfo}, block_storage, runtime::GAS_PRICE, CallTracer, GasEncoder, GenericTransaction, PrestateTracer, Trace, Tracer, TracerType, @@ -733,8 +733,8 @@ pub mod pallet { } fn on_initialize(_n: BlockNumberFor) -> Weight { - ReceiptInfoData::::kill(); - EthereumBlock::::kill(); + // Kill related ethereum block storage items. + block_storage::on_initialize::(); // Warm up the pallet account. System::::account_exists(&Pallet::::account_id()); @@ -743,45 +743,13 @@ pub mod pallet { } fn on_finalize(block_number: BlockNumberFor) { - let block_author = Self::block_author(); - - // Weights are accounted for in the `on_initialize`. - let eth_block_num: U256 = block_number.into(); - let parent_hash = if eth_block_num > U256::zero() { - BlockHash::::get(eth_block_num - 1) - } else { - H256::default() - }; - let gas_limit = Self::evm_block_gas_limit(); - - let block_builder_ir = EthBlockBuilderIR::::get(); - EthBlockBuilderIR::::kill(); - - // Load the first values if not already loaded. - let (block, receipt_data) = EthereumBlockBuilder::::from_ir(block_builder_ir).build( - eth_block_num, - parent_hash, + // Build the ethereum block and place it in storage. + block_storage::on_finalize_build_eth_block::( + Self::block_author(), + block_number.into(), + Self::evm_block_gas_limit(), T::Time::now().into(), - block_author, - gas_limit, ); - - // Put the block hash into storage. - BlockHash::::insert(eth_block_num, block.hash); - - // Prune older block hashes. - let block_hash_count = block_storage::BLOCK_HASH_COUNT; - let to_remove = - eth_block_num.saturating_sub(block_hash_count.into()).saturating_sub(One::one()); - if !to_remove.is_zero() { - >::remove(U256::from( - UniqueSaturatedInto::::unique_saturated_into(to_remove), - )); - } - // Store the ETH block into the last block. - EthereumBlock::::put(block); - // Store the receipt info data for offchain reconstruction. - ReceiptInfoData::::put(receipt_data); } fn integrity_test() { @@ -1115,7 +1083,7 @@ pub mod pallet { } } - Self::store_transaction( + block_storage::process_transaction::( transaction_encoded, output.result.is_ok(), output.gas_consumed, @@ -1168,7 +1136,7 @@ pub mod pallet { } } - Self::store_transaction( + block_storage::process_transaction::( transaction_encoded, output.result.is_ok(), output.gas_consumed, @@ -2033,29 +2001,6 @@ impl Pallet { >::deposit_event(::RuntimeEvent::from(event)) } - /// Store a transaction payload with extra details. - /// - /// The data is used during the `on_finalize` hook to reconstruct the ETH block. - fn store_transaction(transaction_encoded: Vec, success: bool, gas_used: Weight) { - // Method returns `None` only when called from outside of the ethereum context. - // This is not the case here, since the `store_transaction` is called from within the - // ethereum context. - let (encoded_logs, bloom) = block_storage::get_receipt_details().unwrap_or_default(); - - let block_builder_ir = EthBlockBuilderIR::::get(); - let mut block_builder = EthereumBlockBuilder::::from_ir(block_builder_ir); - - block_builder.process_transaction( - transaction_encoded, - success, - gas_used, - encoded_logs, - bloom, - ); - - EthBlockBuilderIR::::put(block_builder.to_ir()); - } - /// The address of the validator that produced the current block. pub fn block_author() -> H160 { use frame_support::traits::FindAuthor; diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 526288734d114..a6c8df95dbd18 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -18,11 +18,11 @@ //! The pallet-revive ETH block hash specific integration test suite. use crate::{ - evm::{Block, TransactionSigned}, + evm::{block_hash::EthereumBlockBuilder, Block, TransactionSigned}, test_utils::{builder::Contract, deposit_limit, ALICE}, tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeOrigin, Test}, BalanceWithDust, Code, Config, EthBlock, EthBlockBuilderFirstValues, EthBlockBuilderIR, - EthereumBlock, EthereumBlockBuilder, Pallet, ReceiptGasInfo, ReceiptInfoData, + EthereumBlock, Pallet, ReceiptGasInfo, ReceiptInfoData, }; use frame_support::traits::{fungible::Mutate, Hooks}; From 3fc1b6c8fa30e0d5faf4f2a72888609c7158becb Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 25 Sep 2025 15:05:32 +0000 Subject: [PATCH 209/273] revive: Adjust docs Signed-off-by: Alexandru Vasile --- .../src/evm/block_hash/block_builder.rs | 43 +------------------ 1 file changed, 1 insertion(+), 42 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash/block_builder.rs b/substrate/frame/revive/src/evm/block_hash/block_builder.rs index f86de6b241dcc..4b555b774bce0 100644 --- a/substrate/frame/revive/src/evm/block_hash/block_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/block_builder.rs @@ -39,48 +39,11 @@ use sp_core::{keccak_256, H160, H256, U256}; /// /// This builder is optimized to minimize memory usage and pallet storage by leveraging the internal /// structure of the Ethereum trie and the RLP encoding of receipts. -/// -/// The builder relies on the pallet storage to store the first transaction and receipt. This -/// ensures we are reading and writing a minimal amount of data to the pallet storage. For example, -/// if the block has less than 127 transactions, for each transaction we would have otherwise -/// serialized and deserialized the first transaction bytes. -/// -/// # Example -/// -/// ```ignore -/// // Get the intermediate representation from pallet storage. -/// let ir = EthBlockBuilderIR::::get(); -/// // Convert from the serialized from into the builder object. -/// let mut block_builder = EthereumBlockBuilder::from_ir(ir); -/// -/// for tx in transactions { -/// // Ensure the first transaction is loaded. -/// if block_builder.should_load_first_values() { -/// let values = EthBlockBuilderFirstValues::::take(); -/// block_builder.load_first_values(values); -/// } -/// -/// // Process the transaction. -/// if let Some(first_values) = block_builder.process_transaction(..) { -/// // Store the first transaction and receipt in pallet storage. -/// EthBlockBuilderFirstValues::::put(first_values); -/// } -/// } -/// -/// // Either the value was previously consumed, or the block has less than 127 transactions. -/// let values = EthBlockBuilderFirstValues::::take(); -/// block_builder.load_first_values(values); -/// -/// // Build the block. -/// let (block, gas_info) = block_builder.build(...); -/// ``` pub struct EthereumBlockBuilder { pub(crate) transaction_root_builder: IncrementalHashBuilder, pub(crate) receipts_root_builder: IncrementalHashBuilder, - - gas_used: U256, pub(crate) tx_hashes: Vec, - + gas_used: U256, logs_bloom: LogsBloom, gas_info: Vec, _phantom: core::marker::PhantomData, @@ -140,10 +103,6 @@ impl EthereumBlockBuilder { } /// Process a single transaction at a time. - /// - /// Returns the first transaction and receipt to be stored in the pallet storage until - /// either the [`Self::should_load_first_values`] returns true or the [`Self::build`] method - /// is called. pub fn process_transaction( &mut self, transaction_encoded: Vec, From ec41a8e5bd087b78f13dc982359d0e81fe8740c7 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 26 Sep 2025 08:56:56 +0000 Subject: [PATCH 210/273] revive: Adjust benchmarks to new import paths Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/benchmarking.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index 69282ee3f67f5..c9acd950dc900 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -21,8 +21,8 @@ use crate::{ call_builder::{caller_funding, default_deposit_limit, CallSetup, Contract, VmBinaryModule}, evm::{ - block_storage, runtime::GAS_PRICE, TransactionLegacyUnsigned, TransactionSigned, - TransactionUnsigned, + block_hash::EthereumBlockBuilder, block_storage, runtime::GAS_PRICE, + TransactionLegacyUnsigned, TransactionSigned, TransactionUnsigned, }, exec::{Key, MomentOf, PrecompileExt}, limits, @@ -2721,7 +2721,7 @@ mod benchmarks { block_storage::get_receipt_details().unwrap_or_default(); let block_builder_ir = EthBlockBuilderIR::::get(); - let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); + let mut block_builder = EthereumBlockBuilder::::from_ir(block_builder_ir); block_builder.process_transaction( signed_transaction, @@ -2794,7 +2794,7 @@ mod benchmarks { block_storage::get_receipt_details().unwrap_or_default(); let block_builder_ir = EthBlockBuilderIR::::get(); - let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); + let mut block_builder = EthereumBlockBuilder::::from_ir(block_builder_ir); block_builder.process_transaction( signed_transaction, @@ -2858,7 +2858,7 @@ mod benchmarks { let (encoded_logs, bloom) = block_storage::get_receipt_details().unwrap_or_default(); let block_builder_ir = EthBlockBuilderIR::::get(); - let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); + let mut block_builder = EthereumBlockBuilder::::from_ir(block_builder_ir); block_builder.process_transaction( signed_transaction, @@ -2920,7 +2920,7 @@ mod benchmarks { let (encoded_logs, bloom) = block_storage::get_receipt_details().unwrap_or_default(); let block_builder_ir = EthBlockBuilderIR::::get(); - let mut block_builder = EthereumBlockBuilder::from_ir(block_builder_ir); + let mut block_builder = EthereumBlockBuilder::::from_ir(block_builder_ir); block_builder.process_transaction( signed_transaction, From 4c282b516893cfb6fc16224c5ffbd768d1aaaad7 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 26 Sep 2025 10:32:49 +0000 Subject: [PATCH 211/273] revive: Introduce a builder phase for explicit usage Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash.rs | 2 +- .../revive/src/evm/block_hash/block_builder.rs | 9 ++++++--- .../revive/src/evm/block_hash/hash_builder.rs | 17 ++++++++++++----- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash.rs b/substrate/frame/revive/src/evm/block_hash.rs index f222ed49d4f8b..545fc08b6cc92 100644 --- a/substrate/frame/revive/src/evm/block_hash.rs +++ b/substrate/frame/revive/src/evm/block_hash.rs @@ -22,7 +22,7 @@ mod receipt; pub use receipt::{AccumulateReceipt, LogsBloom}; mod hash_builder; -pub use hash_builder::{IncrementalHashBuilder, IncrementalHashBuilderIR}; +pub use hash_builder::{BuilderPhase, IncrementalHashBuilder, IncrementalHashBuilderIR}; mod block_builder; pub use block_builder::{EthereumBlockBuilder, EthereumBlockBuilderIR}; diff --git a/substrate/frame/revive/src/evm/block_hash/block_builder.rs b/substrate/frame/revive/src/evm/block_hash/block_builder.rs index 4b555b774bce0..d55e39ab9f7b0 100644 --- a/substrate/frame/revive/src/evm/block_hash/block_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/block_builder.rs @@ -20,7 +20,7 @@ use crate::{ evm::{ block_hash::{ - receipt::BLOOM_SIZE_BYTES, AccumulateReceipt, IncrementalHashBuilder, + receipt::BLOOM_SIZE_BYTES, AccumulateReceipt, BuilderPhase, IncrementalHashBuilder, IncrementalHashBuilderIR, LogsBloom, }, Block, HashesOrTransactionInfos, TYPE_EIP1559, TYPE_EIP2930, TYPE_EIP4844, TYPE_EIP7702, @@ -139,7 +139,10 @@ impl EthereumBlockBuilder { return; } - if self.transaction_root_builder.should_load_first_value(false) { + if self + .transaction_root_builder + .should_load_first_value(BuilderPhase::ProcessingValue) + { if let Some((first_tx, first_receipt)) = self.load_first_values() { self.transaction_root_builder.load_first_value(first_tx); self.receipts_root_builder.load_first_value(first_receipt); @@ -159,7 +162,7 @@ impl EthereumBlockBuilder { block_author: H160, gas_limit: U256, ) -> (Block, Vec) { - if self.transaction_root_builder.should_load_first_value(true) { + if self.transaction_root_builder.should_load_first_value(BuilderPhase::Build) { if let Some((first_tx, first_receipt)) = self.load_first_values() { self.transaction_root_builder.load_first_value(first_tx); self.receipts_root_builder.load_first_value(first_receipt); diff --git a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs index e72ae4c303293..340fb85efaf4e 100644 --- a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs @@ -194,11 +194,10 @@ impl IncrementalHashBuilder { } /// Check if we should load the first value from storage. - pub fn should_load_first_value(&self, all_tx_processed: bool) -> bool { - if all_tx_processed { - self.index < 0x7f - } else { - self.index == 0x7f + pub fn should_load_first_value(&self, phase: BuilderPhase) -> bool { + match phase { + BuilderPhase::ProcessingValue => self.index == 0x7f, + BuilderPhase::Build => self.index < 0x7f, } } @@ -216,6 +215,14 @@ impl IncrementalHashBuilder { } } +/// The phase in which the hash builder is currently operating. +pub enum BuilderPhase { + /// Processing a value, unknown at the moment if more values will come. + ProcessingValue, + /// The trie hash is being finalized, no more values will be added. + Build, +} + /// The intermediate representation of the [`IncrementalHashBuilder`] that can be placed into the /// pallets storage. This contains the minimum amount of data that is needed to serialize /// and deserialize the incremental hash builder. From f8afc46926f65284e0b96e633601858c74f0d3a9 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 26 Sep 2025 10:36:11 +0000 Subject: [PATCH 212/273] revive: Make write/read API explicit Signed-off-by: Alexandru Vasile --- .../src/evm/block_hash/block_builder.rs | 27 +++++++++---------- .../revive/src/evm/block_hash/hash_builder.rs | 4 +-- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash/block_builder.rs b/substrate/frame/revive/src/evm/block_hash/block_builder.rs index d55e39ab9f7b0..b71462349074d 100644 --- a/substrate/frame/revive/src/evm/block_hash/block_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/block_builder.rs @@ -93,12 +93,12 @@ impl EthereumBlockBuilder { } /// Store the first transaction and receipt in pallet storage. - fn store_first_values(&mut self, values: (Vec, Vec)) { + fn pallet_put_first_values(&mut self, values: (Vec, Vec)) { crate::EthBlockBuilderFirstValues::::put(Some(values)); } - /// Load the first transaction and receipt from pallet storage. - fn load_first_values(&mut self) -> Option<(Vec, Vec)> { + /// Take the first transaction and receipt from pallet storage. + fn pallet_take_first_values(&mut self) -> Option<(Vec, Vec)> { crate::EthBlockBuilderFirstValues::::take() } @@ -135,17 +135,14 @@ impl EthereumBlockBuilder { // The first transaction and receipt are returned to be stored in the pallet storage. // The index of the incremental hash builders already expects the next items. if self.tx_hashes.len() == 1 { - self.store_first_values((transaction_encoded, encoded_receipt)); + self.pallet_put_first_values((transaction_encoded, encoded_receipt)); return; } - if self - .transaction_root_builder - .should_load_first_value(BuilderPhase::ProcessingValue) - { - if let Some((first_tx, first_receipt)) = self.load_first_values() { - self.transaction_root_builder.load_first_value(first_tx); - self.receipts_root_builder.load_first_value(first_receipt); + if self.transaction_root_builder.needs_first_value(BuilderPhase::ProcessingValue) { + if let Some((first_tx, first_receipt)) = self.pallet_take_first_values() { + self.transaction_root_builder.set_first_value(first_tx); + self.receipts_root_builder.set_first_value(first_receipt); } } @@ -162,10 +159,10 @@ impl EthereumBlockBuilder { block_author: H160, gas_limit: U256, ) -> (Block, Vec) { - if self.transaction_root_builder.should_load_first_value(BuilderPhase::Build) { - if let Some((first_tx, first_receipt)) = self.load_first_values() { - self.transaction_root_builder.load_first_value(first_tx); - self.receipts_root_builder.load_first_value(first_receipt); + if self.transaction_root_builder.needs_first_value(BuilderPhase::Build) { + if let Some((first_tx, first_receipt)) = self.pallet_take_first_values() { + self.transaction_root_builder.set_first_value(first_tx); + self.receipts_root_builder.set_first_value(first_receipt); } } diff --git a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs index 340fb85efaf4e..76eb5857b53e2 100644 --- a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs @@ -189,12 +189,12 @@ impl IncrementalHashBuilder { } /// Load the first value from storage. - pub fn load_first_value(&mut self, value: Vec) { + pub fn set_first_value(&mut self, value: Vec) { self.first_value = Some(value); } /// Check if we should load the first value from storage. - pub fn should_load_first_value(&self, phase: BuilderPhase) -> bool { + pub fn needs_first_value(&self, phase: BuilderPhase) -> bool { match phase { BuilderPhase::ProcessingValue => self.index == 0x7f, BuilderPhase::Build => self.index < 0x7f, From 6be3f21a05719825bb91181b3c452ee2545d9438 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 26 Sep 2025 10:44:55 +0000 Subject: [PATCH 213/273] revive/tests: Adjust testing to new API Signed-off-by: Alexandru Vasile --- .../revive/src/evm/block_hash/block_builder.rs | 15 +++++++++------ substrate/frame/revive/src/tests/block_hash.rs | 6 +++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash/block_builder.rs b/substrate/frame/revive/src/evm/block_hash/block_builder.rs index b71462349074d..6f7022deedef5 100644 --- a/substrate/frame/revive/src/evm/block_hash/block_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/block_builder.rs @@ -311,9 +311,9 @@ mod test { let mut first_value = Some(rlp_values[0].clone()); let mut builder = IncrementalHashBuilder::new(); for rlp_value in rlp_values.iter().skip(1) { - if builder.should_load_first_value(false) { + if builder.needs_first_value(BuilderPhase::ProcessingValue) { let value = first_value.take().expect("First value must be present; qed"); - builder.load_first_value(value); + builder.set_first_value(value); } builder.add_value(rlp_value.clone()); @@ -321,7 +321,7 @@ mod test { builder = IncrementalHashBuilder::from_ir(ir_builder); } if let Some(value) = first_value.take() { - builder.load_first_value(value); + builder.set_first_value(value); } let incremental_hash = builder.finish(); @@ -453,16 +453,19 @@ mod test { let mut builder = IncrementalHashBuilder::new(); let mut loaded = false; for tx in encoded_tx.iter().skip(1) { - if builder.should_load_first_value(false) { + if builder.needs_first_value(BuilderPhase::ProcessingValue) { loaded = true; let first_tx = encoded_tx[0].clone(); - builder.load_first_value(first_tx); + builder.set_first_value(first_tx); } builder.add_value(tx.clone()) } if !loaded { + // Not loaded, therefore the first value must be set now. + assert!(builder.needs_first_value(BuilderPhase::Build)); + let first_tx = encoded_tx[0].clone(); - builder.load_first_value(first_tx); + builder.set_first_value(first_tx); } let incremental_hash = builder.finish(); diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index a6c8df95dbd18..798a14b3ddca5 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -88,7 +88,7 @@ fn transactions_are_captured() { let mut builder = EthereumBlockBuilder::::from_ir(block_builder); let first_values = EthBlockBuilderFirstValues::::get().unwrap(); - builder.transaction_root_builder.load_first_value(first_values.0); + builder.transaction_root_builder.set_first_value(first_values.0); let tx_root = builder.transaction_root_builder.finish(); assert_eq!(tx_root, expected_tx_root.0.into()); @@ -171,11 +171,11 @@ fn events_are_captured() { assert_eq!(block_builder.gas_info.len(), 1); let mut builder = EthereumBlockBuilder::::from_ir(block_builder); - builder.transaction_root_builder.load_first_value(expected_payloads[0].clone()); + builder.transaction_root_builder.set_first_value(expected_payloads[0].clone()); let tx_root = builder.transaction_root_builder.finish(); assert_eq!(tx_root, expected_tx_root.0.into()); - builder.receipts_root_builder.load_first_value(encoded_receipt.clone()); + builder.receipts_root_builder.set_first_value(encoded_receipt.clone()); let receipt_root = builder.receipts_root_builder.finish(); assert_eq!(receipt_root, expected_receipt_root.0.into()); From 3096a15982434578e6f8ebd24354297b2a471e0a Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 26 Sep 2025 10:48:54 +0000 Subject: [PATCH 214/273] revive: Add debug / error logs Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/block_hash/block_builder.rs | 8 ++++++++ substrate/frame/revive/src/evm/block_hash/hash_builder.rs | 7 ++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/block_hash/block_builder.rs b/substrate/frame/revive/src/evm/block_hash/block_builder.rs index 6f7022deedef5..8d007e7eaf394 100644 --- a/substrate/frame/revive/src/evm/block_hash/block_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/block_builder.rs @@ -35,6 +35,8 @@ use frame_support::weights::Weight; use scale_info::TypeInfo; use sp_core::{keccak_256, H160, H256, U256}; +const LOG_TARGET: &str = "runtime::revive::block_builder"; + /// Ethereum block builder designed to incrementally build the transaction and receipt trie roots. /// /// This builder is optimized to minimize memory usage and pallet storage by leveraging the internal @@ -135,14 +137,18 @@ impl EthereumBlockBuilder { // The first transaction and receipt are returned to be stored in the pallet storage. // The index of the incremental hash builders already expects the next items. if self.tx_hashes.len() == 1 { + log::debug!(target: LOG_TARGET, "Storing first transaction and receipt in pallet storage"); self.pallet_put_first_values((transaction_encoded, encoded_receipt)); return; } if self.transaction_root_builder.needs_first_value(BuilderPhase::ProcessingValue) { if let Some((first_tx, first_receipt)) = self.pallet_take_first_values() { + log::debug!(target: LOG_TARGET, "Loaded first transaction and receipt from pallet storage"); self.transaction_root_builder.set_first_value(first_tx); self.receipts_root_builder.set_first_value(first_receipt); + } else { + log::error!(target: LOG_TARGET, "First transaction and receipt must be present at processing phase"); } } @@ -163,6 +169,8 @@ impl EthereumBlockBuilder { if let Some((first_tx, first_receipt)) = self.pallet_take_first_values() { self.transaction_root_builder.set_first_value(first_tx); self.receipts_root_builder.set_first_value(first_receipt); + } else { + log::error!(target: LOG_TARGET, "First transaction and receipt must be present at build phase"); } } diff --git a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs index 76eb5857b53e2..6781a961af20a 100644 --- a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs @@ -27,6 +27,8 @@ use alloy_trie::{ use codec::{Decode, Encode}; use sp_core::H256; +const LOG_TARGET: &str = "runtime::revive::hash_builder"; + /// The Incremental Hash Builder is designed to efficiently compute the transaction and receipt /// trie roots in Ethereum, minimizing memory usage. This is achieved by constructing the Merkle /// Trie incrementally, rather than storing all values in memory simultaneously. @@ -179,8 +181,9 @@ impl IncrementalHashBuilder { // Pushing the previous item since we are expecting the index // to be index + 1 in the sorted order. if let Some(encoded_value) = self.first_value.take() { - let rlp_index = rlp::encode_fixed_size(&0usize); + log::debug!(target: LOG_TARGET, "Adding first value at index 0 while processing index 127"); + let rlp_index = rlp::encode_fixed_size(&0usize); self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); } } @@ -207,6 +210,8 @@ impl IncrementalHashBuilder { // first value index is the last one in the sorted vector // by rlp encoding of the index. if let Some(encoded_value) = self.first_value.take() { + log::debug!(target: LOG_TARGET, "Adding first value at index 0 while building the trie"); + let rlp_index = rlp::encode_fixed_size(&0usize); self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); } From d50b80279114efcbd8335a819b7f470d83e3fdb7 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 26 Sep 2025 10:55:08 +0000 Subject: [PATCH 215/273] revive/tests: Add conformance tests for accrue log bloom Signed-off-by: Alexandru Vasile --- .../revive/src/evm/block_hash/receipt.rs | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/substrate/frame/revive/src/evm/block_hash/receipt.rs b/substrate/frame/revive/src/evm/block_hash/receipt.rs index 298fb0201c1ca..6211a2190e4ef 100644 --- a/substrate/frame/revive/src/evm/block_hash/receipt.rs +++ b/substrate/frame/revive/src/evm/block_hash/receipt.rs @@ -186,3 +186,34 @@ impl LogsBloom { } } } + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn test_bloom_accrue_log() { + let mut bloom = LogsBloom::new(); + + let data = vec![ + (H160::repeat_byte(0x01), vec![H256::repeat_byte(0x02), H256::repeat_byte(0x03)]), + (H160::repeat_byte(0x04), vec![H256::repeat_byte(0x05), H256::repeat_byte(0x06)]), + (H160::repeat_byte(0x07), vec![H256::repeat_byte(0x08), H256::repeat_byte(0x09)]), + ]; + + for (contract, topics) in data.clone() { + bloom.accrue_log(&contract, &topics); + } + + let mut alloy_bloom = alloy_core::primitives::Bloom::default(); + + for (contract, topics) in data { + alloy_bloom.accrue_raw_log( + contract.0.into(), + &topics.iter().map(|t| t.0.into()).collect::>(), + ); + } + + assert_eq!(bloom.bloom, alloy_bloom.0); + } +} From dcfd21c093732332333d00ad2ec0e15e90fcaca9 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 26 Sep 2025 10:59:33 +0000 Subject: [PATCH 216/273] revive/tests: Add conformance tests for accrue other blooms Signed-off-by: Alexandru Vasile --- .../revive/src/evm/block_hash/receipt.rs | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/block_hash/receipt.rs b/substrate/frame/revive/src/evm/block_hash/receipt.rs index 6211a2190e4ef..ccbdbb6880998 100644 --- a/substrate/frame/revive/src/evm/block_hash/receipt.rs +++ b/substrate/frame/revive/src/evm/block_hash/receipt.rs @@ -194,7 +194,6 @@ mod test { #[test] fn test_bloom_accrue_log() { let mut bloom = LogsBloom::new(); - let data = vec![ (H160::repeat_byte(0x01), vec![H256::repeat_byte(0x02), H256::repeat_byte(0x03)]), (H160::repeat_byte(0x04), vec![H256::repeat_byte(0x05), H256::repeat_byte(0x06)]), @@ -216,4 +215,24 @@ mod test { assert_eq!(bloom.bloom, alloy_bloom.0); } + + #[test] + fn test_bloom_accrue_bloom() { + let mut bloom = LogsBloom::new(); + let mut bloom2 = LogsBloom::new(); + + bloom.accrue_log(&H160::repeat_byte(0x01), &[H256::repeat_byte(0x02)]); + bloom2.accrue_log(&H160::repeat_byte(0x03), &[H256::repeat_byte(0x04)]); + bloom.accrue_bloom(&bloom2); + + let mut alloy_bloom = alloy_core::primitives::Bloom::default(); + let mut alloy_bloom2 = alloy_core::primitives::Bloom::default(); + alloy_bloom + .accrue_raw_log(H160::repeat_byte(0x01).0.into(), &[H256::repeat_byte(0x02).0.into()]); + alloy_bloom2 + .accrue_raw_log(H160::repeat_byte(0x03).0.into(), &[H256::repeat_byte(0x04).0.into()]); + alloy_bloom.accrue_bloom(&alloy_bloom2); + + assert_eq!(bloom.bloom, alloy_bloom.0); + } } From dde6596f8451c125d1dd2937d9b24d6e98455fd0 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 26 Sep 2025 11:07:16 +0000 Subject: [PATCH 217/273] revive/tests: Add conformance tests for accumulate receipt Signed-off-by: Alexandru Vasile --- .../revive/src/evm/block_hash/receipt.rs | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/substrate/frame/revive/src/evm/block_hash/receipt.rs b/substrate/frame/revive/src/evm/block_hash/receipt.rs index ccbdbb6880998..29812cc5c0573 100644 --- a/substrate/frame/revive/src/evm/block_hash/receipt.rs +++ b/substrate/frame/revive/src/evm/block_hash/receipt.rs @@ -190,6 +190,7 @@ impl LogsBloom { #[cfg(test)] mod test { use super::*; + use alloy_consensus::RlpEncodableReceipt; #[test] fn test_bloom_accrue_log() { @@ -235,4 +236,47 @@ mod test { assert_eq!(bloom.bloom, alloy_bloom.0); } + + #[test] + fn test_accumulate_receipt() { + let mut receipt = AccumulateReceipt::new(); + + receipt.add_log(&H160::repeat_byte(0x01), &[0x01, 0x02], &[H256::repeat_byte(0x02)]); + receipt.add_log(&H160::repeat_byte(0x03), &[0x03, 0x04], &[H256::repeat_byte(0x04)]); + + let encoded = AccumulateReceipt::encoded_receipt( + receipt.encoding, + receipt.bloom, + true, + 21000, + vec![], + ); + + let alloy_receipt = alloy_consensus::Receipt { + status: true.into(), + cumulative_gas_used: 21000, + logs: vec![ + alloy_core::primitives::Log::new_unchecked( + H160::repeat_byte(0x01).0.into(), + vec![H256::repeat_byte(0x02).0.into()], + vec![0x01, 0x02].into(), + ), + alloy_core::primitives::Log::new_unchecked( + H160::repeat_byte(0x03).0.into(), + vec![H256::repeat_byte(0x04).0.into()], + vec![0x03, 0x04].into(), + ), + ], + }; + + // Check bloom filters. + let alloy_bloom = alloy_receipt.bloom_slow(); + assert_eq!(receipt.bloom.bloom, alloy_bloom.0); + + // Check RLP encoding. + let mut alloy_encoded = vec![]; + alloy_receipt.rlp_encode_with_bloom(&alloy_bloom, &mut alloy_encoded); + + assert_eq!(alloy_encoded, encoded); + } } From b9dfe445c8e73baef1ca838a84d323283b6591a2 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 26 Sep 2025 11:13:44 +0000 Subject: [PATCH 218/273] revive: Adjust docs Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_storage.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/block_storage.rs b/substrate/frame/revive/src/evm/block_storage.rs index 144d501d0416f..758b598911ccf 100644 --- a/substrate/frame/revive/src/evm/block_storage.rs +++ b/substrate/frame/revive/src/evm/block_storage.rs @@ -124,7 +124,7 @@ pub fn process_transaction( gas_used: Weight, ) { // Method returns `None` only when called from outside of the ethereum context. - // This is not the case here, since the `store_transaction` is called from within the + // This is not the case here, since this is called from within the // ethereum context. let (encoded_logs, bloom) = get_receipt_details().unwrap_or_default(); From ef025680eb957d7c862c5a940781baddc2570477 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Mon, 29 Sep 2025 15:52:54 +0200 Subject: [PATCH 219/273] revive: add optional stats to the IncrementalHashBuilder --- .../revive/src/evm/block_hash/hash_builder.rs | 181 +++++++++++++++++- 1 file changed, 179 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs index 6781a961af20a..daa180407c8c6 100644 --- a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs @@ -96,12 +96,35 @@ pub struct IncrementalHashBuilder { index: u64, /// RLP encoded value. first_value: Option>, + /// Optional stats for testing purposes. + #[cfg(test)] + stats: Option, +} + +/// Accounting data for the hash builder, used for testing and analysis. +#[cfg(test)] +#[derive(Debug, Clone)] +pub struct HashBuilderStats { + /// Total size of data fed to the hash builder via add_value. + pub total_data_size: usize, + /// Current size of the hash builder state. + pub hb_current_size: usize, + /// Maximum size the hash builder has reached: (size, index). + pub hb_max_size: (usize, u64), + /// Largest individual data size passed to add_value: (size, index). + pub largest_data: (usize, u64), } impl IncrementalHashBuilder { /// Construct the hash builder from the first value. pub fn new() -> Self { - Self { hash_builder: HashBuilder::default(), index: 1, first_value: None } + Self { + hash_builder: HashBuilder::default(), + index: 1, + first_value: None, + #[cfg(test)] + stats: None, + } } /// Converts the intermediate representation back into a builder. @@ -146,7 +169,13 @@ impl IncrementalHashBuilder { rlp_buf: serialized.rlp_buf, }; - IncrementalHashBuilder { hash_builder, index: serialized.index, first_value: None } + IncrementalHashBuilder { + hash_builder, + index: serialized.index, + first_value: None, + #[cfg(test)] + stats: None, + } } /// Converts the builder into an intermediate representation. @@ -176,6 +205,11 @@ impl IncrementalHashBuilder { pub fn add_value(&mut self, value: Vec) { let rlp_index = rlp::encode_fixed_size(&self.index); self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &value); + // Update accounting if enabled + #[cfg(test)] + if self.stats.is_some() { + self.process_stats(value.len(), self.index); + } if self.index == 0x7f { // Pushing the previous item since we are expecting the index @@ -185,6 +219,12 @@ impl IncrementalHashBuilder { let rlp_index = rlp::encode_fixed_size(&0usize); self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); + + // Update accounting if enabled + #[cfg(test)] + if self.stats.is_some() { + self.process_stats(value.len(), 0); + } } } @@ -204,6 +244,53 @@ impl IncrementalHashBuilder { } } + /// Update accounting metrics after processing data. + #[cfg(test)] + fn process_stats(&mut self, data_len: usize, index: u64) { + // Each mask in these vectors holds a u16. + let masks_len = (self.hash_builder.state_masks.len() + + self.hash_builder.tree_masks.len() + + self.hash_builder.hash_masks.len()) * + 2; + + let hb_current_size = self.hash_builder.key.len() + + self.hash_builder.value.as_slice().len() + + self.hash_builder.stack.len() * 33 + + masks_len + self.hash_builder.rlp_buf.len(); + + let stats = self.stats.as_mut().unwrap(); + + // Update total data size + stats.total_data_size += data_len; + + // Update current hash builder size + stats.hb_current_size = hb_current_size; + + // Track maximum hash builder size and its index + if hb_current_size > stats.hb_max_size.0 { + stats.hb_max_size = (hb_current_size, index); + } + + // Track largest individual data size and its index + if data_len > stats.largest_data.0 { + stats.largest_data = (data_len, index); + } + } + + #[cfg(test)] + fn print_stats(&self) { + if let Some(stats) = self.get_stats() { + println!( + "HB info idx: {} size current: {} max: {:?} total size: {} largest payload: {:?}", + self.index, + stats.hb_current_size, + stats.hb_max_size, + stats.total_data_size, + stats.largest_data + ) + } + } + /// Build the trie root hash. pub fn finish(&mut self) -> H256 { // We have less than 0x7f items to the trie. Therefore, the @@ -214,10 +301,48 @@ impl IncrementalHashBuilder { let rlp_index = rlp::encode_fixed_size(&0usize); self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); + // Update accounting if enabled + #[cfg(test)] + if self.stats.is_some() { + self.process_stats(encoded_value.len(), 0); + } } self.hash_builder.root().0.into() } + + /// Calculate the current hash builder size without updating accounting. + #[cfg(test)] + fn calculate_current_size(&self) -> usize { + // Each mask in these vectors holds a u16. + let masks_len = (self.hash_builder.state_masks.len() + + self.hash_builder.tree_masks.len() + + self.hash_builder.hash_masks.len()) * + 2; + + self.hash_builder.key.len() + + self.hash_builder.value.as_slice().len() + + self.hash_builder.stack.len() * 33 + + masks_len + self.hash_builder.rlp_buf.len() + } + + /// Enable stats for the hash builder (test-only). + #[cfg(test)] + pub fn enable_stats(&mut self) { + let initial_size = self.calculate_current_size(); + self.stats = Some(HashBuilderStats { + total_data_size: 0, + hb_current_size: initial_size, + hb_max_size: (initial_size, 0), + largest_data: (0, 0), + }); + } + + /// Get the accounting data if available (test-only). + #[cfg(test)] + pub fn get_stats(&self) -> Option<&HashBuilderStats> { + self.stats.as_ref() + } } /// The phase in which the hash builder is currently operating. @@ -275,3 +400,55 @@ impl Default for IncrementalHashBuilderIR { } } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_hash_builder_stats() { + let mut builder = IncrementalHashBuilder::new(); + builder.enable_stats(); + + let stats = builder.get_stats().expect("Stats should be enabled"); + + assert_eq!(stats.total_data_size, 0); + let initial_size = stats.hb_current_size; + assert_eq!(stats.hb_max_size, (initial_size, 0)); + assert_eq!(stats.largest_data, (0, 0)); + let _ = stats; + + // Add some test data (different sizes to test largest tracking) + let test_data1 = vec![10; 500]; // 500 bytes + let test_data2 = vec![20; 700]; // 700 bytes + let test_data3 = vec![30; 300]; // 300 bytes + + builder.set_first_value(test_data1.clone()); + builder.print_stats(); + builder.add_value(test_data2.clone()); + builder.print_stats(); + builder.add_value(test_data3.clone()); + builder.print_stats(); + let _root = builder.finish(); + builder.print_stats(); + + let stats = builder.get_stats().expect("Stats should be enabled"); + assert_eq!(stats.total_data_size, 1500); + assert_eq!(stats.hb_max_size.1, 2); + assert_eq!(stats.largest_data, (700, 1)); // (size, index) + } + + #[test] + fn test_hash_builder_without_stats() { + let mut builder = IncrementalHashBuilder::new(); + + // Without enabling stats + assert!(builder.get_stats().is_none()); + + // Adding values should not crash + builder.add_value(vec![1, 2, 3]); + + // Still no stats + assert!(builder.get_stats().is_none()); + } +} From f30f5c2c36c1e7dc023f40274246076c965eae9b Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Mon, 29 Sep 2025 16:25:29 +0200 Subject: [PATCH 220/273] revive: add IncrementalHashBuilder tests --- .../revive/src/evm/block_hash/hash_builder.rs | 120 +++++++++++++++--- 1 file changed, 102 insertions(+), 18 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs index daa180407c8c6..53f56f46daa18 100644 --- a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs @@ -115,6 +115,37 @@ pub struct HashBuilderStats { pub largest_data: (usize, u64), } +#[cfg(test)] +impl core::fmt::Display for HashBuilderStats { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + writeln!( + f, + " Total data processed: {} bytes ({:.2} MB)", + self.total_data_size, + self.total_data_size as f64 / 1_048_576.0 + )?; + writeln!( + f, + " Current HB size: {} bytes ({:.2} KB)", + self.hb_current_size, + self.hb_current_size as f64 / 1024.0 + )?; + writeln!( + f, + " Max HB size: {:?} ({:.2} KB at index {})", + self.hb_max_size, + self.hb_max_size.0 as f64 / 1024.0, + self.hb_max_size.1 + )?; + writeln!(f, " Largest data item: {:?}", self.largest_data)?; + write!( + f, + " Memory efficiency: {:.4}% (current size vs total data)", + (self.hb_current_size as f64 / self.total_data_size as f64) * 100.0 + ) + } +} + impl IncrementalHashBuilder { /// Construct the hash builder from the first value. pub fn new() -> Self { @@ -277,20 +308,6 @@ impl IncrementalHashBuilder { } } - #[cfg(test)] - fn print_stats(&self) { - if let Some(stats) = self.get_stats() { - println!( - "HB info idx: {} size current: {} max: {:?} total size: {} largest payload: {:?}", - self.index, - stats.hb_current_size, - stats.hb_max_size, - stats.total_data_size, - stats.largest_data - ) - } - } - /// Build the trie root hash. pub fn finish(&mut self) -> H256 { // We have less than 0x7f items to the trie. Therefore, the @@ -424,13 +441,9 @@ mod tests { let test_data3 = vec![30; 300]; // 300 bytes builder.set_first_value(test_data1.clone()); - builder.print_stats(); builder.add_value(test_data2.clone()); - builder.print_stats(); builder.add_value(test_data3.clone()); - builder.print_stats(); let _root = builder.finish(); - builder.print_stats(); let stats = builder.get_stats().expect("Stats should be enabled"); assert_eq!(stats.total_data_size, 1500); @@ -451,4 +464,75 @@ mod tests { // Still no stats assert!(builder.get_stats().is_none()); } + + #[test] + fn test_stats_100k_small_items() { + println!("\n=== Testing Hash Builder with 10k Small Items ==="); + + let mut builder = IncrementalHashBuilder::new(); + builder.enable_stats(); + + let initial_stats = builder.get_stats().unwrap(); + println!("Initial size: {} bytes", initial_stats.hb_current_size); + + // Add 100k items of 1024 bytes each + let item_count = 100 * 1024; + let item_size = 1024; + let test_data = vec![42u8; item_size]; + + println!("Adding {} items of {} bytes each...", item_count, item_size); + + builder.set_first_value(test_data.clone()); + for _ in 0..(item_count - 1) { + builder.add_value(test_data.clone()); + } + let _root = builder.finish(); + + let final_stats = builder.get_stats().unwrap(); + println!("\nFinal Stats - 10k Small Items:"); + println!("{}", final_stats); + + // Verify expected values + assert_eq!(final_stats.total_data_size, item_count * item_size); + assert_eq!(final_stats.largest_data.0, item_size); + assert!(final_stats.hb_current_size < final_stats.total_data_size); + } + + #[test] + fn test_stats_1k_large_items() { + println!("\n=== Testing Hash Builder with 100 Large Items ==="); + + let mut builder = IncrementalHashBuilder::new(); + builder.enable_stats(); + + let initial_stats = builder.get_stats().unwrap(); + println!("Initial size: {} bytes", initial_stats.hb_current_size); + + // Add 1024 items of 1MB each + let item_count = 1024; + let item_size = 1024 * 1024; // 1MB + let test_data = vec![42u8; item_size]; + + println!( + "Adding {} items of {} bytes ({:.2} KB) each...", + item_count, + item_size, + item_size as f64 / 1024.0 + ); + + builder.set_first_value(test_data.clone()); + for _ in 0..(item_count - 1) { + builder.add_value(test_data.clone()); + } + let _root = builder.finish(); + + let final_stats = builder.get_stats().unwrap(); + println!("\nFinal Stats - 1024 Large Items:"); + println!("{}", final_stats); + + // Verify expected values + assert_eq!(final_stats.total_data_size, item_count * item_size); + assert_eq!(final_stats.largest_data.0, item_size); + assert!(final_stats.hb_current_size < final_stats.total_data_size); + } } From c0558ecd4f4c76f22d7d7f28aae28bb9da4fb68a Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Mon, 29 Sep 2025 16:59:26 +0200 Subject: [PATCH 221/273] revive: add IncrementalHashBuilderIR size tests --- .../revive/src/evm/block_hash/hash_builder.rs | 183 ++++++++++++++---- 1 file changed, 143 insertions(+), 40 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs index 53f56f46daa18..c3336e4853866 100644 --- a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs @@ -275,39 +275,6 @@ impl IncrementalHashBuilder { } } - /// Update accounting metrics after processing data. - #[cfg(test)] - fn process_stats(&mut self, data_len: usize, index: u64) { - // Each mask in these vectors holds a u16. - let masks_len = (self.hash_builder.state_masks.len() + - self.hash_builder.tree_masks.len() + - self.hash_builder.hash_masks.len()) * - 2; - - let hb_current_size = self.hash_builder.key.len() + - self.hash_builder.value.as_slice().len() + - self.hash_builder.stack.len() * 33 + - masks_len + self.hash_builder.rlp_buf.len(); - - let stats = self.stats.as_mut().unwrap(); - - // Update total data size - stats.total_data_size += data_len; - - // Update current hash builder size - stats.hb_current_size = hb_current_size; - - // Track maximum hash builder size and its index - if hb_current_size > stats.hb_max_size.0 { - stats.hb_max_size = (hb_current_size, index); - } - - // Track largest individual data size and its index - if data_len > stats.largest_data.0 { - stats.largest_data = (data_len, index); - } - } - /// Build the trie root hash. pub fn finish(&mut self) -> H256 { // We have less than 0x7f items to the trie. Therefore, the @@ -343,6 +310,29 @@ impl IncrementalHashBuilder { masks_len + self.hash_builder.rlp_buf.len() } + /// Update accounting metrics after processing data. + #[cfg(test)] + fn process_stats(&mut self, data_len: usize, index: u64) { + let hb_current_size = self.calculate_current_size(); + let stats = self.stats.as_mut().unwrap(); + + // Update total data size + stats.total_data_size += data_len; + + // Update current hash builder size + stats.hb_current_size = hb_current_size; + + // Track maximum hash builder size and its index + if hb_current_size > stats.hb_max_size.0 { + stats.hb_max_size = (hb_current_size, index); + } + + // Track largest individual data size and its index + if data_len > stats.largest_data.0 { + stats.largest_data = (data_len, index); + } + } + /// Enable stats for the hash builder (test-only). #[cfg(test)] pub fn enable_stats(&mut self) { @@ -399,6 +389,38 @@ pub struct IncrementalHashBuilderIR { pub index: u64, } +impl IncrementalHashBuilderIR { + /// Calculate the total size of the IR in bytes. + #[cfg(test)] + pub fn calculate_size(&self) -> usize { + // Fixed-size fields + let fixed_size = core::mem::size_of::() + // index + core::mem::size_of::() + // value_type + core::mem::size_of::(); // stored_in_database + + // Variable-size fields + let key_size = self.key.len(); + let builder_value_size = self.builder_value.len(); + let stack_size: usize = self.stack.iter().map(|item| item.len()).sum(); + let state_masks_size = self.state_masks.len() * core::mem::size_of::(); + let tree_masks_size = self.tree_masks.len() * core::mem::size_of::(); + let hash_masks_size = self.hash_masks.len() * core::mem::size_of::(); + let rlp_buf_size = self.rlp_buf.len(); + + // Vector metadata overhead (capacity info, etc.) + let vec_overhead = 8 * core::mem::size_of::(); // 8 Vec structures + + fixed_size + + key_size + builder_value_size + + stack_size + + state_masks_size + + tree_masks_size + + hash_masks_size + + rlp_buf_size + + vec_overhead + } +} + impl Default for IncrementalHashBuilderIR { fn default() -> Self { Self { @@ -486,15 +508,17 @@ mod tests { for _ in 0..(item_count - 1) { builder.add_value(test_data.clone()); } - let _root = builder.finish(); - let final_stats = builder.get_stats().unwrap(); + let final_stats = builder.get_stats().unwrap().clone(); println!("\nFinal Stats - 10k Small Items:"); println!("{}", final_stats); + let builder_ir = builder.to_ir(); + let ir_size = builder_ir.calculate_size(); + println!(" Builder IR size: {ir_size} bytes ({} KB)", ir_size as f64 / 1024.0); + // Verify expected values assert_eq!(final_stats.total_data_size, item_count * item_size); - assert_eq!(final_stats.largest_data.0, item_size); assert!(final_stats.hb_current_size < final_stats.total_data_size); } @@ -524,15 +548,94 @@ mod tests { for _ in 0..(item_count - 1) { builder.add_value(test_data.clone()); } - let _root = builder.finish(); - - let final_stats = builder.get_stats().unwrap(); + let final_stats = builder.get_stats().unwrap().clone(); println!("\nFinal Stats - 1024 Large Items:"); println!("{}", final_stats); + let builder_ir = builder.to_ir(); + let ir_size = builder_ir.calculate_size(); + println!(" Builder IR size: {ir_size} bytes ({} KB)", ir_size as f64 / 1024.0); + // Verify expected values assert_eq!(final_stats.total_data_size, item_count * item_size); - assert_eq!(final_stats.largest_data.0, item_size); assert!(final_stats.hb_current_size < final_stats.total_data_size); } + + #[test] + fn test_stats_5_small_items() { + println!("\n=== Testing Hash Builder with 5 Small Items ==="); + + let mut builder = IncrementalHashBuilder::new(); + builder.enable_stats(); + + let initial_stats = builder.get_stats().unwrap(); + println!("Initial size: {} bytes", initial_stats.hb_current_size); + + // Add 5 items of 512 bytes each + let item_count = 5; + let item_size = 512; + let test_data = vec![42u8; item_size]; + + println!("Adding {} items of {} bytes each...", item_count, item_size); + + builder.set_first_value(test_data.clone()); + for _ in 0..(item_count - 1) { + builder.add_value(test_data.clone()); + } + + let final_stats = builder.get_stats().unwrap().clone(); + println!("\nFinal Stats - 5 small Items:"); + println!("{}", final_stats); + + let builder_ir = builder.to_ir(); + let ir_size = builder_ir.calculate_size(); + println!(" Builder IR size: {ir_size} bytes ({} KB)", ir_size as f64 / 1024.0); + + // Verify expected values + // items_count - 1, because the first value is not taken into account (index < 128) + assert_eq!(final_stats.total_data_size, (item_count - 1) * item_size); + assert!(final_stats.hb_current_size < final_stats.total_data_size); + } + #[test] + fn test_ir_size_calculation() { + println!("\n=== Testing IncrementalHashBuilderIR Size Calculation ==="); + + let mut builder = IncrementalHashBuilder::new(); + builder.enable_stats(); + + // Calculate initial IR size (we need to restore the builder after to_ir()) + println!("Initial builder state"); + let initial_ir = builder.to_ir(); + let initial_size = initial_ir.calculate_size(); + println!("Initial IR size: {} bytes", initial_size); + builder = IncrementalHashBuilder::from_ir(initial_ir); + + // Add some test data and track IR size changes + let test_data_small = vec![42u8; 100]; + let test_data_large = vec![99u8; 2048]; + + builder.set_first_value(test_data_small.clone()); + let ir_after_first = builder.to_ir(); + let size_after_first = ir_after_first.calculate_size(); + println!("IR size after first value: {} bytes", size_after_first); + builder = IncrementalHashBuilder::from_ir(ir_after_first.clone()); + + builder.add_value(test_data_large.clone()); + let ir_after_add = builder.to_ir(); + let size_after_add = ir_after_add.calculate_size(); + println!("IR size after adding large value: {} bytes", size_after_add); + + // Test serialization round-trip + let restored_builder = IncrementalHashBuilder::from_ir(ir_after_add.clone()); + let restored_ir = restored_builder.to_ir(); + let restored_size = restored_ir.calculate_size(); + println!("IR size after round-trip: {} bytes", restored_size); + + // Verify sizes make sense + // Note: first value doesn't immediately change IR size, but adding values does + assert!(size_after_add > size_after_first); + assert!(size_after_add > initial_size); + assert_eq!(size_after_add, restored_size); + assert!(restored_size > 0); + } } From 372464803b488a33f7835debd3672227bcf99dbf Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Mon, 29 Sep 2025 17:18:58 +0200 Subject: [PATCH 222/273] revive: IncrementalHashBuilder tests - cleanup --- .../revive/src/evm/block_hash/hash_builder.rs | 152 ++++++------------ 1 file changed, 47 insertions(+), 105 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs index c3336e4853866..8065fa9df0e9a 100644 --- a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs @@ -488,114 +488,56 @@ mod tests { } #[test] - fn test_stats_100k_small_items() { - println!("\n=== Testing Hash Builder with 10k Small Items ==="); - - let mut builder = IncrementalHashBuilder::new(); - builder.enable_stats(); - - let initial_stats = builder.get_stats().unwrap(); - println!("Initial size: {} bytes", initial_stats.hb_current_size); - - // Add 100k items of 1024 bytes each - let item_count = 100 * 1024; - let item_size = 1024; - let test_data = vec![42u8; item_size]; - - println!("Adding {} items of {} bytes each...", item_count, item_size); - - builder.set_first_value(test_data.clone()); - for _ in 0..(item_count - 1) { - builder.add_value(test_data.clone()); - } - - let final_stats = builder.get_stats().unwrap().clone(); - println!("\nFinal Stats - 10k Small Items:"); - println!("{}", final_stats); - - let builder_ir = builder.to_ir(); - let ir_size = builder_ir.calculate_size(); - println!(" Builder IR size: {ir_size} bytes ({} KB)", ir_size as f64 / 1024.0); - - // Verify expected values - assert_eq!(final_stats.total_data_size, item_count * item_size); - assert!(final_stats.hb_current_size < final_stats.total_data_size); - } - - #[test] - fn test_stats_1k_large_items() { - println!("\n=== Testing Hash Builder with 100 Large Items ==="); - - let mut builder = IncrementalHashBuilder::new(); - builder.enable_stats(); - - let initial_stats = builder.get_stats().unwrap(); - println!("Initial size: {} bytes", initial_stats.hb_current_size); - - // Add 1024 items of 1MB each - let item_count = 1024; - let item_size = 1024 * 1024; // 1MB - let test_data = vec![42u8; item_size]; - - println!( - "Adding {} items of {} bytes ({:.2} KB) each...", - item_count, - item_size, - item_size as f64 / 1024.0 - ); - - builder.set_first_value(test_data.clone()); - for _ in 0..(item_count - 1) { - builder.add_value(test_data.clone()); + fn test_stats_item_count_and_sizes() { + for (item_count, item_size) in [ + // 100k items of 1kB each + (100 * 1024, 1024), + // 1024 items of 1MB each + (1024, 1024 * 1024), + // 5 items of 512 each + (5, 512), + ] { + println!("\n=== Testing Hash Builder with {item_count} items ==="); + + let mut builder = IncrementalHashBuilder::new(); + builder.enable_stats(); + + let initial_stats = builder.get_stats().unwrap(); + println!("Initial size: {} bytes", initial_stats.hb_current_size); + + let test_data = vec![42u8; item_size]; + + println!( + "Adding {} items of {} bytes ({:.2} KB) each...", + item_count, + item_size, + item_size as f64 / 1024.0 + ); + + builder.set_first_value(test_data.clone()); + for _ in 0..(item_count - 1) { + builder.add_value(test_data.clone()); + } + let final_stats = builder.get_stats().unwrap().clone(); + println!("\nFinal Stats - {item_count} Items of {item_size} bytes each:"); + println!("{}", final_stats); + + let builder_ir = builder.to_ir(); + let ir_size = builder_ir.calculate_size(); + println!(" Builder IR size: {ir_size} bytes ({} KB)", ir_size as f64 / 1024.0); + + // Verify expected values + let expected_data_size = if item_count > 128 { + item_count * item_size + } else { + // items_count - 1, because the first value is not taken into account (index < 128) + (item_count - 1) * item_size + }; + assert_eq!(final_stats.total_data_size, expected_data_size); + assert!(final_stats.hb_current_size < final_stats.total_data_size); } - let final_stats = builder.get_stats().unwrap().clone(); - println!("\nFinal Stats - 1024 Large Items:"); - println!("{}", final_stats); - - let builder_ir = builder.to_ir(); - let ir_size = builder_ir.calculate_size(); - println!(" Builder IR size: {ir_size} bytes ({} KB)", ir_size as f64 / 1024.0); - - // Verify expected values - assert_eq!(final_stats.total_data_size, item_count * item_size); - assert!(final_stats.hb_current_size < final_stats.total_data_size); } - #[test] - fn test_stats_5_small_items() { - println!("\n=== Testing Hash Builder with 5 Small Items ==="); - - let mut builder = IncrementalHashBuilder::new(); - builder.enable_stats(); - - let initial_stats = builder.get_stats().unwrap(); - println!("Initial size: {} bytes", initial_stats.hb_current_size); - - // Add 5 items of 512 bytes each - let item_count = 5; - let item_size = 512; - let test_data = vec![42u8; item_size]; - - println!("Adding {} items of {} bytes each...", item_count, item_size); - - builder.set_first_value(test_data.clone()); - for _ in 0..(item_count - 1) { - builder.add_value(test_data.clone()); - } - - let final_stats = builder.get_stats().unwrap().clone(); - println!("\nFinal Stats - 5 small Items:"); - println!("{}", final_stats); - - let builder_ir = builder.to_ir(); - let ir_size = builder_ir.calculate_size(); - println!(" Builder IR size: {ir_size} bytes ({} KB)", ir_size as f64 / 1024.0); - - // Verify expected values - // items_count - 1, because the first value is not taken into account (index < 128) - assert_eq!(final_stats.total_data_size, (item_count - 1) * item_size); - assert!(final_stats.hb_current_size < final_stats.total_data_size); - } #[test] fn test_ir_size_calculation() { println!("\n=== Testing IncrementalHashBuilderIR Size Calculation ==="); From e83036d7e5fb465ca189798bb882c40591d8d7ee Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Tue, 30 Sep 2025 15:08:18 +0200 Subject: [PATCH 223/273] revive: take 'EthereumBlockBuilderIR' into account in integrity_test --- substrate/frame/revive/src/lib.rs | 31 ++++++++++++++++++++++++++++ substrate/frame/revive/src/limits.rs | 3 +++ 2 files changed, 34 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index fea4de22bf67b..a839e166d6334 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -848,6 +848,37 @@ pub mod pallet { max_events_size, storage_size_limit ); + + // Storage is used for `EthereumBlockBuilderIR`, which builds Ethereum-compatible blocks + // by maintaining two incremental hash builders: + // 1. `transactions_root` - builds the Merkle root of transaction payloads + // 2. `receipts_root` - builds the Merkle root of transaction receipts (event logs) + // + // Memory usage analysis: + // Each incremental hash builder accumulates entries until the trie is finalized. + // Hash builder memory usage is no greater than the sum of the consecutive entries + // of maximum size + some marginal book-keeping overhead (ignored to simplify + // calculations). + // = 2 x maximum size of the entry + // + // Additionally, `EthBlockBuilderFirstValues` caches the first entry for each hash + // builder, which gets processed when either: + // - The block is finalized, OR + // - After 127 transactions (implementation batch limit) + // = 1 x maximum size of the entry + // + // That gives us 3 items of maximum size per each hash builder + let max_incremental_trie_builder_size = + // `receipts_root` hash builder + limits::NUM_EMITTED_EVENTS.saturating_mul(limits::PAYLOAD_BYTES.saturating_mul(3)) + // `transactions_root` hash builder + .saturating_add(limits::MAX_TRANSACTION_PAYLOAD_SIZE.saturating_mul(3)); + assert!( + max_incremental_trie_builder_size < storage_size_limit, + "Maximal incremental trie builder size {} exceeds the limit {}", + max_incremental_trie_builder_size, + storage_size_limit + ); } } diff --git a/substrate/frame/revive/src/limits.rs b/substrate/frame/revive/src/limits.rs index 827563735556c..0f64533833882 100644 --- a/substrate/frame/revive/src/limits.rs +++ b/substrate/frame/revive/src/limits.rs @@ -58,6 +58,9 @@ pub const NUM_EMITTED_EVENTS: u32 = 512; /// Maximum size of events (including topics) and storage values. pub const PAYLOAD_BYTES: u32 = 416; +/// Maximum size of of the transaction payload +pub const MAX_TRANSACTION_PAYLOAD_SIZE: u32 = 1024 * 1024; + /// The maximum size for calldata and return data. /// /// Please note that the calldata is limited to 128KB on geth anyways. From d86e643afdf2e88fcafcd6625240550fa040a2e7 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Tue, 30 Sep 2025 16:31:05 +0200 Subject: [PATCH 224/273] fmt Cargo.toml --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 3cfcb43223742..859710fc6a846 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -639,8 +639,8 @@ ahash = { version = "0.8.2" } alloy-consensus = { version = "1.0.24", default-features = false } alloy-core = { version = "1.2.1", default-features = false } alloy-primitives = { version = "1.2.1", default-features = false } -alloy-trie = { version = "0.9.1", default-features = false } alloy-rlp = { version = "0.3", default-features = false } +alloy-trie = { version = "0.9.1", default-features = false } always-assert = { version = "0.1" } anyhow = { version = "1.0.81", default-features = false } approx = { version = "0.5.1" } From 1a5151ebda0c6a1fe73ba7e4b3c37cbada031f34 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 30 Sep 2025 16:33:53 +0000 Subject: [PATCH 225/273] cargo: Update cargo lock with minimal changes Signed-off-by: Alexandru Vasile --- Cargo.lock | 5792 +++++++++++++++++++++++++--------------------------- 1 file changed, 2763 insertions(+), 3029 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bea15b35a0366..2fa27b923fedb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,27 +14,27 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.24.2" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ - "gimli 0.31.1", + "gimli 0.28.0", ] [[package]] name = "addr2line" -version = "0.25.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ - "gimli 0.32.3", + "gimli 0.31.1", ] [[package]] -name = "adler2" -version = "2.0.1" +name = "adler" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "adler32" @@ -54,9 +54,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.8.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" dependencies = [ "cfg-if", "cipher 0.4.4", @@ -74,27 +74,27 @@ dependencies = [ "cipher 0.4.4", "ctr", "ghash", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] name = "ahash" -version = "0.8.12" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom 0.3.3", + "getrandom 0.2.10", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.32", ] [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" dependencies = [ "memchr", ] @@ -107,9 +107,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "alloy-consensus" -version = "1.0.37" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59094911f05dbff1cf5b29046a00ef26452eccc8d47136d50a47c0cf22f00c85" +checksum = "d213580c17d239ae83c0d897ac3315db7cda83d2d4936a9823cc3517552f2e24" dependencies = [ "alloy-eips", "alloy-primitives", @@ -125,16 +125,15 @@ dependencies = [ "once_cell", "secp256k1 0.30.0", "serde", - "serde_json", "serde_with", - "thiserror 2.0.17", + "thiserror 2.0.12", ] [[package]] name = "alloy-core" -version = "1.4.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575053cea24ea8cb7e775e39d5c53c33b19cfd0ca1cf6c0fd653f3d8c682095f" +checksum = "ad31216895d27d307369daa1393f5850b50bbbd372478a9fa951c095c210627e" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -145,9 +144,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "1.4.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6c2905bafc2df7ccd32ca3af13f0b0d82f2e2ff9dfbeb12196c0d978d5c0deb" +checksum = "7b95b3deca680efc7e9cba781f1a1db352fa1ea50e6384a514944dcf4419e652" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -156,7 +155,7 @@ dependencies = [ "itoa", "serde", "serde_json", - "winnow 0.7.13", + "winnow 0.7.10", ] [[package]] @@ -169,7 +168,7 @@ dependencies = [ "alloy-rlp", "crc", "serde", - "thiserror 2.0.17", + "thiserror 2.0.12", ] [[package]] @@ -193,14 +192,14 @@ dependencies = [ "alloy-rlp", "k256", "serde", - "thiserror 2.0.17", + "thiserror 2.0.12", ] [[package]] name = "alloy-eips" -version = "1.0.37" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac7f1c9a1ccc7f3e03c36976455751a6166a4f0d2d2c530c3f87dfe7d0cdc836" +checksum = "2a15b4b0f6bab47aae017d52bb5a739bda381553c09fb9918b7172721ef5f5de" dependencies = [ "alloy-eip2124", "alloy-eip2930", @@ -215,14 +214,14 @@ dependencies = [ "serde", "serde_with", "sha2 0.10.9", - "thiserror 2.0.17", + "thiserror 2.0.12", ] [[package]] name = "alloy-json-abi" -version = "1.4.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2acb6637a9c0e1cdf8971e0ced8f3fa34c04c5e9dccf6bb184f6a64fe0e37d8" +checksum = "15516116086325c157c18261d768a20677f0f699348000ed391d4ad0dcb82530" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -232,24 +231,24 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "1.4.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b77f7d5e60ad8ae6bd2200b8097919712a07a6db622a4b201e7ead6166f02e5" +checksum = "bc9485c56de23438127a731a6b4c87803d49faf1a7068dcd1d8768aca3a9edb9" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more 2.0.1", - "foldhash 0.2.0", - "hashbrown 0.16.0", - "indexmap 2.11.4", + "foldhash", + "hashbrown 0.15.3", + "indexmap 2.9.0", "itoa", "k256", "keccak-asm", "paste", "proptest", - "rand 0.9.2", + "rand 0.9.0", "ruint", "rustc-hash 2.1.1", "serde", @@ -274,16 +273,16 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "alloy-serde" -version = "1.0.37" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5413814be7a22fbc81e0f04a2401fcc3eb25e56fd53b04683e8acecc6e1fe01b" +checksum = "f1b3b1078b8775077525bc9fe9f6577e815ceaecd6c412a4f3b4d8aa2836e8f6" dependencies = [ "alloy-primitives", "serde", @@ -292,67 +291,67 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "1.4.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78c84c3637bee9b5c4a4d2b93360ee16553d299c3b932712353caf1cea76d0e6" +checksum = "a14f21d053aea4c6630687c2f4ad614bed4c81e14737a9b904798b24f30ea849" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "alloy-sol-macro-expander" -version = "1.4.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a882aa4e1790063362434b9b40d358942b188477ac1c44cfb8a52816ffc0cc17" +checksum = "34d99282e7c9ef14eb62727981a985a01869e586d1dec729d3bb33679094c100" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.11.4", + "indexmap 2.9.0", "proc-macro-error2", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "1.4.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18e5772107f9bb265d8d8c86e0733937bb20d0857ea5425b1b6ddf51a9804042" +checksum = "eda029f955b78e493360ee1d7bd11e1ab9f2a220a5715449babc79d6d0a01105" dependencies = [ "const-hex", "dunce", "heck 0.5.0", "macro-string", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "1.4.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e188b939aa4793edfaaa099cb1be4e620036a775b4bdf24fdc56f1cd6fd45890" +checksum = "10db1bd7baa35bc8d4a1b07efbf734e73e5ba09f2580fb8cee3483a36087ceb2" dependencies = [ "serde", - "winnow 0.7.13", + "winnow 0.7.10", ] [[package]] name = "alloy-sol-types" -version = "1.4.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c8a9a909872097caffc05df134e5ef2253a1cdb56d3a9cf0052a042ac763f9" +checksum = "58377025a47d8b8426b3e4846a251f2c1991033b27f517aade368146f6ab1dfe" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -384,9 +383,9 @@ checksum = "e64c09ec565a90ed8390d82aa08cd3b22e492321b96cb4a3d4f58414683c9e2f" dependencies = [ "alloy-primitives", "darling 0.21.3", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -395,6 +394,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4436e0292ab1bb631b42973c61205e704475fe8126af845c8d923c0996328127" +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -412,59 +417,57 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.20" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", - "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" -version = "0.2.7" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.48.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" dependencies = [ "anstyle", - "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.48.0", ] [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "approx" @@ -484,16 +487,16 @@ dependencies = [ "include_dir", "itertools 0.10.5", "proc-macro-error", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "arbitrary" -version = "1.4.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" dependencies = [ "derive_arbitrary", ] @@ -627,7 +630,7 @@ dependencies = [ "ark-std 0.5.0", "educe", "fnv", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "itertools 0.13.0", "num-bigint", "num-integer", @@ -732,7 +735,7 @@ dependencies = [ "num-bigint", "num-traits", "paste", - "rustc_version 0.4.1", + "rustc_version 0.4.0", "zeroize", ] @@ -763,7 +766,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" dependencies = [ - "quote 1.0.41", + "quote 1.0.40", "syn 1.0.109", ] @@ -773,7 +776,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" dependencies = [ - "quote 1.0.41", + "quote 1.0.40", "syn 1.0.109", ] @@ -783,8 +786,8 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ - "quote 1.0.41", - "syn 2.0.106", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -795,7 +798,7 @@ checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ "num-bigint", "num-traits", - "quote 1.0.41", + "quote 1.0.40", "syn 1.0.109", ] @@ -807,8 +810,8 @@ checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ "num-bigint", "num-traits", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "syn 1.0.109", ] @@ -820,9 +823,9 @@ checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" dependencies = [ "num-bigint", "num-traits", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -863,7 +866,7 @@ dependencies = [ "ark-std 0.5.0", "educe", "fnv", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "rayon", ] @@ -964,8 +967,8 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "syn 1.0.109", ] @@ -975,9 +978,9 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -1048,25 +1051,24 @@ dependencies = [ [[package]] name = "array-bytes" -version = "6.2.3" +version = "6.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" +checksum = "6f840fb7195bcfc5e17ea40c26e5ce6d5b9ce5d584466e17703209657e459ae0" [[package]] name = "array-bytes" -version = "9.3.0" +version = "9.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27d55334c98d756b32dcceb60248647ab34f027690f87f9a362fd292676ee927" +checksum = "4449507daf4f07a8c8309e122d32a53d15c9f33e77eaf01c839fea42ccd4d673" dependencies = [ "smallvec", - "thiserror 2.0.17", ] [[package]] name = "arrayref" -version = "0.3.9" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" @@ -1085,25 +1087,25 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "asn1-rs" -version = "0.6.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" +checksum = "22ad1373757efa0f70ec53939aabc7152e1591cb485208052993070ac8d2429d" dependencies = [ - "asn1-rs-derive 0.5.1", + "asn1-rs-derive 0.5.0", "asn1-rs-impl", "displaydoc", "nom 7.1.3", "num-traits", "rusticata-macros", - "thiserror 1.0.69", + "thiserror 1.0.65", "time", ] [[package]] name = "asn1-rs" -version = "0.7.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56624a96882bb8c26d61312ae18cb45868e5a9992ea73c58e45c3101e56a1e60" +checksum = "607495ec7113b178fbba7a6166a27f99e774359ef4823adbefd756b5b81d7970" dependencies = [ "asn1-rs-derive 0.6.0", "asn1-rs-impl", @@ -1111,20 +1113,20 @@ dependencies = [ "nom 7.1.3", "num-traits", "rusticata-macros", - "thiserror 2.0.17", + "thiserror 2.0.12", "time", ] [[package]] name = "asn1-rs-derive" -version = "0.5.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" +checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", - "synstructure 0.13.2", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", + "synstructure 0.13.1", ] [[package]] @@ -1133,10 +1135,10 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3109e49b1e4909e9db6515a30c633684d68cdeaa252f215214cb4fa1a5bfee2c" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", - "synstructure 0.13.2", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", + "synstructure 0.13.1", ] [[package]] @@ -1145,21 +1147,20 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "assert_cmd" -version = "2.0.17" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bd389a4b2970a01282ee455294913c0a43724daedcd1a24c3eb0ec1c1320b66" +checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" dependencies = [ "anstyle", "bstr", "doc-comment", - "libc", "predicates", "predicates-core", "predicates-tree", @@ -1537,7 +1538,7 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" dependencies = [ - "quote 1.0.41", + "quote 1.0.40", "syn 1.0.109", ] @@ -1554,11 +1555,12 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.5.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" +checksum = "9f2776ead772134d55b62dd45e59a79e21612d85d0af729b8b7d3967d601a62a" dependencies = [ "concurrent-queue", + "event-listener 5.3.1", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -1566,69 +1568,99 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.3" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" +checksum = "6fa3dc5f2a8564f07759c008b9109dc0d39de92a88d5588b8a5036d286383afb" dependencies = [ + "async-lock 2.8.0", "async-task", "concurrent-queue", - "fastrand 2.3.0", - "futures-lite 2.6.1", - "pin-project-lite", + "fastrand 1.9.0", + "futures-lite 1.13.0", "slab", ] [[package]] name = "async-fs" -version = "2.2.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8034a681df4aed8b8edbd7fbe472401ecf009251c8b40556b304567052e294c5" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ - "async-lock", + "async-lock 3.4.0", "blocking", - "futures-lite 2.6.1", + "futures-lite 2.3.0", ] [[package]] name = "async-global-executor" -version = "2.4.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" +checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" dependencies = [ - "async-channel 2.5.0", + "async-channel 1.9.0", "async-executor", - "async-io", - "async-lock", + "async-io 1.13.0", + "async-lock 2.8.0", "blocking", - "futures-lite 2.6.1", + "futures-lite 1.13.0", "once_cell", ] [[package]] name = "async-io" -version = "2.6.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ + "async-lock 2.8.0", "autocfg", "cfg-if", "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.23", + "slab", + "socket2 0.4.9", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964" +dependencies = [ + "async-lock 3.4.0", + "cfg-if", + "concurrent-queue", "futures-io", - "futures-lite 2.6.1", + "futures-lite 2.3.0", "parking", - "polling 3.11.0", - "rustix 1.1.2", + "polling 3.4.0", + "rustix 0.38.42", "slab", - "windows-sys 0.61.1", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", ] [[package]] name = "async-lock" -version = "3.4.1" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 5.4.1", + "event-listener 5.3.1", "event-listener-strategy", "pin-project-lite", ] @@ -1639,64 +1671,65 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" dependencies = [ - "async-io", + "async-io 2.3.3", "blocking", - "futures-lite 2.6.1", + "futures-lite 2.3.0", ] [[package]] name = "async-process" -version = "2.5.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75" +checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ - "async-channel 2.5.0", - "async-io", - "async-lock", + "async-channel 2.3.0", + "async-io 2.3.3", + "async-lock 3.4.0", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener 5.4.1", - "futures-lite 2.6.1", - "rustix 1.1.2", + "event-listener 5.3.1", + "futures-lite 2.3.0", + "rustix 0.38.42", + "tracing", ] [[package]] name = "async-signal" -version = "0.2.13" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c" +checksum = "dfb3634b73397aa844481f814fad23bbf07fdb0eabec10f2eb95e58944b1ec32" dependencies = [ - "async-io", - "async-lock", + "async-io 2.3.3", + "async-lock 3.4.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 1.1.2", + "rustix 0.38.42", "signal-hook-registry", "slab", - "windows-sys 0.61.1", + "windows-sys 0.52.0", ] [[package]] name = "async-std" -version = "1.13.2" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c8e079a4ab67ae52b7403632e4618815d6db36d2a010cfe41b02c1b1578f93b" +checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" dependencies = [ "async-attributes", "async-channel 1.9.0", "async-global-executor", - "async-io", - "async-lock", + "async-io 1.13.0", + "async-lock 2.8.0", "crossbeam-utils", "futures-channel", "futures-core", "futures-io", - "futures-lite 2.6.1", - "gloo-timers 0.3.0", + "futures-lite 1.13.0", + "gloo-timers", "kv-log-macro", "log", "memchr", @@ -1709,9 +1742,9 @@ dependencies = [ [[package]] name = "async-stream" -version = "0.3.6" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ "async-stream-impl", "futures-core", @@ -1720,13 +1753,13 @@ dependencies = [ [[package]] name = "async-stream-impl" -version = "0.3.6" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -1737,13 +1770,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.89" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -1789,9 +1822,9 @@ checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" [[package]] name = "atomic-waker" -version = "1.1.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" [[package]] name = "attohttpc" @@ -1799,7 +1832,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" dependencies = [ - "http 0.2.12", + "http 0.2.9", "log", "url", ] @@ -1820,16 +1853,16 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "autocfg" -version = "1.5.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "average" @@ -1854,24 +1887,24 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.10", "instant", "rand 0.8.5", ] [[package]] name = "backtrace" -version = "0.3.76" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ - "addr2line 0.25.1", + "addr2line 0.21.0", + "cc", "cfg-if", "libc", "miniz_oxide", - "object 0.37.3", + "object 0.32.2", "rustc-demangle", - "windows-link 0.2.0", ] [[package]] @@ -1886,22 +1919,18 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base256emoji" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e9430d9a245a77c92176e649af6e275f20839a48389859d1661e9a128d077c" -dependencies = [ - "const-str", - "match-lookup", -] - [[package]] name = "base58" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + [[package]] name = "base64" version = "0.21.7" @@ -1916,15 +1945,15 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "binary-merkle-tree" version = "13.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "hash-db", "log", "parity-scale-codec", @@ -1951,28 +1980,27 @@ dependencies = [ "cexpr", "clang-sys", "itertools 0.13.0", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "regex", "rustc-hash 2.1.1", "shlex", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "bip32" -version = "0.5.3" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db40d3dfbeab4e031d78c844642fa0caa0b0db11ce1607ac9d2986dff1405c69" +checksum = "aa13fae8b6255872fd86f7faf4b41168661d7d78609f7bfe6771b85c6739a15b" dependencies = [ "bs58", "hmac 0.12.1", "k256", "rand_core 0.6.4", "ripemd", - "secp256k1 0.27.0", "sha2 0.10.9", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] @@ -2023,7 +2051,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" dependencies = [ "bitcoin-internals", - "hex-conservative 0.1.2", + "hex-conservative 0.1.1", ] [[package]] @@ -2097,37 +2125,37 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.1", + "constant_time_eq 0.3.0", ] [[package]] name = "blake2s_simd" -version = "1.0.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e90f7deecfac93095eb874a40febd69427776e24e1bd7f87f33ac62d6f0174df" +checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.1", + "constant_time_eq 0.2.6", ] [[package]] name = "blake3" -version = "1.8.2" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" +checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" dependencies = [ "arrayref", "arrayvec 0.7.6", "cc", "cfg-if", - "constant_time_eq 0.3.1", + "constant_time_eq 0.3.0", ] [[package]] @@ -2150,22 +2178,24 @@ dependencies = [ [[package]] name = "blocking" -version = "1.6.2" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65" dependencies = [ - "async-channel 2.5.0", + "async-channel 1.9.0", + "async-lock 2.8.0", "async-task", - "futures-io", - "futures-lite 2.6.1", - "piper", + "atomic-waker", + "fastrand 1.9.0", + "futures-lite 1.13.0", + "log", ] [[package]] name = "blst" -version = "0.3.16" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" +checksum = "4fd49896f12ac9b6dcd7a5998466b9b58263a695a3dd1ecc1aaca2e12a90b080" dependencies = [ "cc", "glob", @@ -2187,9 +2217,9 @@ dependencies = [ [[package]] name = "bounded-collections" -version = "0.2.4" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ad8a0bed7827f0b07a5d23cec2e58cc02038a99e4ca81616cb2bb2025f804d" +checksum = "32ed0a820ed50891d36358e997d27741a6142e382242df40ff01c89bcdcc7a2b" dependencies = [ "log", "parity-scale-codec", @@ -2207,7 +2237,7 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "schemars 1.0.4", + "schemars", "serde", ] @@ -2217,7 +2247,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68534a48cbf63a4b1323c433cf21238c9ec23711e0df13b08c33e5c2082663ce" dependencies = [ - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -2938,12 +2968,12 @@ dependencies = [ [[package]] name = "bstr" -version = "1.12.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" dependencies = [ "memchr", - "regex-automata", + "regex-automata 0.3.6", "serde", ] @@ -2979,9 +3009,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" [[package]] name = "byteorder" @@ -3000,19 +3030,20 @@ dependencies = [ [[package]] name = "bzip2-sys" -version = "0.1.13+1.0.8" +version = "0.1.11+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" dependencies = [ "cc", + "libc", "pkg-config", ] [[package]] name = "c-kzg" -version = "2.1.4" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "137a2a2878ed823ef1bd73e5441e245602aae5360022113b8ad259ca4b5b8727" +checksum = "7318cfa722931cb5fe0838b98d3ce5621e75f6a6408abc21721d80de9223f2e4" dependencies = [ "blst", "cc", @@ -3035,18 +3066,18 @@ dependencies = [ [[package]] name = "camino" -version = "1.2.1" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ - "serde_core", + "serde", ] [[package]] name = "cargo-platform" -version = "0.1.9" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" dependencies = [ "serde", ] @@ -3059,10 +3090,10 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.27", + "semver 1.0.18", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -3079,9 +3110,9 @@ checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6" [[package]] name = "cc" -version = "1.2.39" +version = "1.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1354349954c6fc9cb0deab020f27f783cf0b604e8bb754dc4658ecf0d29c35f" +checksum = "590f9024a68a8c40351881787f1934dc11afd69090f5edb6831464694d836ea3" dependencies = [ "find-msvc-tools", "jobserver", @@ -3106,18 +3137,18 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.8" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" dependencies = [ "smallvec", ] [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "cfg_aliases" @@ -3188,23 +3219,24 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "serde", "wasm-bindgen", - "windows-link 0.2.0", + "windows-link", ] [[package]] name = "ciborium" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" dependencies = [ "ciborium-io", "ciborium-ll", @@ -3213,15 +3245,15 @@ dependencies = [ [[package]] name = "ciborium-io" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" +checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" [[package]] name = "ciborium-ll" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" dependencies = [ "ciborium-io", "half", @@ -3248,7 +3280,7 @@ checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a" dependencies = [ "core2", "multibase", - "multihash 0.19.3", + "multihash 0.19.1", "unsigned-varint 0.8.0", ] @@ -3274,9 +3306,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.8.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" dependencies = [ "glob", "libc", @@ -3284,9 +3316,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.48" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", "clap_derive", @@ -3294,9 +3326,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.48" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", @@ -3307,39 +3339,39 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.58" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75bf0b32ad2e152de789bb635ea4d3078f6b838ad7974143e99b99f45a04af4a" +checksum = "aa3c596da3cf0983427b0df0dba359df9182c13bd5b519b585a482b0c351f4e8" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.47" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "clap_lex" -version = "0.7.5" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "cmd_lib" -version = "1.9.6" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1af0f9b65935ff457da75535a6b6ff117ac858f03f71191188b3b696f90aec5a" +checksum = "371c15a3c178d0117091bd84414545309ca979555b1aad573ef591ad58818d41" dependencies = [ "cmd_lib_macros", - "env_logger 0.10.2", + "env_logger 0.10.1", "faccess", "lazy_static", "log", @@ -3348,24 +3380,25 @@ dependencies = [ [[package]] name = "cmd_lib_macros" -version = "1.9.6" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e69eee115667ccda8b9ed7010bcf13356ad45269fc92aa78534890b42809a64" +checksum = "cb844bd05be34d91eb67101329aeba9d3337094c04fd8507d821db7ebb488eaf" dependencies = [ "proc-macro-error2", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "coarsetime" -version = "0.1.36" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91849686042de1b41cd81490edc83afbcb0abe5a9b6f2c4114f23ce8cca1bcf4" +checksum = "a90d114103adbc625300f346d4d09dfb4ab1c4a8df6868435dd903392ecf4354" dependencies = [ "libc", - "wasix", + "once_cell", + "wasi 0.11.0+wasi-snapshot-preview1", "wasm-bindgen", ] @@ -3375,18 +3408,17 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" dependencies = [ - "thiserror 2.0.17", + "thiserror 2.0.12", ] [[package]] name = "codespan-reporting" -version = "0.12.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" dependencies = [ - "serde", "termcolor", - "unicode-width", + "unicode-width 0.1.10", ] [[package]] @@ -3510,9 +3542,9 @@ dependencies = [ [[package]] name = "color-eyre" -version = "0.6.5" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5920befb47832a6d61ee3a3a846565cfa39b331331e68a3b1d1116630f2f26d" +checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" dependencies = [ "backtrace", "eyre", @@ -3523,46 +3555,47 @@ dependencies = [ [[package]] name = "color-print" -version = "0.3.7" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aa954171903797d5623e047d9ab69d91b493657917bdfb8c2c80ecaf9cdb6f4" +checksum = "f2a5e6504ed8648554968650feecea00557a3476bc040d0ffc33080e66b646d0" dependencies = [ "color-print-proc-macro", ] [[package]] name = "color-print-proc-macro" -version = "0.3.7" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692186b5ebe54007e45a59aea47ece9eb4108e141326c304cdc91699a7118a22" +checksum = "d51beaa537d73d2d1ff34ee70bc095f170420ab2ec5d687ecd3ec2b0d092514b" dependencies = [ "nom 7.1.3", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 1.0.109", ] [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "colored" -version = "2.2.0" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" +checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" dependencies = [ + "is-terminal", "lazy_static", - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] name = "combine" -version = "4.6.7" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" dependencies = [ "bytes", "memchr", @@ -3570,12 +3603,12 @@ dependencies = [ [[package]] name = "comfy-table" -version = "7.2.1" +version = "7.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03b7db8e0b4b2fdad6c551e634134e99ec000e5c8c3b6856c65e8bbaded7a3b" +checksum = "4a65ebfec4fb190b6f90e944a817d60499ee0744e582530e2c9900a22e591d9a" dependencies = [ "unicode-segmentation", - "unicode-width", + "unicode-width 0.2.0", ] [[package]] @@ -3595,15 +3628,15 @@ dependencies = [ [[package]] name = "console" -version = "0.15.11" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ "encode_unicode", + "lazy_static", "libc", - "once_cell", - "unicode-width", - "windows-sys 0.59.0", + "unicode-width 0.1.10", + "windows-sys 0.52.0", ] [[package]] @@ -3618,48 +3651,45 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.16.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6407bff74dea37e0fa3dc1c1c974e5d46405f0c987bf9997a0762adce71eda6" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ "cfg-if", "cpufeatures", + "hex", "proptest", - "serde_core", + "serde", ] [[package]] name = "const-oid" -version = "0.9.6" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" [[package]] name = "const-random" -version = "0.1.18" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +checksum = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e" dependencies = [ "const-random-macro", + "proc-macro-hack", ] [[package]] name = "const-random-macro" -version = "0.1.16" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +checksum = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.10", "once_cell", + "proc-macro-hack", "tiny-keccak", ] -[[package]] -name = "const-str" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f421161cb492475f1661ddc9815a745a1c894592070661180fdec3d4872e9c3" - [[package]] name = "const_format" version = "0.2.34" @@ -3675,9 +3705,9 @@ version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "unicode-xid 0.2.6", + "proc-macro2 1.0.95", + "quote 1.0.40", + "unicode-xid 0.2.4", ] [[package]] @@ -3688,9 +3718,15 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "convert_case" @@ -3717,21 +3753,11 @@ dependencies = [ "libc", ] -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" -version = "0.8.7" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core2" @@ -3941,9 +3967,9 @@ dependencies = [ [[package]] name = "cpp_demangle" -version = "0.4.5" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2bb79cb74d735044c972aae58ed0aaa9a837e85b01106a54c39e42e97f62253" +checksum = "7e8227005286ec39567949b33df9896bcadfa6051bccca2488129f108ca23119" dependencies = [ "cfg-if", ] @@ -3960,9 +3986,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.17" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" dependencies = [ "libc", ] @@ -4020,7 +4046,7 @@ dependencies = [ "cranelift-entity", "cranelift-isle", "gimli 0.31.1", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "log", "pulley-interpreter", "regalloc2 0.12.2", @@ -4106,9 +4132,9 @@ checksum = "b530783809a55cb68d070e0de60cfbb3db0dc94c8850dd5725411422bedcf6bb" [[package]] name = "crc" -version = "3.3.0" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" dependencies = [ "crc-catalog", ] @@ -4121,9 +4147,9 @@ checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc32fast" -version = "1.5.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ "cfg-if", ] @@ -4183,53 +4209,58 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.6" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ + "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.18" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ + "autocfg", + "cfg-if", "crossbeam-utils", + "memoffset", + "scopeguard", ] [[package]] name = "crossbeam-queue" -version = "0.3.12" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.21" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crunchy" -version = "0.2.4" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-bigint" -version = "0.5.5" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" dependencies = [ "generic-array 0.14.7", "rand_core 0.6.4", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] @@ -4261,7 +4292,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.7", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -4275,7 +4306,7 @@ dependencies = [ "generic-array 0.14.7", "poly1305", "salsa20", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] @@ -4290,20 +4321,19 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.5.0" +version = "3.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881c5d0a13b2f1498e2306e82cbada78390e152d4b1378fb28a84f4dcd0dc4f3" +checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" dependencies = [ - "dispatch", - "nix 0.30.1", - "windows-sys 0.61.1", + "nix 0.29.0", + "windows-sys 0.59.0", ] [[package]] name = "cumulus-client-bootnodes" version = "0.1.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "cumulus-primitives-core", "cumulus-relay-chain-interface", @@ -4352,7 +4382,7 @@ dependencies = [ "cumulus-test-runtime", "futures", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", @@ -4385,7 +4415,7 @@ dependencies = [ "cumulus-test-relay-sproof-builder", "futures", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -4472,7 +4502,7 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -4484,7 +4514,7 @@ dependencies = [ "cumulus-primitives-core", "cumulus-relay-chain-interface", "futures", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-consensus", "sp-api", "sp-block-builder", @@ -4509,7 +4539,7 @@ dependencies = [ "futures", "futures-timer", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-parachain-primitives", @@ -4682,7 +4712,7 @@ dependencies = [ "frame-support", "frame-system", "futures", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "hex-literal", "impl-trait-for-tuples", "log", @@ -4719,10 +4749,10 @@ dependencies = [ name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -4840,7 +4870,7 @@ dependencies = [ "sp-io", "sp-maybe-compressed-blob", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] @@ -4982,14 +5012,14 @@ dependencies = [ "sp-blockchain", "sp-state-machine", "sp-version", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.7.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "async-trait", "cumulus-client-bootnodes", @@ -5254,7 +5284,7 @@ version = "0.1.0" dependencies = [ "anyhow", "cumulus-zombienet-sdk-helpers", - "env_logger 0.11.8", + "env_logger 0.11.3", "futures", "log", "polkadot-primitives", @@ -5272,24 +5302,24 @@ dependencies = [ [[package]] name = "curl" -version = "0.4.49" +version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79fc3b6dd0b87ba36e565715bf9a2ced221311db47bd18011676f24a6066edbc" +checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6" dependencies = [ "curl-sys", "libc", "openssl-probe", "openssl-sys", "schannel", - "socket2 0.6.0", - "windows-sys 0.59.0", + "socket2 0.5.9", + "windows-sys 0.52.0", ] [[package]] name = "curl-sys" -version = "0.4.83+curl-8.15.0" +version = "0.4.72+curl-8.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5830daf304027db10c82632a464879d46a3f7c4ba17a31592657ad16c719b483" +checksum = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea" dependencies = [ "cc", "libc", @@ -5298,7 +5328,7 @@ dependencies = [ "openssl-sys", "pkg-config", "vcpkg", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -5312,20 +5342,20 @@ dependencies = [ "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "rustc_version 0.4.1", - "subtle 2.6.1", + "rustc_version 0.4.0", + "subtle 2.5.0", "zeroize", ] [[package]] name = "curve25519-dalek-derive" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -5343,75 +5373,56 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.186" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9c4fe7f2f5dc5c62871a1b43992d197da6fa1394656a94276ac2894a90a6fe" +checksum = "28403c86fc49e3401fdf45499ba37fad6493d9329449d6449d7f0e10f4654d28" dependencies = [ "cc", - "cxx-build", - "cxxbridge-cmd", "cxxbridge-flags", "cxxbridge-macro", - "foldhash 0.2.0", "link-cplusplus", ] [[package]] name = "cxx-build" -version = "1.0.186" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5cf2909d37d80633ddd208676fc27c2608a7f035fff69c882421168038b26dd" +checksum = "78da94fef01786dc3e0c76eafcd187abcaa9972c78e05ff4041e24fdf059c285" dependencies = [ "cc", "codespan-reporting", - "indexmap 2.11.4", - "proc-macro2 1.0.101", - "quote 1.0.41", + "once_cell", + "proc-macro2 1.0.95", + "quote 1.0.40", "scratch", - "syn 2.0.106", -] - -[[package]] -name = "cxxbridge-cmd" -version = "1.0.186" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "077f5ee3d3bfd8d27f83208fdaa96ddd50af7f096c77077cc4b94da10bfacefd" -dependencies = [ - "clap", - "codespan-reporting", - "indexmap 2.11.4", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "cxxbridge-flags" -version = "1.0.186" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0108748615125b9f2e915dfafdffcbdabbca9b15102834f6d7e9a768f2f2864" +checksum = "e2a6f5e1dfb4b34292ad4ea1facbfdaa1824705b231610087b00b17008641809" [[package]] name = "cxxbridge-macro" -version = "1.0.186" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e896681ef9b8dc462cfa6961d61909704bde0984b30bcb4082fe102b478890" +checksum = "50c49547d73ba8dcfd4ad7325d64c6d5391ff4224d498fc39a6f3f49825a530d" dependencies = [ - "indexmap 2.11.4", - "proc-macro2 1.0.101", - "quote 1.0.41", - "rustversion", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "darling" -version = "0.20.11" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core 0.20.11", - "darling_macro 0.20.11", + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] @@ -5426,16 +5437,16 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.11" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "strsim", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -5446,21 +5457,21 @@ checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "strsim", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "darling_macro" -version = "0.20.11" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core 0.20.11", - "quote 1.0.41", - "syn 2.0.106", + "darling_core 0.20.10", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -5470,34 +5481,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", - "quote 1.0.41", - "syn 2.0.106", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "dashmap" -version = "5.5.3" +version = "5.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +checksum = "edd72493923899c6f10c641bdbdeddc7183d6396641d99c1a0d1597f37f92e28" dependencies = [ "cfg-if", "hashbrown 0.14.5", "lock_api", "once_cell", - "parking_lot_core 0.9.11", + "parking_lot_core 0.9.8", ] [[package]] name = "data-encoding" -version = "2.9.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "data-encoding-macro" -version = "0.1.18" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" +checksum = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -5505,12 +5516,12 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.16" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" +checksum = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772" dependencies = [ "data-encoding", - "syn 2.0.106", + "syn 1.0.109", ] [[package]] @@ -5524,9 +5535,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.10" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" dependencies = [ "const-oid", "pem-rfc7468", @@ -5539,7 +5550,7 @@ version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" dependencies = [ - "asn1-rs 0.6.2", + "asn1-rs 0.6.1", "displaydoc", "nom 7.1.3", "num-bigint", @@ -5553,7 +5564,7 @@ version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07da5016415d5a3c4dd39b11ed26f915f52fc4e0dc197d87908bc916e51bc1a6" dependencies = [ - "asn1-rs 0.7.1", + "asn1-rs 0.7.0", "displaydoc", "nom 7.1.3", "num-bigint", @@ -5563,12 +5574,12 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.4" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", - "serde_core", + "serde", ] [[package]] @@ -5577,8 +5588,8 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "syn 1.0.109", ] @@ -5588,9 +5599,9 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -5599,33 +5610,33 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef941ded77d15ca19b40374869ac6000af1c9f2a4c0f3d4c70926287e6364a8f" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "derive_arbitrary" -version = "1.4.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "derive_more" -version = "0.99.20" +version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case 0.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "rustc_version 0.4.1", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "rustc_version 0.4.0", + "syn 1.0.109", ] [[package]] @@ -5652,9 +5663,9 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -5664,10 +5675,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ "convert_case 0.7.1", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", - "unicode-xid 0.2.6", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", + "unicode-xid 0.2.4", ] [[package]] @@ -5709,7 +5720,7 @@ dependencies = [ "block-buffer 0.10.4", "const-oid", "crypto-common", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -5763,38 +5774,30 @@ dependencies = [ "winapi", ] -[[package]] -name = "dispatch" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - [[package]] name = "displaydoc" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "dissimilar" -version = "1.0.10" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8975ffdaa0ef3661bfe02dbdcc06c9f829dfafe6a3c474de366a8d5e44276921" +checksum = "86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632" [[package]] name = "dlmalloc" -version = "0.2.11" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06cdfe340b16dd990c54cce79743613fa09fbb16774f33a77c9fd196f8f3fa30" +checksum = "203540e710bfadb90e5e29930baf5d10270cec1f43ab34f46f78b147b2de715a" dependencies = [ - "cfg-if", "libc", - "windows-sys 0.60.2", ] [[package]] @@ -5821,12 +5824,12 @@ dependencies = [ "common-path", "derive-syn-parse", "once_cell", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "regex", - "syn 2.0.106", + "syn 2.0.98", "termcolor", - "toml 0.8.23", + "toml", "walkdir", ] @@ -5844,9 +5847,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "downcast-rs" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "drawille" @@ -5860,21 +5863,21 @@ dependencies = [ [[package]] name = "dtoa" -version = "1.0.10" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6add3b8cff394282be81f3fc1a0605db594ed69890078ca6e2cab1c408bcf04" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" [[package]] name = "dunce" -version = "1.0.5" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "dyn-clonable" -version = "0.9.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a36efbb9bfd58e1723780aa04b61aba95ace6a05d9ffabfdb0b43672552f0805" +checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" dependencies = [ "dyn-clonable-impl", "dyn-clone", @@ -5882,20 +5885,20 @@ dependencies = [ [[package]] name = "dyn-clonable-impl" -version = "0.9.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8671d54058979a37a26f3511fbf8d198ba1aa35ffb202c42587d918d77213a" +checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 1.0.109", ] [[package]] name = "dyn-clone" -version = "1.0.20" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "easy-cast" @@ -5908,9 +5911,9 @@ dependencies = [ [[package]] name = "ecdsa" -version = "0.16.9" +version = "0.16.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" dependencies = [ "der", "digest 0.10.7", @@ -5923,9 +5926,9 @@ dependencies = [ [[package]] name = "ed25519" -version = "2.2.3" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d" dependencies = [ "pkcs8", "signature", @@ -5933,32 +5936,31 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.2.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek", "ed25519", "rand_core 0.6.4", "serde", "sha2 0.10.9", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] [[package]] name = "ed25519-zebra" -version = "4.1.0" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0017d969298eec91e3db7a2985a8cab4df6341d86e6f3a6f5878b13fb7846bc9" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ "curve25519-dalek", "ed25519", - "hashbrown 0.15.5", - "pkcs8", + "hashbrown 0.14.5", + "hex", "rand_core 0.6.4", "sha2 0.10.9", - "subtle 2.6.1", "zeroize", ] @@ -5969,9 +5971,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" dependencies = [ "enum-ordinalize", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -5999,7 +6001,7 @@ dependencies = [ "rand_core 0.6.4", "sec1", "serdect", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] @@ -6059,29 +6061,29 @@ dependencies = [ [[package]] name = "encode_unicode" -version = "1.0.0" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.35" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" dependencies = [ "cfg-if", ] [[package]] name = "enum-as-inner" -version = "0.6.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" +checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" dependencies = [ - "heck 0.5.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "heck 0.4.1", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -6099,40 +6101,40 @@ version = "4.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "enumflags2" -version = "0.7.12" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef" +checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.12" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" +checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "enumn" -version = "0.1.14" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" +checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -6157,9 +6159,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.10.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" dependencies = [ "humantime", "is-terminal", @@ -6170,14 +6172,14 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.8" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" +checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" dependencies = [ "anstream", "anstyle", "env_filter", - "jiff", + "humantime", "log", ] @@ -6189,9 +6191,9 @@ checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "equivocation-detector" @@ -6209,13 +6211,11 @@ dependencies = [ [[package]] name = "erased-serde" -version = "0.4.8" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" +checksum = "2b73807008a3c7f171cc40312f37d95ef0396e048b5848d775f54b1a4dd4a0d3" dependencies = [ "serde", - "serde_core", - "typeid", ] [[package]] @@ -6230,12 +6230,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.14" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.61.1", + "windows-sys 0.59.0", ] [[package]] @@ -6305,9 +6305,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "5.4.1" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ "concurrent-queue", "parking", @@ -6316,11 +6316,11 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 5.4.1", + "event-listener 5.3.1", "pin-project-lite", ] @@ -6343,16 +6343,16 @@ dependencies = [ "file-guard", "fs-err", "prettyplease", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "eyre" -version = "0.6.12" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" dependencies = [ "indenter", "once_cell", @@ -6382,8 +6382,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e24cb5a94bcae1e5408b0effca5cd7172ea3c5755049c5f3af4cd283a165298" dependencies = [ "bit-set", - "regex-automata", - "regex-syntax", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -6430,7 +6430,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec6f82451ff7f0568c6181287189126d492b5654e30a788add08027b6363d019" dependencies = [ "fatality-proc-macro", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -6440,11 +6440,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" dependencies = [ "expander", - "indexmap 2.11.4", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "indexmap 2.9.0", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -6454,7 +6454,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" dependencies = [ "libc", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -6475,19 +6475,19 @@ dependencies = [ [[package]] name = "ff" -version = "0.13.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ "rand_core 0.6.4", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] name = "fiat-crypto" -version = "0.2.9" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" [[package]] name = "file-guard" @@ -6501,14 +6501,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.26" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" +checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" dependencies = [ "cfg-if", "libc", - "libredox", - "windows-sys 0.60.2", + "redox_syscall 0.3.5", + "windows-sys 0.48.0", ] [[package]] @@ -6523,7 +6523,7 @@ dependencies = [ "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "scale-info", ] @@ -6539,15 +6539,15 @@ dependencies = [ "futures", "log", "num-traits", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "relay-utils", ] [[package]] name = "find-msvc-tools" -version = "0.1.2" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959" +checksum = "e178e4fba8a2726903f6ba98a6d221e76f9c12c650d5dc0e6afdc50677b49650" [[package]] name = "findshlibs" @@ -6589,17 +6589,11 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" -[[package]] -name = "fixedbitset" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" - [[package]] name = "flate2" -version = "1.1.2" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "miniz_oxide", @@ -6634,12 +6628,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" -[[package]] -name = "foldhash" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" - [[package]] name = "foreign-types" version = "0.3.2" @@ -6664,9 +6652,9 @@ dependencies = [ [[package]] name = "form_urlencoded" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -6678,7 +6666,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" dependencies = [ "nonempty", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -6693,15 +6681,15 @@ dependencies = [ [[package]] name = "fragile" -version = "2.0.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "28.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "frame-support", "frame-support-procedural", "frame-system", @@ -6731,7 +6719,7 @@ name = "frame-benchmarking-cli" version = "32.0.0" dependencies = [ "Inflector", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "chrono", "clap", "comfy-table", @@ -6788,7 +6776,7 @@ dependencies = [ "substrate-test-runtime", "subxt 0.43.0", "subxt-signer 0.43.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "thousands", "westend-runtime", ] @@ -6812,7 +6800,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7cb8796f93fa038f979a014234d632e9688a120e745f936e2635123c77537f7" dependencies = [ - "frame-metadata 21.0.0", + "frame-metadata 20.0.0", "parity-scale-codec", "scale-decode", "scale-info", @@ -6841,12 +6829,12 @@ dependencies = [ "frame-election-provider-support", "frame-support", "parity-scale-codec", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", "scale-info", "sp-arithmetic", - "syn 2.0.106", + "syn 2.0.98", "trybuild", ] @@ -6886,7 +6874,7 @@ name = "frame-executive" version = "28.0.0" dependencies = [ "aquamarine", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "frame-support", "frame-system", "frame-try-runtime", @@ -6916,17 +6904,6 @@ dependencies = [ "serde", ] -[[package]] -name = "frame-metadata" -version = "21.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20dfd1d7eae1d94e32e869e2fb272d81f52dd8db57820a373adb83ea24d7d862" -dependencies = [ - "cfg-if", - "parity-scale-codec", - "scale-info", -] - [[package]] name = "frame-metadata" version = "23.0.0" @@ -6943,7 +6920,7 @@ dependencies = [ name = "frame-metadata-hash-extension" version = "0.1.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "const-hex", "docify", "frame-metadata 23.0.0", @@ -6976,7 +6953,7 @@ dependencies = [ "sp-runtime", "sp-statement-store", "tempfile", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] @@ -7020,7 +6997,7 @@ version = "28.0.0" dependencies = [ "Inflector", "aquamarine", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "binary-merkle-tree", "bitflags 1.3.2", "docify", @@ -7077,15 +7054,15 @@ dependencies = [ "parity-scale-codec", "pretty_assertions", "proc-macro-warning", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "regex", "scale-info", "sp-crypto-hashing 0.1.0", "sp-io", "sp-metadata-ir", "sp-runtime", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -7093,19 +7070,19 @@ name = "frame-support-procedural-tools" version = "10.0.0" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "frame-support-procedural-tools-derive" version = "11.0.0" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -7227,12 +7204,9 @@ dependencies = [ [[package]] name = "fs-err" -version = "2.11.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" -dependencies = [ - "autocfg", -] +checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541" [[package]] name = "fs2" @@ -7250,7 +7224,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.44", + "rustix 0.38.42", "windows-sys 0.48.0", ] @@ -7327,7 +7301,7 @@ checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", "lock_api", - "parking_lot 0.12.4", + "parking_lot 0.12.3", ] [[package]] @@ -7353,9 +7327,9 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.6.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ "fastrand 2.3.0", "futures-core", @@ -7370,9 +7344,9 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -7382,7 +7356,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.23.32", + "rustls 0.23.18", "rustls-pki-types", ] @@ -7404,7 +7378,7 @@ version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ - "gloo-timers 0.2.6", + "gloo-timers", "send_wrapper", ] @@ -7461,6 +7435,19 @@ dependencies = [ "sp-staking", ] +[[package]] +name = "generator" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" +dependencies = [ + "cfg-if", + "libc", + "log", + "rustversion", + "windows 0.58.0", +] + [[package]] name = "generic-array" version = "0.12.4" @@ -7493,29 +7480,25 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", - "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "wasm-bindgen", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" dependencies = [ "cfg-if", - "js-sys", "libc", - "r-efi", - "wasi 0.14.7+wasi-0.2.4", - "wasm-bindgen", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", ] [[package]] @@ -7530,14 +7513,20 @@ dependencies = [ [[package]] name = "ghash" -version = "0.5.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ - "opaque-debug 0.3.1", + "opaque-debug 0.3.0", "polyval", ] +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + [[package]] name = "gimli" version = "0.31.1" @@ -7545,21 +7534,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" dependencies = [ "fallible-iterator", - "indexmap 2.11.4", + "indexmap 2.9.0", "stable_deref_trait", ] -[[package]] -name = "gimli" -version = "0.32.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" - [[package]] name = "git2" -version = "0.20.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" +checksum = "3fda788993cc341f69012feba8bf45c0ba4f3291fcc08e214b4d5a7332d88aff" dependencies = [ "bitflags 2.9.4", "libc", @@ -7570,9 +7553,9 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.3" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "glob-match" @@ -7590,12 +7573,12 @@ dependencies = [ "futures-core", "futures-sink", "gloo-utils", - "http 1.3.1", + "http 1.1.0", "js-sys", "pin-project", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -7613,18 +7596,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "gloo-timers" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "gloo-utils" version = "0.2.0" @@ -7686,9 +7657,9 @@ dependencies = [ [[package]] name = "gmp-mpfr-sys" -version = "1.6.8" +version = "1.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60f8970a75c006bb2f8ae79c6768a116dd215fa8346a87aed99bf9d82ca43394" +checksum = "a636fb6a653382a379ee1e5593dacdc628667994167024c143214cafd40c1a86" dependencies = [ "libc", "windows-sys 0.60.2", @@ -7716,9 +7687,9 @@ dependencies = [ [[package]] name = "governor" -version = "0.6.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +checksum = "821239e5672ff23e2a7060901fa622950bbd80b649cdaadd78d1c1767ed14eb4" dependencies = [ "cfg-if", "dashmap", @@ -7726,12 +7697,10 @@ dependencies = [ "futures-timer", "no-std-compat", "nonzero_ext", - "parking_lot 0.12.4", - "portable-atomic", + "parking_lot 0.12.3", "quanta", "rand 0.8.5", "smallvec", - "spinning_top", ] [[package]] @@ -7742,22 +7711,22 @@ checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", "rand_core 0.6.4", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] name = "h2" -version = "0.3.27" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", "futures-core", "futures-sink", "futures-util", - "http 0.2.12", - "indexmap 2.11.4", + "http 0.2.9", + "indexmap 2.9.0", "slab", "tokio", "tokio-util", @@ -7766,17 +7735,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.12" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.3.1", - "indexmap 2.11.4", + "http 1.1.0", + "indexmap 2.9.0", "slab", "tokio", "tokio-util", @@ -7785,26 +7754,22 @@ dependencies = [ [[package]] name = "half" -version = "2.6.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" -dependencies = [ - "cfg-if", - "crunchy", -] +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" [[package]] name = "handlebars" -version = "5.1.2" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" +checksum = "ab283476b99e66691dee3f1640fea91487a8d81f50fb5ecc75538f8f8879a1e4" dependencies = [ "log", "pest", "pest_derive", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -7850,23 +7815,13 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.5" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" dependencies = [ "allocator-api2", "equivalent", - "foldhash 0.1.5", - "serde", -] - -[[package]] -name = "hashbrown" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" -dependencies = [ - "foldhash 0.2.0", + "foldhash", "serde", ] @@ -7881,11 +7836,11 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.10.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" +checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af" dependencies = [ - "hashbrown 0.15.5", + "hashbrown 0.14.5", ] [[package]] @@ -7902,21 +7857,24 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.5.2" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] [[package]] name = "hex-conservative" -version = "0.1.2" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" +checksum = "30ed443af458ccb6d81c1e7e661545f94d3176752fb1df2f543b902a1e0f51e2" [[package]] name = "hex-conservative" @@ -7935,9 +7893,9 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "hickory-proto" -version = "0.24.4" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92652067c9ce6f66ce53cc38d1169daa36e6e7eb7dd3b63b5103bd9d97117248" +checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512" dependencies = [ "async-trait", "cfg-if", @@ -7946,12 +7904,12 @@ dependencies = [ "futures-channel", "futures-io", "futures-util", - "idna", + "idna 0.4.0", "ipnet", "once_cell", "rand 0.8.5", - "socket2 0.5.10", - "thiserror 1.0.69", + "socket2 0.5.9", + "thiserror 1.0.65", "tinyvec", "tokio", "tracing", @@ -7971,12 +7929,12 @@ dependencies = [ "futures-channel", "futures-io", "futures-util", - "idna", + "idna 1.0.3", "ipnet", "once_cell", - "rand 0.9.2", - "ring 0.17.14", - "thiserror 2.0.17", + "rand 0.9.0", + "ring 0.17.8", + "thiserror 2.0.12", "tinyvec", "tokio", "tracing", @@ -7985,21 +7943,21 @@ dependencies = [ [[package]] name = "hickory-resolver" -version = "0.24.4" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbb117a1ca520e111743ab2f6688eddee69db4e0ea242545a604dce8a66fd22e" +checksum = "0a2e2aba9c389ce5267d31cf1e4dace82390ae276b0b364ea55630b1fa1b44b4" dependencies = [ "cfg-if", "futures-util", - "hickory-proto 0.24.4", + "hickory-proto 0.24.1", "ipconfig", "lru-cache", "once_cell", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "resolv-conf", "smallvec", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tracing", ] @@ -8016,11 +7974,11 @@ dependencies = [ "ipconfig", "moka", "once_cell", - "parking_lot 0.12.4", - "rand 0.9.2", + "parking_lot 0.12.3", + "rand 0.9.0", "resolv-conf", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.12", "tokio", "tracing", ] @@ -8066,31 +8024,41 @@ dependencies = [ [[package]] name = "home" -version = "0.5.11" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] name = "honggfuzz" -version = "0.5.58" +version = "0.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e8319f3cc8fe416e7aa1ab95dcc04fd49f35397a47d0b2f0f225f6dba346a07" +checksum = "848e9c511092e0daa0a35a63e8e6e475a3e8f870741448b9f6028d69b142f18e" dependencies = [ "arbitrary", "lazy_static", - "memmap2 0.9.8", - "rustc_version 0.4.1", - "semver 1.0.27", + "memmap2 0.5.10", + "rustc_version 0.4.0", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", ] [[package]] name = "http" -version = "0.2.12" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes", "fnv", @@ -8099,9 +8067,9 @@ dependencies = [ [[package]] name = "http" -version = "1.3.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -8110,35 +8078,35 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.6" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", - "http 0.2.12", + "http 0.2.9", "pin-project-lite", ] [[package]] name = "http-body" -version = "1.0.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" dependencies = [ "bytes", - "http 1.3.1", + "http 1.1.0", ] [[package]] name = "http-body-util" -version = "0.1.3" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", - "futures-core", - "http 1.3.1", - "http-body 1.0.1", + "futures-util", + "http 1.1.0", + "http-body 1.0.0", "pin-project-lite", ] @@ -8150,9 +8118,9 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "httparse" -version = "1.10.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" +checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" [[package]] name = "httpdate" @@ -8162,9 +8130,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" -version = "2.3.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "humantime-serde" @@ -8178,22 +8146,22 @@ dependencies = [ [[package]] name = "hyper" -version = "0.14.32" +version = "0.14.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" dependencies = [ "bytes", "futures-channel", "futures-core", "futures-util", - "h2 0.3.27", - "http 0.2.12", - "http-body 0.4.6", + "h2 0.3.26", + "http 0.2.9", + "http-body 0.4.5", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.10", + "socket2 0.5.9", "tokio", "tower-service", "tracing", @@ -8202,22 +8170,20 @@ dependencies = [ [[package]] name = "hyper" -version = "1.7.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ - "atomic-waker", "bytes", "futures-channel", - "futures-core", - "h2 0.4.12", - "http 1.3.1", - "http-body 1.0.1", + "futures-util", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.0", "httparse", "httpdate", "itoa", "pin-project-lite", - "pin-utils", "smallvec", "tokio", "want", @@ -8230,10 +8196,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http 0.2.12", - "hyper 0.14.32", + "http 0.2.9", + "hyper 0.14.29", "log", - "rustls 0.21.12", + "rustls 0.21.7", "rustls-native-certs 0.6.3", "tokio", "tokio-rustls 0.24.1", @@ -8241,21 +8207,22 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ - "http 1.3.1", - "hyper 1.7.0", + "futures-util", + "http 1.1.0", + "hyper 1.6.0", "hyper-util", "log", - "rustls 0.23.32", - "rustls-native-certs 0.8.1", + "rustls 0.23.18", + "rustls-native-certs 0.8.0", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.4", + "tokio-rustls 0.26.0", "tower-service", - "webpki-roots 1.0.2", + "webpki-roots 0.26.3", ] [[package]] @@ -8264,7 +8231,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper 0.14.32", + "hyper 0.14.29", "pin-project-lite", "tokio", "tokio-io-timeout", @@ -8278,7 +8245,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.7.0", + "hyper 1.6.0", "hyper-util", "native-tls", "tokio", @@ -8288,43 +8255,35 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.17" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ - "base64 0.22.1", "bytes", "futures-channel", - "futures-core", "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "hyper 1.7.0", - "ipnet", - "libc", - "percent-encoding", + "http 1.1.0", + "http-body 1.0.0", + "hyper 1.6.0", "pin-project-lite", - "socket2 0.6.0", - "system-configuration", + "socket2 0.5.9", "tokio", "tower-service", "tracing", - "windows-registry", ] [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", - "log", "wasm-bindgen", - "windows-core 0.62.1", + "windows 0.48.0", ] [[package]] @@ -8338,22 +8297,21 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ "displaydoc", - "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locale_core" -version = "2.0.0" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ "displaydoc", "litemap", @@ -8362,11 +8320,31 @@ dependencies = [ "zerovec", ] +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ "displaydoc", "icu_collections", @@ -8374,54 +8352,67 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", + "utf16_iter", + "utf8_iter", + "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] name = "icu_properties" -version = "2.0.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ "displaydoc", "icu_collections", - "icu_locale_core", + "icu_locid_transform", "icu_properties_data", "icu_provider", - "potential_utf", - "zerotrie", + "tinystr", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] name = "icu_provider" -version = "2.0.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ "displaydoc", - "icu_locale_core", + "icu_locid", + "icu_provider_macros", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", - "zerotrie", "zerovec", ] +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -8430,20 +8421,30 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.1.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", + "unicode-bidi", + "unicode-normalization", ] [[package]] -name = "idna_adapter" -version = "1.2.1" +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ "icu_normalizer", "icu_properties", @@ -8461,25 +8462,21 @@ dependencies = [ [[package]] name = "if-watch" -version = "3.2.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf9d64cfcf380606e64f9a0bcf493616b65331199f984151a6fa11a7b3cde38" +checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" dependencies = [ - "async-io", - "core-foundation 0.9.4", + "async-io 2.3.3", + "core-foundation", "fnv", "futures", "if-addrs", "ipnet", "log", - "netlink-packet-core", - "netlink-packet-route", - "netlink-proto", - "netlink-sys", "rtnetlink", - "system-configuration", + "system-configuration 0.5.1", "tokio", - "windows 0.53.0", + "windows 0.51.1", ] [[package]] @@ -8492,8 +8489,8 @@ dependencies = [ "attohttpc", "bytes", "futures", - "http 0.2.12", - "hyper 0.14.32", + "http 0.2.9", + "hyper 0.14.29", "log", "rand 0.8.5", "tokio", @@ -8554,35 +8551,35 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "include_dir" -version = "0.7.4" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" +checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" dependencies = [ "include_dir_macros", ] [[package]] name = "include_dir_macros" -version = "0.7.4" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" +checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", ] [[package]] name = "indenter" -version = "0.3.4" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" @@ -8597,14 +8594,13 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.4" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.15.3", "serde", - "serde_core", ] [[package]] @@ -8615,22 +8611,22 @@ checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" [[package]] name = "indicatif" -version = "0.17.11" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" +checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" dependencies = [ "console", + "instant", "number_prefix", "portable-atomic", - "unicode-width", - "web-time", + "unicode-width 0.1.10", ] [[package]] name = "inout" -version = "0.1.4" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ "generic-array 0.14.7", ] @@ -8654,14 +8650,14 @@ dependencies = [ ] [[package]] -name = "io-uring" -version = "0.7.10" +name = "io-lifetimes" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "bitflags 2.9.4", - "cfg-if", + "hermit-abi", "libc", + "windows-sys 0.48.0", ] [[package]] @@ -8676,7 +8672,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.10", + "socket2 0.5.9", "widestring", "windows-sys 0.48.0", "winreg", @@ -8684,46 +8680,30 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" - -[[package]] -name = "iri-string" -version = "0.7.8" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" -dependencies = [ - "memchr", - "serde", -] +checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" [[package]] name = "is-terminal" -version = "0.4.16" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" +checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "libc", - "windows-sys 0.59.0", + "rustix 0.38.42", + "windows-sys 0.48.0", ] [[package]] name = "is_executable" -version = "1.0.5" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baabb8b4867b26294d818bf3f651a454b6901431711abb96e296245888d6e8c4" +checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" dependencies = [ - "windows-sys 0.60.2", + "winapi", ] -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - [[package]] name = "isahc" version = "1.7.2" @@ -8738,7 +8718,7 @@ dependencies = [ "encoding_rs", "event-listener 2.5.3", "futures-lite 1.13.0", - "http 0.2.12", + "http 0.2.9", "log", "mime", "once_cell", @@ -8798,9 +8778,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "ittapi" @@ -8824,9 +8804,9 @@ dependencies = [ [[package]] name = "jam-codec" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb948eace373d99de60501a02fb17125d30ac632570de20dccc74370cdd611b9" +checksum = "d72f2fb8cfd27f6c52ea7d0528df594f7f2ed006feac153e9393ec567aafea98" dependencies = [ "arrayvec 0.7.6", "bitvec", @@ -8840,54 +8820,28 @@ dependencies = [ [[package]] name = "jam-codec-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "319af585c4c8a6b5552a52b7787a1ab3e4d59df7614190b1f85b9b842488789d" -dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", -] - -[[package]] -name = "jiff" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" -dependencies = [ - "jiff-static", - "log", - "portable-atomic", - "portable-atomic-util", - "serde", -] - -[[package]] -name = "jiff-static" -version = "0.2.15" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" +checksum = "09985146f40378e13af626964ac9c206d9d9b67c40c70805898d9954f709bcf5" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "jni" -version = "0.21.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" dependencies = [ "cesu8", - "cfg-if", "combine", "jni-sys", "log", - "thiserror 1.0.69", + "thiserror 1.0.65", "walkdir", - "windows-sys 0.45.0", ] [[package]] @@ -8898,21 +8852,19 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.34" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ - "getrandom 0.3.3", "libc", ] [[package]] name = "js-sys" -version = "0.3.81" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ - "once_cell", "wasm-bindgen", ] @@ -8924,7 +8876,7 @@ checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" dependencies = [ "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -8937,7 +8889,7 @@ dependencies = [ "pest_derive", "regex", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -8953,9 +8905,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.24.9" +version = "0.24.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b26c20e2178756451cfeb0661fb74c47dd5988cb7e3939de7e9241fd604d42" +checksum = "834af00800e962dee8f7bfc0f60601de215e73e78e5497d733a2919da837d3c8" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -8971,24 +8923,24 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bacb85abf4117092455e1573625e21b8f8ef4dec8aff13361140b2dc266cdff2" +checksum = "548125b159ba1314104f5bb5f38519e03a41862786aa3925cf349aae9cdd546e" dependencies = [ "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", - "http 1.3.1", + "http 1.1.0", "jsonrpsee-core", "pin-project", - "rustls 0.23.32", + "rustls 0.23.18", "rustls-pki-types", "rustls-platform-verifier", "soketto", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", - "tokio-rustls 0.26.4", + "tokio-rustls 0.26.0", "tokio-util", "tracing", "url", @@ -8996,25 +8948,25 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456196007ca3a14db478346f58c7238028d55ee15c1df15115596e411ff27925" +checksum = "f2882f6f8acb9fdaec7cefc4fd607119a9bd709831df7d7672a1d3b644628280" dependencies = [ "async-trait", "bytes", "futures-timer", "futures-util", - "http 1.3.1", - "http-body 1.0.1", + "http 1.1.0", + "http-body 1.0.0", "http-body-util", "jsonrpsee-types", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "rustc-hash 2.1.1", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-stream", "tracing", @@ -9023,53 +8975,53 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c872b6c9961a4ccc543e321bb5b89f6b2d2c7fe8b61906918273a3333c95400c" +checksum = "b3638bc4617f96675973253b3a45006933bde93c2fd8a6170b33c777cc389e5b" dependencies = [ "async-trait", "base64 0.22.1", - "http-body 1.0.1", - "hyper 1.7.0", - "hyper-rustls 0.27.7", + "http-body 1.0.0", + "hyper 1.6.0", + "hyper-rustls 0.27.3", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", - "rustls 0.23.32", + "rustls 0.23.18", "rustls-platform-verifier", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", - "tower 0.4.13", + "tower", "tracing", "url", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e65763c942dfc9358146571911b0cd1c361c2d63e2d2305622d40d36376ca80" +checksum = "c06c01ae0007548e73412c08e2285ffe5d723195bf268bce67b1b77c3bb2a14d" dependencies = [ "heck 0.5.0", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "jsonrpsee-server" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55e363146da18e50ad2b51a0a7925fc423137a0b1371af8235b1c231a0647328" +checksum = "82ad8ddc14be1d4290cd68046e7d1d37acd408efed6d3ca08aefcc3ad6da069c" dependencies = [ "futures-util", - "http 1.3.1", - "http-body 1.0.1", + "http 1.1.0", + "http-body 1.0.0", "http-body-util", - "hyper 1.7.0", + "hyper 1.6.0", "hyper-util", "jsonrpsee-core", "jsonrpsee-types", @@ -9078,31 +9030,31 @@ dependencies = [ "serde", "serde_json", "soketto", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-stream", "tokio-util", - "tower 0.4.13", + "tower", "tracing", ] [[package]] name = "jsonrpsee-types" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a8e70baf945b6b5752fc8eb38c918a48f1234daf11355e07106d963f860089" +checksum = "a178c60086f24cc35bb82f57c651d0d25d99c4742b4d335de04e97fa1f08a8a1" dependencies = [ - "http 1.3.1", + "http 1.1.0", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "jsonrpsee-wasm-client" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6558a9586cad43019dafd0b6311d0938f46efc116b34b28c74778bc11a2edf6" +checksum = "1a01cd500915d24ab28ca17527e23901ef1be6d659a2322451e1045532516c25" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -9111,11 +9063,11 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.24.9" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b3323d890aa384f12148e8d2a1fd18eb66e9e7e825f9de4fa53bcc19b93eef" +checksum = "0fe322e0896d0955a3ebdd5bf813571c53fea29edd713bc315b76620b327e86d" dependencies = [ - "http 1.3.1", + "http 1.1.0", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", @@ -9152,9 +9104,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" dependencies = [ "cpufeatures", ] @@ -9206,7 +9158,7 @@ checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" name = "kitchensink-runtime" version = "3.0.0-dev" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "log", "node-primitives", "pallet-example-mbm", @@ -9247,9 +9199,9 @@ dependencies = [ "either", "futures", "home", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", + "http 0.2.9", + "http-body 0.4.5", + "hyper 0.14.29", "hyper-rustls 0.24.2", "hyper-timeout", "jsonpath-rust", @@ -9258,17 +9210,17 @@ dependencies = [ "pem", "pin-project", "rand 0.8.5", - "rustls 0.21.12", - "rustls-pemfile", + "rustls 0.21.7", + "rustls-pemfile 1.0.3", "secrecy 0.8.0", "serde", "serde_json", "serde_yaml", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-tungstenite 0.20.1", "tokio-util", - "tower 0.4.13", + "tower", "tower-http 0.4.4", "tracing", ] @@ -9281,13 +9233,13 @@ checksum = "b5bba93d054786eba7994d03ce522f368ef7d48c88a1826faa28478d85fb63ae" dependencies = [ "chrono", "form_urlencoded", - "http 0.2.12", + "http 0.2.9", "json-patch", "k8s-openapi", "once_cell", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -9305,12 +9257,12 @@ dependencies = [ "json-patch", "k8s-openapi", "kube-client", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "serde", "serde_json", "smallvec", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-util", "tracing", @@ -9341,7 +9293,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parking_lot 0.12.4", + "parking_lot 0.12.3", ] [[package]] @@ -9352,7 +9304,7 @@ checksum = "e8beb5ce840610e5a945f0306f6e7a2d5b3e68ea3e64e9a4f081fa4ee5aa6525" dependencies = [ "kvdb", "num_cpus", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "regex", "rocksdb", ] @@ -9368,13 +9320,13 @@ dependencies = [ [[package]] name = "landlock" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9baa9eeb6e315942429397e617a190f4fdc696ef1ee0342939d641029cbb4ea7" +checksum = "1530c5b973eeed4ac216af7e24baf5737645a6272e361f1fb95710678b67d9cc" dependencies = [ "enumflags2", "libc", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -9386,6 +9338,12 @@ dependencies = [ "spin 0.9.8", ] +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + [[package]] name = "leb128fmt" version = "0.1.0" @@ -9394,9 +9352,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.176" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libflate" @@ -9420,19 +9378,20 @@ dependencies = [ [[package]] name = "libfuzzer-sys" -version = "0.4.10" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" +checksum = "a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7" dependencies = [ "arbitrary", "cc", + "once_cell", ] [[package]] name = "libgit2-sys" -version = "0.18.2+1.9.1" +version = "0.18.0+1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c42fe03df2bd3c53a3a9c7317ad91d80c81cd1fb0caec8d7cc4cd2bfa10c222" +checksum = "e1a117465e7e1597e8febea8bb0c410f1c7fb93b1e1cddf34363f8390367ffec" dependencies = [ "cc", "libc", @@ -9442,15 +9401,15 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.15" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libnghttp2-sys" -version = "0.1.11+1.64.0" +version = "0.1.9+1.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6c24e48a7167cffa7119da39d577fa482e66c688a4aac016bee862e1a713c4" +checksum = "b57e858af2798e167e709b9d969325b6d8e9d50232fcbc494d7d54f976854a64" dependencies = [ "cc", "libc", @@ -9466,7 +9425,7 @@ dependencies = [ "either", "futures", "futures-timer", - "getrandom 0.2.16", + "getrandom 0.2.10", "libp2p-allow-block-list", "libp2p-connection-limits", "libp2p-core", @@ -9485,10 +9444,10 @@ dependencies = [ "libp2p-upnp", "libp2p-websocket", "libp2p-yamux", - "multiaddr 0.18.2", + "multiaddr 0.18.1", "pin-project", "rw-stream-sink", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -9526,17 +9485,17 @@ dependencies = [ "futures", "futures-timer", "libp2p-identity", - "multiaddr 0.18.2", - "multihash 0.19.3", + "multiaddr 0.18.1", + "multihash 0.19.1", "multistream-select", "once_cell", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "quick-protobuf", "rand 0.8.5", "rw-stream-sink", "smallvec", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "unsigned-varint 0.8.0", "void", @@ -9551,10 +9510,10 @@ checksum = "97f37f30d5c7275db282ecd86e54f29dd2176bd3ac656f06abf43bedb21eb8bd" dependencies = [ "async-trait", "futures", - "hickory-resolver 0.24.4", + "hickory-resolver 0.24.2", "libp2p-core", "libp2p-identity", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "smallvec", "tracing", ] @@ -9577,25 +9536,25 @@ dependencies = [ "quick-protobuf", "quick-protobuf-codec", "smallvec", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "void", ] [[package]] name = "libp2p-identity" -version = "0.2.12" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3104e13b51e4711ff5738caa1fb54467c8604c2e94d607e27745bcf709068774" +checksum = "55cca1eb2bc1fd29f099f3daaab7effd01e1a54b7c577d0ed082521034d912e8" dependencies = [ "bs58", "ed25519-dalek", "hkdf", - "multihash 0.19.3", + "multihash 0.19.1", "quick-protobuf", "rand 0.8.5", "sha2 0.10.9", - "thiserror 2.0.17", + "thiserror 1.0.65", "tracing", "zeroize", ] @@ -9622,7 +9581,7 @@ dependencies = [ "rand 0.8.5", "sha2 0.10.9", "smallvec", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "uint 0.9.5", "void", @@ -9637,14 +9596,14 @@ checksum = "14b8546b6644032565eb29046b42744aee1e9f261ed99671b2c93fb140dba417" dependencies = [ "data-encoding", "futures", - "hickory-proto 0.24.4", + "hickory-proto 0.24.1", "if-watch", "libp2p-core", "libp2p-identity", "libp2p-swarm", "rand 0.8.5", "smallvec", - "socket2 0.5.10", + "socket2 0.5.9", "tokio", "tracing", "void", @@ -9680,15 +9639,15 @@ dependencies = [ "futures", "libp2p-core", "libp2p-identity", - "multiaddr 0.18.2", - "multihash 0.19.3", + "multiaddr 0.18.1", + "multihash 0.19.1", "once_cell", "quick-protobuf", "rand 0.8.5", "sha2 0.10.9", "snow", "static_assertions", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "x25519-dalek", "zeroize", @@ -9725,13 +9684,13 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-tls", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "quinn", "rand 0.8.5", - "ring 0.17.14", - "rustls 0.23.32", - "socket2 0.5.10", - "thiserror 1.0.69", + "ring 0.17.8", + "rustls 0.23.18", + "socket2 0.5.9", + "thiserror 1.0.65", "tokio", "tracing", ] @@ -9787,9 +9746,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "206e0aa0ebe004d778d79fb0966aa0de996c19894e2c0605ba2f8524dd4443d8" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -9804,7 +9763,7 @@ dependencies = [ "libc", "libp2p-core", "libp2p-identity", - "socket2 0.5.10", + "socket2 0.5.9", "tokio", "tracing", ] @@ -9820,10 +9779,10 @@ dependencies = [ "libp2p-core", "libp2p-identity", "rcgen", - "ring 0.17.14", - "rustls 0.23.32", - "rustls-webpki 0.101.7", - "thiserror 1.0.69", + "ring 0.17.8", + "rustls 0.23.18", + "rustls-webpki 0.101.4", + "thiserror 1.0.65", "x509-parser 0.16.0", "yasna", ] @@ -9855,14 +9814,14 @@ dependencies = [ "futures-rustls", "libp2p-core", "libp2p-identity", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project-lite", "rw-stream-sink", "soketto", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "url", - "webpki-roots 0.25.4", + "webpki-roots 0.25.2", ] [[package]] @@ -9874,21 +9833,10 @@ dependencies = [ "either", "futures", "libp2p-core", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "yamux 0.12.1", - "yamux 0.13.6", -] - -[[package]] -name = "libredox" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" -dependencies = [ - "bitflags 2.9.4", - "libc", - "redox_syscall 0.5.17", + "yamux 0.13.5", ] [[package]] @@ -9907,12 +9855,12 @@ dependencies = [ [[package]] name = "libsecp256k1" -version = "0.7.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79019718125edc905a079a70cfa5f3820bc76139fc91d6f9abc27ea2a887139" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ "arrayref", - "base64 0.22.1", + "base64 0.13.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -9932,7 +9880,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -9966,9 +9914,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.22" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" +checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", "libc", @@ -9978,9 +9926,9 @@ dependencies = [ [[package]] name = "link-cplusplus" -version = "1.0.12" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f78c730aaa7d0b9336a299029ea49f9ee53b0ed06e9202e8cb7db9bae7b8c82" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" dependencies = [ "cc", ] @@ -9993,33 +9941,39 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linked_hash_set" -version = "0.1.5" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae85b5be22d9843c80e5fc80e9b64c8a3b1f98f867c709956eca3efff4e92e2" +checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" dependencies = [ "linked-hash-map", ] [[package]] name = "linregress" -version = "0.5.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9eda9dcf4f2a99787827661f312ac3219292549c2ee992bf9a6248ffb066bf7" +checksum = "4de0b5f52a9f84544d268f5fabb71b38962d6aa3c6600b8bcd27d44ccf9c9c45" dependencies = [ "nalgebra", ] [[package]] name = "linux-raw-sys" -version = "0.4.15" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "lioness" @@ -10053,9 +10007,9 @@ dependencies = [ [[package]] name = "litemap" -version = "0.8.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "litep2p" @@ -10071,13 +10025,13 @@ dependencies = [ "futures", "futures-timer", "hickory-resolver 0.25.2", - "indexmap 2.11.4", + "indexmap 2.9.0", "libc", "mockall", "multiaddr 0.17.1", "multihash 0.17.0", "network-interface", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "prost 0.13.5", "prost-build", @@ -10087,8 +10041,8 @@ dependencies = [ "simple-dns", "smallvec", "snow", - "socket2 0.5.10", - "thiserror 2.0.17", + "socket2 0.5.9", + "thiserror 2.0.12", "tokio", "tokio-stream", "tokio-tungstenite 0.27.0", @@ -10099,16 +10053,16 @@ dependencies = [ "url", "x25519-dalek", "x509-parser 0.17.0", - "yamux 0.13.6", + "yamux 0.13.5", "yasna", "zeroize", ] [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" dependencies = [ "autocfg", "scopeguard", @@ -10116,21 +10070,34 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" dependencies = [ "serde", "value-bag", ] +[[package]] +name = "loom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" +dependencies = [ + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber 0.3.18", +] + [[package]] name = "lru" -version = "0.12.5" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" dependencies = [ - "hashbrown 0.15.5", + "hashbrown 0.14.5", ] [[package]] @@ -10142,26 +10109,21 @@ dependencies = [ "linked-hash-map", ] -[[package]] -name = "lru-slab" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" - [[package]] name = "lz4" -version = "1.28.1" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20b523e860d03443e98350ceaac5e71c6ba89aea7d960769ec3ce37f4de5af4" +checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" dependencies = [ + "libc", "lz4-sys", ] [[package]] name = "lz4-sys" -version = "1.11.1+lz4-1.10.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" +checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" dependencies = [ "cc", "libc", @@ -10169,9 +10131,9 @@ dependencies = [ [[package]] name = "mach2" -version = "0.4.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" dependencies = [ "libc", ] @@ -10182,9 +10144,9 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -10195,8 +10157,8 @@ checksum = "cc33f9f0351468d26fbc53d9ce00a096c8522ecb42f19b50f34f2c422f76d21d" dependencies = [ "macro_magic_core", "macro_magic_macros", - "quote 1.0.41", - "syn 2.0.106", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -10208,9 +10170,9 @@ dependencies = [ "const-random", "derive-syn-parse", "macro_magic_core_macros", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -10219,9 +10181,9 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -10231,8 +10193,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", - "quote 1.0.41", - "syn 2.0.106", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -10242,30 +10204,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" [[package]] -name = "match-lookup" -version = "0.1.1" +name = "match_cfg" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1265724d8cb29dbbc2b0f06fffb8bf1a8c0cf73a78eede9ba73a4a66c52a981e" -dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 1.0.109", -] +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" [[package]] name = "matchers" -version = "0.2.0" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] name = "matrixmultiply" -version = "0.3.10" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" dependencies = [ "autocfg", "rawpointer", @@ -10283,17 +10240,17 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.6" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memfd" -version = "0.6.5" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad38eb12aea514a0466ea40a80fd8cc83637065948eb4a426e4aa46261175227" +checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" dependencies = [ - "rustix 1.1.2", + "rustix 0.37.23", ] [[package]] @@ -10307,22 +10264,31 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.8" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" +checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92" dependencies = [ "libc", ] +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + [[package]] name = "memory-db" version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e300c54e3239a86f9c61cc63ab0f03862eb40b1c6e065dc6fd6ceaeff6da93d" dependencies = [ - "foldhash 0.1.5", + "foldhash", "hash-db", - "hashbrown 0.15.5", + "hashbrown 0.15.3", ] [[package]] @@ -10331,7 +10297,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3e3e3f549d27d2dc054372f320ddf68045a833fab490563ff70d4cf1b9d91ea" dependencies = [ - "array-bytes 9.3.0", + "array-bytes 9.1.2", "blake3", "frame-metadata 23.0.0", "parity-scale-codec", @@ -10363,7 +10329,7 @@ dependencies = [ "hex", "log", "num-traits", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "relay-utils", "sp-arithmetic", "sp-core 28.0.0", @@ -10407,22 +10373,23 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.8.9" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ - "adler2", + "adler", ] [[package]] name = "mio" -version = "1.0.4" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", ] [[package]] @@ -10441,12 +10408,12 @@ dependencies = [ "hashlink 0.8.4", "lioness", "log", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "rand_chacha 0.3.1", "rand_distr", - "subtle 2.6.1", - "thiserror 1.0.69", + "subtle 2.5.0", + "thiserror 1.0.65", "zeroize", ] @@ -10457,7 +10424,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-block-builder", "sc-client-api", "sc-offchain", @@ -10509,26 +10476,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898" dependencies = [ "cfg-if", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "moka" -version = "0.12.11" +version = "0.12.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8261cd88c312e0004c1d51baad2980c66528dfdb2bee62003e643a4d8f86b077" +checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" dependencies = [ "crossbeam-channel", "crossbeam-epoch", "crossbeam-utils", - "equivalent", - "parking_lot 0.12.4", + "loom", + "parking_lot 0.12.3", "portable-atomic", - "rustc_version 0.4.1", + "rustc_version 0.4.0", "smallvec", "tagptr", + "thiserror 1.0.65", "uuid", ] @@ -10559,31 +10527,30 @@ dependencies = [ [[package]] name = "multiaddr" -version = "0.18.2" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" +checksum = "8b852bc02a2da5feed68cd14fa50d0774b92790a5bdbfa932a813926c8472070" dependencies = [ "arrayref", "byteorder", "data-encoding", "libp2p-identity", "multibase", - "multihash 0.19.3", + "multihash 0.19.1", "percent-encoding", "serde", "static_assertions", - "unsigned-varint 0.8.0", + "unsigned-varint 0.7.2", "url", ] [[package]] name = "multibase" -version = "0.9.2" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8694bb4835f452b0e3bb06dbebb1d6fc5385b6ca1caf2e55fd165c042390ec77" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" dependencies = [ "base-x", - "base256emoji", "data-encoding", "data-encoding-macro", ] @@ -10607,33 +10574,33 @@ dependencies = [ [[package]] name = "multihash" -version = "0.19.3" +version = "0.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" +checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" dependencies = [ "core2", - "unsigned-varint 0.8.0", + "unsigned-varint 0.7.2", ] [[package]] name = "multihash-derive" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +checksum = "fc076939022111618a5026d3be019fd8b366e76314538ff9a1b59ffbcbf98bcd" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate 1.3.1", "proc-macro-error", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "syn 1.0.109", "synstructure 0.12.6", ] [[package]] name = "multimap" -version = "0.10.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "multistream-select" @@ -10651,12 +10618,13 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.33.2" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" +checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" dependencies = [ "approx", "matrixmultiply", + "nalgebra-macros", "num-complex", "num-rational", "num-traits", @@ -10664,6 +10632,17 @@ dependencies = [ "typenum", ] +[[package]] +name = "nalgebra-macros" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" +dependencies = [ + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 1.0.109", +] + [[package]] name = "names" version = "0.14.0" @@ -10681,9 +10660,9 @@ checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" [[package]] name = "native-tls" -version = "0.2.14" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" dependencies = [ "libc", "log", @@ -10691,27 +10670,28 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework 2.11.1", + "security-framework", "security-framework-sys", "tempfile", ] [[package]] name = "netlink-packet-core" -version = "0.7.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4" +checksum = "345b8ab5bd4e71a2986663e88c56856699d060e78e152e6e9d7966fcd5491297" dependencies = [ "anyhow", "byteorder", + "libc", "netlink-packet-utils", ] [[package]] name = "netlink-packet-route" -version = "0.17.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66" +checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" dependencies = [ "anyhow", "bitflags 1.3.2", @@ -10730,28 +10710,29 @@ dependencies = [ "anyhow", "byteorder", "paste", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "netlink-proto" -version = "0.11.5" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72452e012c2f8d612410d89eea01e2d9b56205274abb35d53f60200b2ec41d60" +checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" dependencies = [ "bytes", "futures", "log", "netlink-packet-core", "netlink-sys", - "thiserror 2.0.17", + "thiserror 1.0.65", + "tokio", ] [[package]] name = "netlink-sys" -version = "0.8.7" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16c903aa70590cb93691bf97a767c8d1d6122d2cc9070433deb3bbf36ce8bd23" +checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" dependencies = [ "bytes", "futures", @@ -10762,21 +10743,21 @@ dependencies = [ [[package]] name = "network-interface" -version = "2.0.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07709a6d4eba90ab10ec170a0530b3aafc81cb8a2d380e4423ae41fc55fe5745" +checksum = "c3329f515506e4a2de3aa6e07027a6758e22e0f0e8eaf64fa47261cec2282602" dependencies = [ "cc", "libc", - "thiserror 2.0.17", + "thiserror 1.0.65", "winapi", ] [[package]] name = "nix" -version = "0.26.4" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" dependencies = [ "bitflags 1.3.2", "cfg-if", @@ -10806,18 +10787,6 @@ dependencies = [ "libc", ] -[[package]] -name = "nix" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" -dependencies = [ - "bitflags 2.9.4", - "cfg-if", - "cfg_aliases 0.2.1", - "libc", -] - [[package]] name = "no-std-compat" version = "0.4.1" @@ -10828,10 +10797,10 @@ checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" name = "node-bench" version = "0.9.0-dev" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-trait", "clap", - "derive_more 0.99.20", + "derive_more 0.99.17", "fs_extra", "futures", "hash-db", @@ -11015,18 +10984,19 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.50.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ - "windows-sys 0.52.0", + "overload", + "winapi", ] [[package]] name = "num" -version = "0.4.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" dependencies = [ "num-bigint", "num-complex", @@ -11065,9 +11035,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.6" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -11084,9 +11054,9 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -11110,9 +11080,9 @@ dependencies = [ [[package]] name = "num-iter" -version = "0.1.45" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ "autocfg", "num-integer", @@ -11121,10 +11091,11 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ + "autocfg", "num-bigint", "num-integer", "num-traits", @@ -11142,9 +11113,9 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.17.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ "hermit-abi", "libc", @@ -11166,10 +11137,10 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -11189,9 +11160,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "nybbles" -version = "0.4.6" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4b5ecbd0beec843101bffe848217f770e8b8da81d8355b7d6e226f2199b3dc" +checksum = "675b3a54e5b12af997abc8b6638b0aee51a28caedab70d4967e0d5db3a3f1d06" dependencies = [ "alloy-rlp", "cfg-if", @@ -11203,32 +11174,32 @@ dependencies = [ [[package]] name = "object" -version = "0.36.7" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ - "crc32fast", - "hashbrown 0.15.5", - "indexmap 2.11.4", "memchr", ] [[package]] name = "object" -version = "0.37.3" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ + "crc32fast", + "hashbrown 0.15.3", + "indexmap 2.9.0", "memchr", ] [[package]] name = "oid-registry" -version = "0.7.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" +checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d" dependencies = [ - "asn1-rs 0.6.2", + "asn1-rs 0.6.1", ] [[package]] @@ -11237,7 +11208,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12f40cff3dde1b6087cc5d5f5d4d65712f34016a03ed60e9c08dcc392736b5b7" dependencies = [ - "asn1-rs 0.7.1", + "asn1-rs 0.7.0", ] [[package]] @@ -11250,17 +11221,11 @@ dependencies = [ "portable-atomic", ] -[[package]] -name = "once_cell_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" - [[package]] name = "oorandom" -version = "11.1.5" +version = "11.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" [[package]] name = "opaque-debug" @@ -11270,15 +11235,15 @@ checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] name = "opaque-debug" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ "bitflags 2.9.4", "cfg-if", @@ -11295,22 +11260,22 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "openssl-probe" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.109" +version = "0.9.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" dependencies = [ "cc", "libc", @@ -11337,7 +11302,7 @@ dependencies = [ "orchestra-proc-macro", "pin-project", "prioritized-metered-channel", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", ] @@ -11348,12 +11313,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43dfaf083aef571385fccfdc3a2f8ede8d0a1863160455d4f2b014d8f7d04a3f" dependencies = [ "expander", - "indexmap 2.11.4", + "indexmap 2.9.0", "itertools 0.11.0", - "petgraph 0.6.5", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", + "petgraph", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", "syn 1.0.109", ] @@ -11368,19 +11333,25 @@ dependencies = [ [[package]] name = "os_pipe" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db335f4760b14ead6290116f2427bf33a14d4f0617d49f78a246de10c1831224" +checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" dependencies = [ "libc", "windows-sys 0.59.0", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "owo-colors" -version = "4.2.3" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c6901729fa79e91a0913333229e9ca5dc725089d1c363b2f4b4760709dc4a52" +checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" [[package]] name = "p256" @@ -11445,7 +11416,7 @@ dependencies = [ name = "pallet-alliance" version = "27.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "frame-benchmarking", "frame-support", "frame-system", @@ -11815,7 +11786,7 @@ dependencies = [ name = "pallet-beefy-mmr" version = "28.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "binary-merkle-tree", "frame-benchmarking", "frame-support", @@ -12068,7 +12039,7 @@ dependencies = [ name = "pallet-contracts" version = "27.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "environmental", "frame-benchmarking", @@ -12114,7 +12085,7 @@ dependencies = [ "parity-wasm", "sp-runtime", "tempfile", - "toml 0.8.23", + "toml", "twox-hash 1.6.3", ] @@ -12153,9 +12124,9 @@ dependencies = [ name = "pallet-contracts-proc-macro" version = "18.0.0" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -12327,7 +12298,7 @@ dependencies = [ "pallet-staking", "pallet-timestamp", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "scale-info", "sp-core 28.0.0", "sp-io", @@ -12348,7 +12319,7 @@ dependencies = [ "log", "pallet-balances", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "scale-info", "sp-arithmetic", @@ -12373,7 +12344,7 @@ dependencies = [ "log", "pallet-balances", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "scale-info", "sp-arithmetic", @@ -13262,9 +13233,9 @@ dependencies = [ "alloy-consensus", "alloy-core", "alloy-trie", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", - "derive_more 0.99.20", + "derive_more 0.99.17", "environmental", "ethereum-standards", "ethereum-types", @@ -13325,7 +13296,7 @@ dependencies = [ "alloy-core", "anyhow", "clap", - "env_logger 0.11.8", + "env_logger 0.11.3", "futures", "git2", "hex", @@ -13354,7 +13325,7 @@ dependencies = [ "substrate-prometheus-endpoint", "subxt 0.43.0", "subxt-signer 0.43.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -13371,16 +13342,16 @@ dependencies = [ "serde_json", "sp-core 28.0.0", "sp-io", - "toml 0.8.23", + "toml", ] [[package]] name = "pallet-revive-proc-macro" version = "0.1.0" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -13457,7 +13428,7 @@ dependencies = [ name = "pallet-sassafras" version = "0.3.5-dev" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "frame-benchmarking", "frame-support", "frame-system", @@ -13610,7 +13581,7 @@ name = "pallet-staking-async" version = "0.1.0" dependencies = [ "anyhow", - "env_logger 0.11.8", + "env_logger 0.11.3", "frame-benchmarking", "frame-election-provider-support", "frame-support", @@ -13938,11 +13909,11 @@ dependencies = [ name = "pallet-staking-reward-curve" version = "11.0.0" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", "sp-runtime", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -14114,7 +14085,7 @@ dependencies = [ name = "pallet-transaction-storage" version = "27.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "frame-benchmarking", "frame-support", "frame-system", @@ -14465,9 +14436,9 @@ checksum = "16b56e3a2420138bdb970f84dfb9c774aea80fa0e7371549eedec0d80c209c67" [[package]] name = "parity-db" -version = "0.4.13" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" +checksum = "59e9ab494af9e6e813c72170f0d3c1de1500990d62c97cc05cc7576f91aa402f" dependencies = [ "blake2 0.10.6", "crc32fast", @@ -14477,11 +14448,10 @@ dependencies = [ "log", "lz4", "memmap2 0.5.10", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "siphasher 0.3.11", "snap", - "winapi", ] [[package]] @@ -14507,10 +14477,10 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -14538,12 +14508,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.11", + "parking_lot_core 0.9.8", ] [[package]] @@ -14562,15 +14532,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.17", + "redox_syscall 0.3.5", "smallvec", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] @@ -14587,7 +14557,7 @@ checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" dependencies = [ "base64ct", "rand_core 0.6.4", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -14609,9 +14579,9 @@ dependencies = [ [[package]] name = "pem" -version = "3.0.5" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ "base64 0.22.1", "serde", @@ -14911,26 +14881,25 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.8.2" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e0a3a33733faeaf8651dfee72dd0f388f0c8e5ad496a3478fa5a922f49cfa8" +checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" dependencies = [ - "memchr", - "thiserror 2.0.17", + "thiserror 1.0.65", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.8.2" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc58706f770acb1dbd0973e6530a3cff4746fb721207feb3a8a6064cd0b6c663" +checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853" dependencies = [ "pest", "pest_generator", @@ -14938,52 +14907,43 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.2" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d4f36811dfe07f7b8573462465d5cb8965fffc2e71ae377a33aecf14c2c9a2f" +checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "pest_meta" -version = "2.8.2" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42919b05089acbd0a5dcd5405fb304d17d1053847b81163d09c4ad18ce8e8420" +checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48" dependencies = [ + "once_cell", "pest", "sha2 0.10.9", ] [[package]] name = "petgraph" -version = "0.6.5" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ - "fixedbitset 0.4.2", - "indexmap 2.11.4", + "fixedbitset", + "indexmap 2.9.0", ] [[package]] -name = "petgraph" -version = "0.7.1" +name = "phf" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" -dependencies = [ - "fixedbitset 0.5.7", - "indexmap 2.11.4", -] - -[[package]] -name = "phf" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" dependencies = [ "phf_macros", "phf_shared", @@ -15007,9 +14967,9 @@ checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" dependencies = [ "phf_generator", "phf_shared", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -15036,16 +14996,16 @@ version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -15053,17 +15013,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "piper" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" -dependencies = [ - "atomic-waker", - "fastrand 2.3.0", - "futures-io", -] - [[package]] name = "pkcs1" version = "0.7.5" @@ -15093,9 +15042,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plotters" -version = "0.3.7" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" dependencies = [ "num-traits", "plotters-backend", @@ -15106,15 +15055,15 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.7" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" [[package]] name = "plotters-svg" -version = "0.3.7" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" dependencies = [ "plotters-backend", ] @@ -15160,7 +15109,7 @@ dependencies = [ "rand_chacha 0.3.1", "rand_core 0.6.4", "sc-keystore", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "sp-application-crypto", "sp-authority-discovery", "sp-core 28.0.0", @@ -15219,7 +15168,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15249,7 +15198,7 @@ dependencies = [ "sp-core 28.0.0", "sp-keyring", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tracing-gum", ] @@ -15287,7 +15236,7 @@ dependencies = [ "sp-keyring", "sp-runtime", "substrate-build-script-utils", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -15317,7 +15266,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-util", "tracing-gum", @@ -15343,7 +15292,7 @@ dependencies = [ "fatality", "futures", "futures-timer", - "indexmap 2.11.4", + "indexmap 2.9.0", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -15358,7 +15307,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15374,7 +15323,7 @@ dependencies = [ "reed-solomon-novelpoly", "sp-core 28.0.0", "sp-trie", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -15385,7 +15334,7 @@ dependencies = [ "async-trait", "futures", "futures-timer", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-network-protocol", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", @@ -15418,7 +15367,7 @@ dependencies = [ "futures", "futures-timer", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -15431,7 +15380,7 @@ dependencies = [ "sp-consensus", "sp-core 28.0.0", "sp-keyring", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15453,7 +15402,7 @@ dependencies = [ "schnellru", "sp-core 28.0.0", "sp-keyring", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15464,14 +15413,14 @@ dependencies = [ "assert_matches", "async-trait", "bitvec", - "derive_more 0.99.20", + "derive_more 0.99.17", "futures", "futures-timer", "itertools 0.11.0", "kvdb-memorydb", "merlin", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", @@ -15485,7 +15434,7 @@ dependencies = [ "rand_core 0.6.4", "sc-keystore", "schnellru", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "sp-application-crypto", "sp-consensus", "sp-consensus-babe", @@ -15495,7 +15444,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15521,7 +15470,7 @@ dependencies = [ "rand 0.8.5", "rand_core 0.6.4", "sc-keystore", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "sp-consensus", "sp-consensus-babe", "sp-core 28.0.0", @@ -15540,7 +15489,7 @@ dependencies = [ "futures-timer", "kvdb-memorydb", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -15552,7 +15501,7 @@ dependencies = [ "sp-core 28.0.0", "sp-keyring", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15580,7 +15529,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15595,7 +15544,7 @@ dependencies = [ "polkadot-primitives", "polkadot-primitives-test-helpers", "sp-keystore", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", "wasm-timer", ] @@ -15657,14 +15606,14 @@ dependencies = [ "futures-timer", "kvdb-memorydb", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-test-helpers", "polkadot-node-subsystem-util", "polkadot-primitives", "sp-core 28.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15692,7 +15641,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15708,7 +15657,7 @@ dependencies = [ "polkadot-primitives", "sp-blockchain", "sp-inherents", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15728,7 +15677,7 @@ dependencies = [ "rstest", "sp-core 28.0.0", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15750,7 +15699,7 @@ dependencies = [ "schnellru", "sp-application-crypto", "sp-keystore", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15759,7 +15708,7 @@ name = "polkadot-node-core-pvf" version = "7.0.0" dependencies = [ "always-assert", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "criterion", "futures", @@ -15791,7 +15740,7 @@ dependencies = [ "tempfile", "test-parachain-adder", "test-parachain-halt", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tracing-gum", ] @@ -15840,7 +15789,7 @@ dependencies = [ "sp-io", "sp-tracing 16.0.0", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15909,7 +15858,7 @@ dependencies = [ "futures", "futures-timer", "http-body-util", - "hyper 1.7.0", + "hyper 1.6.0", "hyper-util", "parity-scale-codec", "polkadot-primitives", @@ -15931,7 +15880,7 @@ dependencies = [ "async-channel 1.9.0", "async-trait", "bitvec", - "derive_more 0.99.20", + "derive_more 0.99.17", "fatality", "futures", "hex", @@ -15945,7 +15894,7 @@ dependencies = [ "sc-network-types", "sp-runtime", "strum 0.26.3", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -15961,14 +15910,14 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-primitives", "sc-keystore", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "serde", "sp-application-crypto", "sp-consensus-babe", "sp-consensus-slots", "sp-keystore", "sp-maybe-compressed-blob", - "thiserror 1.0.69", + "thiserror 1.0.65", "zstd 0.12.4", ] @@ -15986,7 +15935,7 @@ version = "1.0.0" dependencies = [ "async-trait", "futures", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-erasure-coding", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -16006,7 +15955,7 @@ name = "polkadot-node-subsystem-types" version = "7.0.0" dependencies = [ "async-trait", - "derive_more 0.99.20", + "derive_more 0.99.17", "fatality", "futures", "orchestra", @@ -16025,7 +15974,7 @@ dependencies = [ "sp-consensus-babe", "sp-runtime", "substrate-prometheus-endpoint", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -16040,7 +15989,7 @@ dependencies = [ "kvdb-shared-tests", "parity-db", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-erasure-coding", "polkadot-node-metrics", "polkadot-node-network-protocol", @@ -16058,7 +16007,7 @@ dependencies = [ "sp-core 28.0.0", "sp-keystore", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -16227,9 +16176,9 @@ dependencies = [ name = "polkadot-parachain-primitives" version = "6.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "bounded-collections 0.3.2", - "derive_more 0.99.20", + "derive_more 0.99.17", "parity-scale-codec", "polkadot-core-primitives", "scale-info", @@ -16264,7 +16213,7 @@ dependencies = [ "sp-runtime", "sp-staking", "sp-std 14.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -17002,7 +16951,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "parity-db", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -17090,7 +17039,7 @@ dependencies = [ "staging-xcm", "substrate-prometheus-endpoint", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", "westend-runtime", "westend-runtime-constants", @@ -17126,7 +17075,7 @@ dependencies = [ "sp-keyring", "sp-keystore", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing-gum", ] @@ -17371,7 +17320,7 @@ version = "0.1.0" dependencies = [ "anyhow", "cumulus-zombienet-sdk-helpers", - "env_logger 0.11.8", + "env_logger 0.11.3", "log", "parity-scale-codec", "polkadot-primitives", @@ -17493,9 +17442,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f2116a92e6e96220a398930f4c8a6cda1264206f3e2034fc9982bfd93f261f7" dependencies = [ "polkavm-common 0.18.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -17505,9 +17454,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6069dc7995cde6e612b868a02ce48b54397c6d2582bd1b97b63aabbe962cd779" dependencies = [ "polkavm-common 0.26.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -17517,9 +17466,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8abdd1210d96b1dda9ac21199ec469448fd628cea102e2ff0e0df1667c4c3b5f" dependencies = [ "polkavm-common 0.27.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -17529,7 +17478,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c16669ddc7433e34c1007d31080b80901e3e8e523cb9d4b441c3910cf9294b" dependencies = [ "polkavm-derive-impl 0.18.1", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -17539,7 +17488,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581d34cafec741dc5ffafbb341933c205b6457f3d76257a9d99fb56687219c91" dependencies = [ "polkavm-derive-impl 0.26.0", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -17549,7 +17498,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a45173d70138aa1879892c50777ed0d8b0c8556f7678372f09fa1d89bbbddb4" dependencies = [ "polkavm-derive-impl 0.27.0", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -17614,16 +17563,16 @@ dependencies = [ [[package]] name = "polling" -version = "3.11.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218" +checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi", "pin-project-lite", - "rustix 1.1.2", - "windows-sys 0.61.1", + "rustix 0.38.42", + "tracing", + "windows-sys 0.52.0", ] [[package]] @@ -17633,36 +17582,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.1", + "opaque-debug 0.3.0", "universal-hash", ] [[package]] name = "polyval" -version = "0.6.2" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" dependencies = [ "cfg-if", "cpufeatures", - "opaque-debug 0.3.1", + "opaque-debug 0.3.0", "universal-hash", ] [[package]] name = "portable-atomic" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" - -[[package]] -name = "portable-atomic-util" -version = "0.2.4" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" -dependencies = [ - "portable-atomic", -] +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "portpicker" @@ -17685,15 +17625,6 @@ dependencies = [ "serde", ] -[[package]] -name = "potential_utf" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" -dependencies = [ - "zerovec", -] - [[package]] name = "powerfmt" version = "0.2.0" @@ -17713,44 +17644,42 @@ dependencies = [ "log", "nix 0.27.1", "once_cell", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "smallvec", "symbolic-demangle", "tempfile", - "thiserror 2.0.17", + "thiserror 2.0.12", ] [[package]] name = "ppv-lite86" -version = "0.2.21" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "3.1.3" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" +checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9" dependencies = [ "anstyle", "difflib", + "itertools 0.10.5", "predicates-core", ] [[package]] name = "predicates-core" -version = "1.0.9" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" [[package]] name = "predicates-tree" -version = "1.0.12" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" dependencies = [ "predicates-core", "termtree", @@ -17758,9 +17687,9 @@ dependencies = [ [[package]] name = "pretty_assertions" -version = "1.4.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" dependencies = [ "diff", "yansi", @@ -17768,12 +17697,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.37" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" dependencies = [ - "proc-macro2 1.0.101", - "syn 2.0.106", + "proc-macro2 1.0.95", + "syn 2.0.98", ] [[package]] @@ -17819,31 +17748,31 @@ checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" dependencies = [ "coarsetime", "crossbeam-queue", - "derive_more 0.99.20", + "derive_more 0.99.17", "futures", "futures-timer", "nanorand", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", ] [[package]] name = "proc-macro-crate" -version = "1.1.3" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ - "thiserror 1.0.69", - "toml 0.5.11", + "once_cell", + "toml_edit 0.19.15", ] [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit 0.23.6", + "toml_edit 0.21.0", ] [[package]] @@ -17853,8 +17782,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "syn 1.0.109", "version_check", ] @@ -17865,8 +17794,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "version_check", ] @@ -17876,8 +17805,8 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", ] [[package]] @@ -17887,20 +17816,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ "proc-macro-error-attr2", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + [[package]] name = "proc-macro-warning" -version = "1.84.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75eea531cfcd120e0851a3f8aed42c4841f78c889eefafd96339c72677ae42c3" +checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -17914,9 +17849,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -17933,7 +17868,7 @@ dependencies = [ "hex", "lazy_static", "procfs-core", - "rustix 0.38.44", + "rustix 0.38.42", ] [[package]] @@ -17949,16 +17884,16 @@ dependencies = [ [[package]] name = "prometheus" -version = "0.13.4" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" +checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" dependencies = [ "cfg-if", "fnv", "lazy_static", "memchr", - "parking_lot 0.12.4", - "thiserror 1.0.69", + "parking_lot 0.12.3", + "thiserror 1.0.65", ] [[package]] @@ -17969,7 +17904,7 @@ checksum = "504ee9ff529add891127c4827eb481bd69dc0ebc72e9a682e187db4caa60c3ca" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "prometheus-client-derive-encode", ] @@ -17979,38 +17914,38 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "prometheus-parse" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "811031bea65e5a401fb2e1f37d802cca6601e204ac463809a3189352d13b78a5" +checksum = "0c2aa5feb83bf4b2c8919eaf563f51dbab41183de73ba2353c0e03cd7b6bd892" dependencies = [ "chrono", - "itertools 0.12.1", + "itertools 0.10.5", "once_cell", "regex", ] [[package]] name = "proptest" -version = "1.8.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb0be07becd10686a0bb407298fb425360a5c44a663774406340c59a22de4ce" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", "bitflags 2.9.4", "lazy_static", "num-traits", - "rand 0.9.2", - "rand_chacha 0.9.0", + "rand 0.8.5", + "rand_chacha 0.3.1", "rand_xorshift", - "regex-syntax", + "regex-syntax 0.8.5", "rusty-fork", "tempfile", "unarray", @@ -18048,21 +17983,22 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.13.5" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +checksum = "f8650aabb6c35b860610e9cff5dc1af886c9e25073b7b1712a68972af4281302" dependencies = [ + "bytes", "heck 0.5.0", - "itertools 0.14.0", + "itertools 0.13.0", "log", "multimap", "once_cell", - "petgraph 0.7.1", + "petgraph", "prettyplease", "prost 0.13.5", "prost-types", "regex", - "syn 2.0.106", + "syn 2.0.98", "tempfile", ] @@ -18074,8 +18010,8 @@ checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools 0.10.5", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "syn 1.0.109", ] @@ -18087,9 +18023,9 @@ checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", "itertools 0.12.1", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -18100,16 +18036,16 @@ checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", "itertools 0.14.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "prost-types" -version = "0.13.5" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" +checksum = "60caa6738c7369b940c3d49246a8d1749323674c65cb13010134f5c9bad5b519" dependencies = [ "prost 0.13.5", ] @@ -18132,9 +18068,9 @@ version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "938543690519c20c3a480d20a8efcc8e69abeb44093ab1df4e7c1f81f26c677a" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -18150,33 +18086,35 @@ dependencies = [ "prost 0.11.9", "reqwest", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "url", "winapi", ] [[package]] name = "pyroscope_pprofrs" -version = "0.2.10" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50da7a8950c542357de489aa9ee628f46322b1beaac1f4fa3313bcdebe85b4ea" +checksum = "614a25777053da6bdca9d84a67892490b5a57590248dbdee3d7bf0716252af70" dependencies = [ "log", "pprof2", "pyroscope", + "thiserror 1.0.65", ] [[package]] name = "quanta" -version = "0.12.6" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" +checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab" dependencies = [ "crossbeam-utils", "libc", + "mach2", "once_cell", "raw-cpuid", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", "web-sys", "winapi", ] @@ -18205,7 +18143,7 @@ dependencies = [ "asynchronous-codec 0.7.0", "bytes", "quick-protobuf", - "thiserror 1.0.69", + "thiserror 1.0.65", "unsigned-varint 0.8.0", ] @@ -18217,7 +18155,7 @@ checksum = "5253a3a0d56548d5b0be25414171dc780cc6870727746d05bd2bde352eee96c5" dependencies = [ "ahash", "hashbrown 0.13.2", - "parking_lot 0.12.4", + "parking_lot 0.12.3", ] [[package]] @@ -18233,58 +18171,51 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.9" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" dependencies = [ "bytes", - "cfg_aliases 0.2.1", "futures-io", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.32", - "socket2 0.6.0", - "thiserror 2.0.17", + "rustls 0.23.18", + "socket2 0.5.9", + "thiserror 1.0.65", "tokio", "tracing", - "web-time", ] [[package]] name = "quinn-proto" -version = "0.11.13" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ "bytes", - "getrandom 0.3.3", - "lru-slab", - "rand 0.9.2", - "ring 0.17.14", + "rand 0.8.5", + "ring 0.17.8", "rustc-hash 2.1.1", - "rustls 0.23.32", - "rustls-pki-types", + "rustls 0.23.18", "slab", - "thiserror 2.0.17", + "thiserror 1.0.65", "tinyvec", "tracing", - "web-time", ] [[package]] name = "quinn-udp" -version = "0.5.14" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" dependencies = [ - "cfg_aliases 0.2.1", "libc", "once_cell", - "socket2 0.6.0", + "socket2 0.5.9", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.52.0", ] [[package]] @@ -18298,19 +18229,13 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.41" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ - "proc-macro2 1.0.101", + "proc-macro2 1.0.95", ] -[[package]] -name = "r-efi" -version = "5.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" - [[package]] name = "radium" version = "0.7.0" @@ -18330,13 +18255,14 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.3", + "rand_core 0.9.1", "serde", + "zerocopy 0.8.20", ] [[package]] @@ -18356,7 +18282,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", + "rand_core 0.9.1", ] [[package]] @@ -18365,17 +18291,18 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.10", ] [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "a88e0da7a2c97baa202165137c158d0a2e824ac465d13d81046727b34cb247d3" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.1", "serde", + "zerocopy 0.8.20", ] [[package]] @@ -18399,20 +18326,20 @@ dependencies = [ [[package]] name = "rand_xorshift" -version = "0.4.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core 0.9.3", + "rand_core 0.6.4", ] [[package]] name = "raw-cpuid" -version = "11.6.0" +version = "10.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" +checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" dependencies = [ - "bitflags 2.9.4", + "bitflags 1.3.2", ] [[package]] @@ -18423,9 +18350,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.11.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -18433,9 +18360,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.13.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -18484,22 +18411,31 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ "bitflags 2.9.4", ] [[package]] name = "redox_users" -version = "0.4.6" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.16", - "libredox", - "thiserror 1.0.69", + "getrandom 0.2.10", + "redox_syscall 0.2.16", + "thiserror 1.0.65", ] [[package]] @@ -18508,30 +18444,30 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87413ebb313323d431e85d0afc5a68222aaed972843537cbfe5f061cf1b4bcab" dependencies = [ - "derive_more 0.99.20", + "derive_more 0.99.17", "fs-err", "static_init", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "ref-cast" -version = "1.0.25" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.25" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -18555,7 +18491,7 @@ checksum = "5216b1837de2149f8bc8e6d5f88a9326b63b8c836ed58ce4a0a29ec736a59734" dependencies = [ "allocator-api2", "bumpalo", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "log", "rustc-hash 2.1.1", "smallvec", @@ -18563,38 +18499,59 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.3" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b5288124840bee7b386bc413c487869b360b2b4ec421ea56425128692f2a82c" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata", - "regex-syntax", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", ] [[package]] name = "regex-automata" -version = "0.4.11" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" + +[[package]] +name = "regex-automata" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833eb9ce86d40ef33cb1306d8accf7bc8ec2bfea4355cbdebb3df68b40925cad" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.8.5", ] [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "relative-path" -version = "1.9.3" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" +checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc" [[package]] name = "relay-substrate-client" @@ -18632,7 +18589,7 @@ dependencies = [ "sp-trie", "sp-version", "staging-xcm", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -18650,13 +18607,13 @@ dependencies = [ "jsonpath_lib", "log", "num-traits", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "serde_json", "sp-runtime", "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "sysinfo", - "thiserror 1.0.69", + "thiserror 1.0.65", "time", "tokio", ] @@ -18678,9 +18635,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.23" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64 0.22.1", "bytes", @@ -18688,45 +18645,52 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.4.12", - "http 1.3.1", - "http-body 1.0.1", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.0", "http-body-util", - "hyper 1.7.0", - "hyper-rustls 0.27.7", + "hyper 1.6.0", + "hyper-rustls 0.27.3", "hyper-tls", "hyper-util", + "ipnet", "js-sys", "log", "mime", "native-tls", + "once_cell", "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.32", + "rustls 0.23.18", + "rustls-pemfile 2.0.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", + "system-configuration 0.6.1", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.4", - "tower 0.5.2", - "tower-http 0.6.6", + "tokio-rustls 0.26.0", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 1.0.2", + "webpki-roots 0.26.3", + "windows-registry", ] [[package]] name = "resolv-conf" -version = "0.7.5" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3789b30bd25ba102de4beabd95d21ac45b69b1be7d14522bab988c526d6799" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +dependencies = [ + "hostname", + "quick-error", +] [[package]] name = "revive-dev-node" @@ -18745,7 +18709,7 @@ dependencies = [ name = "revive-dev-runtime" version = "0.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "parity-scale-codec", "polkadot-sdk", "scale-info", @@ -18948,7 +18912,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ "hmac 0.12.1", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -18968,14 +18932,15 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.14" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.16", + "getrandom 0.2.10", "libc", + "spin 0.9.8", "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -19244,20 +19209,20 @@ checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] name = "rpassword" -version = "7.4.0" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d4c8b64f049c6721ec8ccec37ddfc3d641c4a7fca57e8f2a89de509c73df39" +checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" dependencies = [ "libc", "rtoolbox", - "windows-sys 0.59.0", + "winapi", ] [[package]] name = "rsa" -version = "0.9.8" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78928ac1ed176a5ca1d17e578a1825f3d81ca54cf41053a592584b020cfd691b" +checksum = "af6c4b23d99685a1408194da11270ef8e9809aff951cc70ec9b17350b087e474" dependencies = [ "const-oid", "digest 0.10.7", @@ -19269,7 +19234,7 @@ dependencies = [ "rand_core 0.6.4", "signature", "spki", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] @@ -19282,7 +19247,7 @@ dependencies = [ "futures", "futures-timer", "rstest_macros", - "rustc_version 0.4.1", + "rustc_version 0.4.0", ] [[package]] @@ -19293,41 +19258,38 @@ checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605" dependencies = [ "cfg-if", "glob", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "regex", "relative-path", - "rustc_version 0.4.1", - "syn 2.0.106", + "rustc_version 0.4.0", + "syn 2.0.98", "unicode-ident", ] [[package]] name = "rtnetlink" -version = "0.13.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0" +checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" dependencies = [ "futures", "log", - "netlink-packet-core", "netlink-packet-route", - "netlink-packet-utils", "netlink-proto", - "netlink-sys", - "nix 0.26.4", - "thiserror 1.0.69", + "nix 0.24.3", + "thiserror 1.0.65", "tokio", ] [[package]] name = "rtoolbox" -version = "0.0.3" +version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cc970b249fbe527d6e02e0a227762c9108b2f49d81094fe357ffc6d14d7f6f" +checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" dependencies = [ "libc", - "windows-sys 0.52.0", + "winapi", ] [[package]] @@ -19344,14 +19306,13 @@ dependencies = [ [[package]] name = "ruint" -version = "1.17.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" +checksum = "11256b5fe8c68f56ac6f39ef0720e592f33d2367a4782740d9c9142e889c7fb4" dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", - "ark-ff 0.5.0", "bytes", "fastrlp 0.3.1", "fastrlp 0.4.0", @@ -19362,10 +19323,10 @@ dependencies = [ "primitive-types 0.12.2", "proptest", "rand 0.8.5", - "rand 0.9.2", + "rand 0.9.0", "rlp 0.5.2", "ruint-macro", - "serde_core", + "serde", "valuable", "zeroize", ] @@ -19378,9 +19339,9 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rustc-demangle" -version = "0.1.26" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustc-hash" @@ -19420,11 +19381,11 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.27", + "semver 1.0.18", ] [[package]] @@ -19438,54 +19399,68 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.44" +version = "0.37.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ "bitflags 2.9.4", "errno", "libc", - "linux-raw-sys 0.4.15", + "linux-raw-sys 0.4.14", "windows-sys 0.59.0", ] [[package]] name = "rustix" -version = "1.1.2" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ "bitflags 2.9.4", "errno", "libc", - "linux-raw-sys 0.11.0", - "windows-sys 0.61.1", + "linux-raw-sys 0.9.4", + "windows-sys 0.60.2", ] [[package]] name = "rustls" -version = "0.21.12" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" dependencies = [ "log", - "ring 0.17.14", - "rustls-webpki 0.101.7", + "ring 0.16.20", + "rustls-webpki 0.101.4", "sct", ] [[package]] name = "rustls" -version = "0.23.32" +version = "0.23.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3c25631629d034ce7cd9940adc9d45762d46de2b0f57193c4443b92c6d4d40" +checksum = "9c9cc1d47e243d655ace55ed38201c19ae02c148ae56412ab8750e8f0166ab7f" dependencies = [ "log", "once_cell", - "ring 0.17.14", + "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.103.6", - "subtle 2.6.1", + "rustls-webpki 0.102.8", + "subtle 2.5.0", "zeroize", ] @@ -19496,95 +19471,115 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.3", "schannel", - "security-framework 2.11.1", + "security-framework", ] [[package]] name = "rustls-native-certs" -version = "0.8.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" dependencies = [ "openssl-probe", + "rustls-pemfile 2.0.0", "rustls-pki-types", "schannel", - "security-framework 3.5.1", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.0.0", + "rustls-pki-types", + "schannel", + "security-framework", ] [[package]] name = "rustls-pemfile" -version = "1.0.4" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ "base64 0.21.7", ] [[package]] -name = "rustls-pki-types" -version = "1.12.0" +name = "rustls-pemfile" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4" dependencies = [ - "web-time", - "zeroize", + "base64 0.21.7", + "rustls-pki-types", ] +[[package]] +name = "rustls-pki-types" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" + [[package]] name = "rustls-platform-verifier" -version = "0.5.3" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19787cda76408ec5404443dc8b31795c87cd8fec49762dc75fa727740d34acc1" +checksum = "b5f0d26fa1ce3c790f9590868f0109289a044acb954525f933e2aa3b871c157d" dependencies = [ - "core-foundation 0.10.1", + "core-foundation", "core-foundation-sys", "jni", "log", "once_cell", - "rustls 0.23.32", - "rustls-native-certs 0.8.1", + "rustls 0.23.18", + "rustls-native-certs 0.7.0", "rustls-platform-verifier-android", - "rustls-webpki 0.103.6", - "security-framework 3.5.1", + "rustls-webpki 0.102.8", + "security-framework", "security-framework-sys", - "webpki-root-certs 0.26.11", - "windows-sys 0.59.0", + "webpki-roots 0.26.3", + "winapi", ] [[package]] name = "rustls-platform-verifier-android" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" +checksum = "84e217e7fdc8466b5b35d30f8c0a30febd29173df4a3a0c2115d306b9c4117ad" [[package]] name = "rustls-webpki" -version = "0.101.7" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d" dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", + "ring 0.16.20", + "untrusted 0.7.1", ] [[package]] name = "rustls-webpki" -version = "0.103.6" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8572f3c2cb9934231157b45499fc41e1f58c589fdfb81a844ba873265e80f8eb" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "ring 0.17.14", + "ring 0.17.8", "rustls-pki-types", "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "rusty-fork" @@ -19605,7 +19600,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5174a470eeb535a721ae9fdd6e291c2411a906b96592182d05217591d5c5cf7b" dependencies = [ "byteorder", - "derive_more 0.99.20", + "derive_more 0.99.17", ] [[package]] @@ -19627,9 +19622,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" [[package]] name = "safe-mix" @@ -19642,9 +19637,9 @@ dependencies = [ [[package]] name = "safe_arch" -version = "0.7.4" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" dependencies = [ "bytemuck", ] @@ -19674,7 +19669,7 @@ dependencies = [ "log", "sp-core 28.0.0", "sp-wasm-interface 20.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -19709,7 +19704,7 @@ dependencies = [ "substrate-prometheus-endpoint", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -19720,7 +19715,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-block-builder", "sc-client-api", "sc-proposer-metrics", @@ -19758,10 +19753,10 @@ dependencies = [ name = "sc-chain-spec" version = "28.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "clap", "docify", - "memmap2 0.9.8", + "memmap2 0.9.3", "parity-scale-codec", "pretty_assertions", "regex", @@ -19790,17 +19785,17 @@ dependencies = [ name = "sc-chain-spec-derive" version = "11.0.0" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "sc-cli" version = "0.36.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "bip39", "chrono", "clap", @@ -19836,7 +19831,7 @@ dependencies = [ "sp-tracing 16.0.0", "sp-version", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -19848,7 +19843,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-executor", "sc-transaction-pool-api", "sc-utils", @@ -19870,7 +19865,7 @@ dependencies = [ name = "sc-client-db" version = "0.35.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "criterion", "hash-db", "kitchensink-runtime", @@ -19881,7 +19876,7 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "sc-client-api", "sc-state-db", @@ -19908,7 +19903,7 @@ dependencies = [ "futures", "log", "mockall", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-client-api", "sc-network-types", "sc-utils", @@ -19920,7 +19915,7 @@ dependencies = [ "sp-state-machine", "sp-test-primitives", "substrate-prometheus-endpoint", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -19932,7 +19927,7 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-block-builder", "sc-client-api", "sc-consensus", @@ -19958,7 +19953,7 @@ dependencies = [ "substrate-prometheus-endpoint", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -19974,7 +19969,7 @@ dependencies = [ "num-rational", "num-traits", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-block-builder", "sc-client-api", "sc-consensus", @@ -20000,7 +19995,7 @@ dependencies = [ "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -20026,7 +20021,7 @@ dependencies = [ "sp-keystore", "sp-runtime", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -20034,13 +20029,13 @@ dependencies = [ name = "sc-consensus-beefy" version = "13.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "async-trait", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-block-builder", "sc-client-api", "sc-consensus", @@ -20064,7 +20059,7 @@ dependencies = [ "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "wasm-timer", ] @@ -20077,7 +20072,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-consensus-beefy", "sc-rpc", "serde", @@ -20086,7 +20081,7 @@ dependencies = [ "sp-core 28.0.0", "sp-runtime", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -20107,7 +20102,7 @@ name = "sc-consensus-grandpa" version = "0.19.0" dependencies = [ "ahash", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "async-trait", "dyn-clone", @@ -20117,7 +20112,7 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "sc-block-builder", "sc-chain-spec", @@ -20147,7 +20142,7 @@ dependencies = [ "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -20171,7 +20166,7 @@ dependencies = [ "sp-keyring", "sp-runtime", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -20209,7 +20204,7 @@ dependencies = [ "substrate-prometheus-endpoint", "substrate-test-runtime-client", "substrate-test-runtime-transaction-pool", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -20222,7 +20217,7 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-client-api", "sc-consensus", "sp-api", @@ -20234,7 +20229,7 @@ dependencies = [ "sp-inherents", "sp-runtime", "substrate-prometheus-endpoint", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -20264,12 +20259,12 @@ dependencies = [ name = "sc-executor" version = "0.32.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "criterion", "num_cpus", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "paste", "sc-executor-common", "sc-executor-polkavm", @@ -20294,7 +20289,7 @@ dependencies = [ "substrate-test-runtime", "tempfile", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", "wat", ] @@ -20306,7 +20301,7 @@ dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface 20.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "wasm-instrument", ] @@ -20328,9 +20323,9 @@ dependencies = [ "cargo_metadata", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "paste", - "rustix 1.1.2", + "rustix 1.0.8", "sc-allocator", "sc-executor-common", "sc-runtime-test", @@ -20361,21 +20356,21 @@ dependencies = [ name = "sc-keystore" version = "25.0.0" dependencies = [ - "array-bytes 6.2.3", - "parking_lot 0.12.4", + "array-bytes 6.2.2", + "parking_lot 0.12.3", "serde_json", "sp-application-crypto", "sp-core 28.0.0", "sp-keystore", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "sc-mixnet" version = "0.4.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "arrayvec 0.7.6", "blake2 0.10.6", "bytes", @@ -20384,7 +20379,7 @@ dependencies = [ "log", "mixnet", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-client-api", "sc-network", "sc-network-types", @@ -20395,14 +20390,14 @@ dependencies = [ "sp-keystore", "sp-mixnet", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "sc-network" version = "0.34.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "async-channel 1.9.0", "async-trait", @@ -20422,7 +20417,7 @@ dependencies = [ "mockall", "multistream-select", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "partial_sort", "pin-project", "prost 0.12.6", @@ -20448,7 +20443,7 @@ dependencies = [ "substrate-test-runtime", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-stream", "tokio-util", @@ -20494,7 +20489,7 @@ dependencies = [ name = "sc-network-light" version = "0.33.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "futures", "log", @@ -20507,14 +20502,14 @@ dependencies = [ "sp-blockchain", "sp-core 28.0.0", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "sc-network-statement" version = "0.16.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "futures", "log", @@ -20533,7 +20528,7 @@ dependencies = [ name = "sc-network-sync" version = "0.33.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "async-trait", "fork-tree", @@ -20563,7 +20558,7 @@ dependencies = [ "sp-tracing 16.0.0", "substrate-prometheus-endpoint", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-stream", ] @@ -20578,7 +20573,7 @@ dependencies = [ "futures-timer", "libp2p", "log", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "sc-block-builder", "sc-client-api", @@ -20604,7 +20599,7 @@ dependencies = [ name = "sc-network-transactions" version = "0.33.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "futures", "log", "parity-scale-codec", @@ -20629,13 +20624,13 @@ dependencies = [ "libp2p-kad", "litep2p", "log", - "multiaddr 0.18.2", - "multihash 0.19.3", + "multiaddr 0.18.1", + "multihash 0.19.1", "quickcheck", "rand 0.8.5", "serde", "serde_with", - "thiserror 1.0.69", + "thiserror 1.0.65", "zeroize", ] @@ -20649,15 +20644,15 @@ dependencies = [ "futures", "futures-timer", "http-body-util", - "hyper 1.7.0", - "hyper-rustls 0.27.7", + "hyper 1.6.0", + "hyper-rustls 0.27.3", "hyper-util", "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", - "rustls 0.23.32", + "rustls 0.23.18", "sc-block-builder", "sc-client-api", "sc-client-db", @@ -20697,7 +20692,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pretty_assertions", "sc-block-builder", "sc-chain-spec", @@ -20742,7 +20737,7 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-version", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -20753,9 +20748,9 @@ dependencies = [ "forwarded-header-value", "futures", "governor", - "http 1.3.1", + "http 1.1.0", "http-body-util", - "hyper 1.7.0", + "hyper 1.6.0", "ip_network", "jsonrpsee", "log", @@ -20764,7 +20759,7 @@ dependencies = [ "serde_json", "substrate-prometheus-endpoint", "tokio", - "tower 0.4.13", + "tower", "tower-http 0.5.2", ] @@ -20772,7 +20767,7 @@ dependencies = [ name = "sc-rpc-spec-v2" version = "0.34.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "async-trait", "futures", @@ -20782,7 +20777,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pretty_assertions", "rand 0.8.5", "sc-block-builder", @@ -20809,7 +20804,7 @@ dependencies = [ "substrate-test-runtime", "substrate-test-runtime-client", "substrate-test-runtime-transaction-pool", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-stream", ] @@ -20841,7 +20836,7 @@ dependencies = [ "sp-version", "sp-wasm-interface 20.0.0", "subxt 0.43.0", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -20856,7 +20851,7 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "sc-chain-spec", @@ -20903,7 +20898,7 @@ dependencies = [ "substrate-test-runtime", "substrate-test-runtime-client", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tracing", "tracing-futures", @@ -20913,13 +20908,13 @@ dependencies = [ name = "sc-service-test" version = "2.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-channel 1.9.0", "fdlimit", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-block-builder", "sc-client-api", "sc-client-db", @@ -20950,7 +20945,7 @@ version = "0.30.0" dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sp-core 28.0.0", ] @@ -20960,7 +20955,7 @@ version = "10.0.0" dependencies = [ "log", "parity-db", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-client-api", "sc-keystore", "sp-api", @@ -20982,7 +20977,7 @@ dependencies = [ "fs4", "log", "sp-core 28.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -21001,14 +20996,14 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] name = "sc-sysinfo" version = "27.0.0" dependencies = [ - "derive_more 0.99.20", + "derive_more 0.99.17", "futures", "libc", "log", @@ -21032,13 +21027,13 @@ dependencies = [ "futures", "libp2p", "log", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "sc-utils", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "wasm-timer", ] @@ -21053,7 +21048,7 @@ dependencies = [ "libc", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "regex", "rustc-hash 1.1.0", "sc-client-api", @@ -21065,20 +21060,20 @@ dependencies = [ "sp-rpc", "sp-runtime", "sp-tracing 16.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "tracing-log", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -21091,14 +21086,14 @@ dependencies = [ "chrono", "criterion", "cumulus-zombienet-sdk-helpers", - "env_logger 0.11.8", + "env_logger 0.11.3", "futures", "futures-timer", - "indexmap 2.11.4", + "indexmap 2.9.0", "itertools 0.11.0", "linked-hash-map", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rstest", "sc-block-builder", "sc-client-api", @@ -21119,11 +21114,11 @@ dependencies = [ "substrate-test-runtime-client", "substrate-test-runtime-transaction-pool", "substrate-txtesttool", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-stream", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", "zombienet-configuration", "zombienet-sdk", ] @@ -21134,7 +21129,7 @@ version = "28.0.0" dependencies = [ "async-trait", "futures", - "indexmap 2.11.4", + "indexmap 2.9.0", "log", "parity-scale-codec", "serde", @@ -21142,7 +21137,7 @@ dependencies = [ "sp-blockchain", "sp-core 28.0.0", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -21153,7 +21148,7 @@ dependencies = [ "futures", "futures-timer", "log", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "prometheus", "sp-arithmetic", "tokio-test", @@ -21183,7 +21178,7 @@ dependencies = [ "scale-decode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.12", ] [[package]] @@ -21192,10 +21187,10 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f4b54a1211260718b92832b661025d1f1a4b6930fbadd6908e00edd265fa5f7" dependencies = [ - "darling 0.20.11", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "darling 0.20.10", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -21210,7 +21205,7 @@ dependencies = [ "scale-encode-derive", "scale-type-resolver", "smallvec", - "thiserror 2.0.17", + "thiserror 2.0.12", ] [[package]] @@ -21219,11 +21214,11 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78a3993a13b4eafa89350604672c8757b7ea84c7c5947d4b3691e3169c96379b" dependencies = [ - "darling 0.20.11", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "darling 0.20.10", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -21246,10 +21241,10 @@ version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" dependencies = [ - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -21268,11 +21263,11 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05c61b6b706a3eaad63b506ab50a1d2319f817ae01cf753adcc3f055f9f0fcd6" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "scale-info", - "syn 2.0.106", - "thiserror 2.0.17", + "syn 2.0.98", + "thiserror 2.0.12", ] [[package]] @@ -21290,96 +21285,59 @@ dependencies = [ "scale-encode", "scale-type-resolver", "serde", - "thiserror 2.0.17", + "thiserror 2.0.12", "yap", ] [[package]] name = "schannel" -version = "0.1.28" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys 0.61.1", + "windows-sys 0.48.0", ] [[package]] name = "schemars" -version = "0.8.22" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +checksum = "763f8cd0d4c71ed8389c90cb8100cba87e763bd01a8e614d4f0af97bcd50a161" dependencies = [ "dyn-clone", - "schemars_derive 0.8.22", + "schemars_derive", "serde", "serde_json", ] [[package]] -name = "schemars" -version = "0.9.0" +name = "schemars_derive" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737" dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", + "proc-macro2 1.0.95", + "quote 1.0.40", + "serde_derive_internals", + "syn 1.0.109", ] [[package]] -name = "schemars" -version = "1.0.4" +name = "schnellru" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" dependencies = [ - "dyn-clone", - "ref-cast", - "schemars_derive 1.0.4", - "serde", - "serde_json", + "ahash", + "cfg-if", + "hashbrown 0.13.2", ] [[package]] -name = "schemars_derive" -version = "0.8.22" +name = "schnorrkel" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" -dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "serde_derive_internals", - "syn 2.0.106", -] - -[[package]] -name = "schemars_derive" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d020396d1d138dc19f1165df7545479dcd58d93810dc5d646a16e55abefa80" -dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "serde_derive_internals", - "syn 2.0.106", -] - -[[package]] -name = "schnellru" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "356285bbf17bea63d9e52e96bd18f039672ac92b55b8cb997d6162a2a37d1649" -dependencies = [ - "ahash", - "cfg-if", - "hashbrown 0.13.2", -] - -[[package]] -name = "schnorrkel" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" +checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" dependencies = [ "arrayref", "arrayvec 0.7.6", @@ -21394,9 +21352,9 @@ dependencies = [ [[package]] name = "schnorrkel" -version = "0.11.5" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e9fcb6c2e176e86ec703e22560d99d65a5ee9056ae45a08e13e84ebf796296f" +checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" dependencies = [ "aead", "arrayref", @@ -21407,10 +21365,16 @@ dependencies = [ "rand_core 0.6.4", "serde_bytes", "sha2 0.10.9", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -21419,9 +21383,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scratch" -version = "1.0.9" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d68f2ec51b097e4c1a75b681a8bec621909b5e91f15bb7b840c4f2f7b01148b2" +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" [[package]] name = "scrypt" @@ -21437,12 +21401,12 @@ dependencies = [ [[package]] name = "sct" -version = "0.7.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", + "ring 0.16.20", + "untrusted 0.7.1", ] [[package]] @@ -21456,7 +21420,7 @@ dependencies = [ "generic-array 0.14.7", "pkcs8", "serdect", - "subtle 2.6.1", + "subtle 2.5.0", "zeroize", ] @@ -21469,15 +21433,6 @@ dependencies = [ "libc", ] -[[package]] -name = "secp256k1" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" -dependencies = [ - "secp256k1-sys 0.8.2", -] - [[package]] name = "secp256k1" version = "0.28.2" @@ -21505,19 +21460,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" dependencies = [ "bitcoin_hashes 0.14.0", - "rand 0.9.2", + "rand 0.9.0", "secp256k1-sys 0.11.0", ] -[[package]] -name = "secp256k1-sys" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4473013577ec77b4ee3668179ef1186df3146e2cf2d927bd200974c6fe60fd99" -dependencies = [ - "cc", -] - [[package]] name = "secp256k1-sys" version = "0.9.2" @@ -21566,35 +21512,23 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.9.4", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework" -version = "3.5.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ "bitflags 2.9.4", - "core-foundation 0.10.1", + "core-foundation", "core-foundation-sys", "libc", + "num-bigint", "security-framework-sys", ] [[package]] name = "security-framework-sys" -version = "2.15.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ "core-foundation-sys", "libc", @@ -21624,17 +21558,16 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ - "semver-parser 0.10.3", + "semver-parser 0.10.2", ] [[package]] name = "semver" -version = "1.0.27" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" dependencies = [ "serde", - "serde_core", ] [[package]] @@ -21645,9 +21578,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "semver-parser" -version = "0.10.3" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" dependencies = [ "pest", ] @@ -21660,11 +21593,10 @@ checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" [[package]] name = "serde" -version = "1.0.228" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ - "serde_core", "serde_derive", ] @@ -21689,43 +21621,33 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.19" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" +checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff" dependencies = [ "serde", - "serde_core", -] - -[[package]] -name = "serde_core" -version = "1.0.228" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" -dependencies = [ - "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "serde_derive_internals" -version = "0.29.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 1.0.109", ] [[package]] @@ -21739,36 +21661,26 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.9.0", "itoa", "memchr", "ryu", "serde", - "serde_core", ] [[package]] name = "serde_spanned" -version = "0.6.9" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" dependencies = [ "serde", ] -[[package]] -name = "serde_spanned" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5417783452c2be558477e104686f7de5dae53dba813c28435e0e70f82d9b04ee" -dependencies = [ - "serde_core", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -21783,17 +21695,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.14.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c522100790450cf78eeac1507263d0a350d4d5b30df0c8e1fe051a10c22b376e" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.11.4", - "schemars 0.9.0", - "schemars 1.0.4", + "indexmap 2.9.0", "serde", "serde_derive", "serde_json", @@ -21803,14 +21713,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.14.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327ada00f7d64abaac1e55a6911e90cf665aa051b9a561c7006c157f4633135e" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ - "darling 0.21.3", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "darling 0.20.10", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -21819,7 +21729,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.9.0", "itoa", "ryu", "serde", @@ -21857,7 +21767,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.1", + "opaque-debug 0.3.0", ] [[package]] @@ -21899,9 +21809,9 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.7" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" dependencies = [ "lazy_static", ] @@ -21914,18 +21824,18 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] [[package]] name = "signature" -version = "2.2.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" dependencies = [ "digest 0.10.7", "rand_core 0.6.4", @@ -21933,9 +21843,9 @@ dependencies = [ [[package]] name = "simba" -version = "0.9.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c99284beb21666094ba2b75bbceda012e610f5479dfcc2d6e2426f53197ffd95" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" dependencies = [ "approx", "num-complex", @@ -21973,9 +21883,12 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "slice-group-by" @@ -21995,9 +21908,9 @@ dependencies = [ [[package]] name = "slotmap" -version = "1.0.7" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" dependencies = [ "version_check", ] @@ -22015,9 +21928,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" dependencies = [ "serde", ] @@ -22028,15 +21941,15 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a33bd3e260892199c3ccfc487c88b2da2265080acb316cd920da72fdfd7c599f" dependencies = [ - "async-channel 2.5.0", + "async-channel 2.3.0", "async-executor", "async-fs", - "async-io", - "async-lock", + "async-io 2.3.3", + "async-lock 3.4.0", "async-net", "async-process", "blocking", - "futures-lite 2.6.1", + "futures-lite 2.3.0", ] [[package]] @@ -22046,7 +21959,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "966e72d77a3b2171bb7461d0cb91f43670c63558c62d7cf42809cae6c8b6b818" dependencies = [ "arrayvec 0.7.6", - "async-lock", + "async-lock 3.4.0", "atomic-take", "base64 0.22.1", "bip39", @@ -22054,12 +21967,12 @@ dependencies = [ "bs58", "chacha20", "crossbeam-queue", - "derive_more 0.99.20", + "derive_more 0.99.17", "ed25519-zebra", "either", - "event-listener 5.4.1", + "event-listener 5.3.1", "fnv", - "futures-lite 2.6.1", + "futures-lite 2.3.0", "futures-util", "hashbrown 0.14.5", "hex", @@ -22078,7 +21991,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "ruzstd 0.6.0", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "serde", "serde_json", "sha2 0.10.9", @@ -22100,7 +22013,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e16e5723359f0048bf64bfdfba64e5732a56847d42c4fd3fe56f18280c813413" dependencies = [ "arrayvec 0.7.6", - "async-lock", + "async-lock 3.4.0", "atomic-take", "base64 0.22.1", "bip39", @@ -22111,11 +22024,11 @@ dependencies = [ "derive_more 2.0.1", "ed25519-zebra", "either", - "event-listener 5.4.1", + "event-listener 5.3.1", "fnv", - "futures-lite 2.6.1", + "futures-lite 2.3.0", "futures-util", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "hex", "hmac 0.12.1", "itertools 0.14.0", @@ -22132,7 +22045,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "ruzstd 0.8.1", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "serde", "serde_json", "sha2 0.10.9", @@ -22141,7 +22054,7 @@ dependencies = [ "slab", "smallvec", "soketto", - "twox-hash 2.1.2", + "twox-hash 2.1.1", "wasmi 0.40.0", "x25519-dalek", "zeroize", @@ -22153,24 +22066,24 @@ version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a33b06891f687909632ce6a4e3fd7677b24df930365af3d0bcb078310129f3f" dependencies = [ - "async-channel 2.5.0", - "async-lock", + "async-channel 2.3.0", + "async-lock 3.4.0", "base64 0.22.1", "blake2-rfc", "bs58", - "derive_more 0.99.20", + "derive_more 0.99.17", "either", - "event-listener 5.4.1", + "event-listener 5.3.1", "fnv", "futures-channel", - "futures-lite 2.6.1", + "futures-lite 2.3.0", "futures-util", "hashbrown 0.14.5", "hex", "itertools 0.13.0", "log", "lru", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", @@ -22189,24 +22102,24 @@ version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bba9e591716567d704a8252feeb2f1261a286e1e2cbdd4e49e9197c34a14e2" dependencies = [ - "async-channel 2.5.0", - "async-lock", + "async-channel 2.3.0", + "async-lock 3.4.0", "base64 0.22.1", "blake2-rfc", "bs58", "derive_more 2.0.1", "either", - "event-listener 5.4.1", + "event-listener 5.3.1", "fnv", "futures-channel", - "futures-lite 2.6.1", + "futures-lite 2.3.0", "futures-util", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "hex", "itertools 0.14.0", "log", "lru", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "rand_chacha 0.3.1", @@ -22221,9 +22134,9 @@ dependencies = [ [[package]] name = "snap" -version = "1.1.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" +checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" [[package]] name = "snow" @@ -22236,10 +22149,10 @@ dependencies = [ "chacha20poly1305", "curve25519-dalek", "rand_core 0.6.4", - "ring 0.17.14", - "rustc_version 0.4.1", + "ring 0.17.8", + "rustc_version 0.4.0", "sha2 0.10.9", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -22348,7 +22261,7 @@ dependencies = [ name = "snowbridge-merkle-tree" version = "0.2.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "hex", "hex-literal", "parity-scale-codec", @@ -22777,34 +22690,34 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.10" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", - "windows-sys 0.52.0", + "winapi", ] [[package]] name = "socket2" -version = "0.6.0" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] name = "soketto" -version = "0.8.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e859df029d160cb88608f5d7df7fb4753fd20fdfb4de5644f3d8b8440841721" +checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" dependencies = [ "base64 0.22.1", "bytes", "futures", - "http 1.3.1", + "http 1.1.0", "httparse", "log", "rand 0.8.5", @@ -22911,7 +22824,7 @@ dependencies = [ "sp-test-primitives", "sp-trie", "sp-version", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -22922,10 +22835,10 @@ dependencies = [ "assert_matches", "blake2 0.10.6", "expander", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -23029,7 +22942,7 @@ version = "28.0.0" dependencies = [ "futures", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "schnellru", "sp-api", "sp-consensus", @@ -23037,7 +22950,7 @@ dependencies = [ "sp-database", "sp-runtime", "sp-state-machine", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", ] @@ -23051,7 +22964,7 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -23090,7 +23003,7 @@ dependencies = [ name = "sp-consensus-beefy" version = "13.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "parity-scale-codec", "scale-info", "serde", @@ -23162,7 +23075,7 @@ name = "sp-core" version = "28.0.0" dependencies = [ "ark-vrf", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "bip39", "bitflags 1.3.2", "blake2 0.10.6", @@ -23181,13 +23094,13 @@ dependencies = [ "log", "merlin", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "paste", "primitive-types 0.13.1", "rand 0.8.5", "regex", "scale-info", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "secp256k1 0.28.2", "secrecy 0.8.0", "serde", @@ -23200,7 +23113,7 @@ dependencies = [ "sp-storage 19.0.0", "ss58-registry", "substrate-bip39 0.4.7", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "w3f-bls", "zeroize", @@ -23213,10 +23126,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cdbb58c21e6b27f2aadf3ff0c8b20a8ead13b9dfe63f46717fd59334517f3b4" dependencies = [ "ark-vrf", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "bitflags 1.3.2", "blake2 0.10.6", - "bounded-collections 0.2.4", + "bounded-collections 0.2.3", "bs58", "dyn-clonable", "ed25519-zebra", @@ -23231,12 +23144,12 @@ dependencies = [ "merlin", "parity-bip39", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "paste", "primitive-types 0.13.1", "rand 0.8.5", "scale-info", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "secp256k1 0.28.2", "secrecy 0.8.0", "serde", @@ -23248,7 +23161,7 @@ dependencies = [ "sp-storage 22.0.0", "ss58-registry", "substrate-bip39 0.6.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "w3f-bls", "zeroize", @@ -23328,9 +23241,9 @@ dependencies = [ name = "sp-crypto-hashing-proc-macro" version = "0.1.0" dependencies = [ - "quote 1.0.41", + "quote 1.0.40", "sp-crypto-hashing 0.1.0", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -23338,16 +23251,16 @@ name = "sp-database" version = "10.0.0" dependencies = [ "kvdb", - "parking_lot 0.12.4", + "parking_lot 0.12.3", ] [[package]] name = "sp-debug-derive" version = "14.0.0" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -23356,9 +23269,9 @@ version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -23402,7 +23315,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -23444,7 +23357,7 @@ name = "sp-keystore" version = "0.34.0" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sp-core 28.0.0", "sp-externalities 0.25.0", ] @@ -23453,7 +23366,7 @@ dependencies = [ name = "sp-maybe-compressed-blob" version = "11.0.0" dependencies = [ - "thiserror 1.0.69", + "thiserror 1.0.65", "zstd 0.12.4", ] @@ -23480,7 +23393,7 @@ dependencies = [ name = "sp-mmr-primitives" version = "26.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "log", "parity-scale-codec", "polkadot-ckb-merkle-mountain-range", @@ -23490,7 +23403,7 @@ dependencies = [ "sp-core 28.0.0", "sp-debug-derive 14.0.0", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -23626,10 +23539,10 @@ version = "17.0.0" dependencies = [ "Inflector", "expander", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -23640,10 +23553,10 @@ checksum = "0195f32c628fee3ce1dfbbf2e7e52a30ea85f3589da9fe62a8b816d70fc06294" dependencies = [ "Inflector", "expander", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -23713,12 +23626,12 @@ name = "sp-state-machine" version = "0.35.0" dependencies = [ "arbitrary", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_matches", "hash-db", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pretty_assertions", "rand 0.8.5", "smallvec", @@ -23727,7 +23640,7 @@ dependencies = [ "sp-panic-handler", "sp-runtime", "sp-trie", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "trie-db", ] @@ -23751,7 +23664,7 @@ dependencies = [ "sp-externalities 0.25.0", "sp-runtime", "sp-runtime-interface 24.0.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "x25519-dalek", ] @@ -23809,7 +23722,7 @@ dependencies = [ "parity-scale-codec", "sp-inherents", "sp-runtime", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -23820,7 +23733,7 @@ dependencies = [ "regex", "tracing", "tracing-core", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] @@ -23832,7 +23745,7 @@ dependencies = [ "parity-scale-codec", "tracing", "tracing-core", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] @@ -23861,15 +23774,15 @@ name = "sp-trie" version = "29.0.0" dependencies = [ "ahash", - "array-bytes 6.2.3", + "array-bytes 6.2.2", "criterion", - "foldhash 0.1.5", + "foldhash", "hash-db", - "hashbrown 0.15.5", + "hashbrown 0.15.3", "memory-db", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "rand 0.8.5", "scale-info", "schnellru", @@ -23877,7 +23790,7 @@ dependencies = [ "sp-externalities 0.25.0", "sp-runtime", "substrate-prometheus-endpoint", - "thiserror 1.0.69", + "thiserror 1.0.65", "tracing", "trie-bench", "trie-db", @@ -23898,7 +23811,7 @@ dependencies = [ "sp-runtime", "sp-std 14.0.0", "sp-version-proc-macro", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -23907,10 +23820,10 @@ version = "13.0.0" dependencies = [ "parity-scale-codec", "proc-macro-warning", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "sp-version", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -23943,7 +23856,7 @@ dependencies = [ "bounded-collections 0.3.2", "parity-scale-codec", "scale-info", - "schemars 0.8.22", + "schemars", "serde", "smallvec", "sp-arithmetic", @@ -23977,29 +23890,30 @@ dependencies = [ ] [[package]] -name = "spinning_top" -version = "0.3.0" +name = "spki" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" dependencies = [ - "lock_api", + "base64ct", + "der", ] [[package]] -name = "spki" -version = "0.7.3" +name = "sqlformat" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790" dependencies = [ - "base64ct", - "der", + "nom 7.1.3", + "unicode_categories", ] [[package]] name = "sqlx" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc" +checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e" dependencies = [ "sqlx-core", "sqlx-macros", @@ -24010,32 +23924,37 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" +checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e" dependencies = [ - "base64 0.22.1", + "atoi", + "byteorder", "bytes", "crc", "crossbeam-queue", "either", - "event-listener 5.4.1", + "event-listener 5.3.1", + "futures-channel", "futures-core", "futures-intrusive", "futures-io", "futures-util", - "hashbrown 0.15.5", - "hashlink 0.10.0", - "indexmap 2.11.4", + "hashbrown 0.14.5", + "hashlink 0.9.1", + "hex", + "indexmap 2.9.0", "log", "memchr", "once_cell", + "paste", "percent-encoding", "serde", "serde_json", "sha2 0.10.9", "smallvec", - "thiserror 2.0.17", + "sqlformat", + "thiserror 1.0.65", "tokio", "tokio-stream", "tracing", @@ -24044,30 +23963,30 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d" +checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "sqlx-core", "sqlx-macros-core", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] name = "sqlx-macros-core" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" +checksum = "1804e8a7c7865599c9c79be146dc8a9fd8cc86935fa641d3ea58e5f0688abaa5" dependencies = [ "dotenvy", "either", "heck 0.5.0", "hex", "once_cell", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "serde", "serde_json", "sha2 0.10.9", @@ -24075,16 +23994,17 @@ dependencies = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", - "syn 2.0.106", + "syn 2.0.98", + "tempfile", "tokio", "url", ] [[package]] name = "sqlx-mysql" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" +checksum = "64bb4714269afa44aef2755150a0fc19d756fb580a67db8885608cf02f47d06a" dependencies = [ "atoi", "base64 0.22.1", @@ -24117,16 +24037,16 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.17", + "thiserror 1.0.65", "tracing", "whoami", ] [[package]] name = "sqlx-postgres" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" +checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8" dependencies = [ "atoi", "base64 0.22.1", @@ -24137,6 +24057,7 @@ dependencies = [ "etcetera", "futures-channel", "futures-core", + "futures-io", "futures-util", "hex", "hkdf", @@ -24154,16 +24075,16 @@ dependencies = [ "smallvec", "sqlx-core", "stringprep", - "thiserror 2.0.17", + "thiserror 1.0.65", "tracing", "whoami", ] [[package]] name = "sqlx-sqlite" -version = "0.8.6" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea" +checksum = "d5b2cf34a45953bfd3daaf3db0f7a7878ab9b7a6b91b422d24a7a9e4c857b680" dependencies = [ "atoi", "flume", @@ -24178,24 +24099,23 @@ dependencies = [ "serde", "serde_urlencoded", "sqlx-core", - "thiserror 2.0.17", "tracing", "url", ] [[package]] name = "ss58-registry" -version = "1.51.0" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19409f13998e55816d1c728395af0b52ec066206341d939e22e7766df9b494b8" +checksum = "5e6915280e2d0db8911e5032a5c275571af6bdded2916abd691a659be25d3439" dependencies = [ "Inflector", "num-format", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "serde", "serde_json", - "unicode-xid 0.2.6", + "unicode-xid 0.2.4", ] [[package]] @@ -24216,8 +24136,8 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "syn 1.0.109", ] @@ -24246,7 +24166,7 @@ dependencies = [ name = "staging-node-cli" version = "3.0.0-dev" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "assert_cmd", "clap", "clap_complete", @@ -24293,7 +24213,7 @@ dependencies = [ "sp-io", "sp-runtime", "sp-statement-store", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -24316,7 +24236,7 @@ version = "2.0.0" name = "staging-xcm" version = "7.0.1" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "bounded-collections 0.3.2", "derive-where", "environmental", @@ -24325,7 +24245,7 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "schemars 0.8.22", + "schemars", "serde", "sp-io", "sp-runtime", @@ -24394,29 +24314,29 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "static_init" -version = "1.0.4" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bae1df58c5fea7502e8e352ec26b5579f6178e1fdb311e088580c980dee25ed" +checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" dependencies = [ "bitflags 1.3.2", - "cfg_aliases 0.2.1", + "cfg_aliases 0.1.1", "libc", - "parking_lot 0.12.4", - "parking_lot_core 0.9.11", + "parking_lot 0.11.2", + "parking_lot_core 0.8.6", "static_init_macro", "winapi", ] [[package]] name = "static_init_macro" -version = "1.0.4" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1389c88ddd739ec6d3f8f83343764a0e944cd23cfbf126a9796a714b0b6edd6f" +checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf" dependencies = [ "cfg_aliases 0.1.1", "memchr", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "syn 1.0.109", ] @@ -24473,8 +24393,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "rustversion", "syn 1.0.109", ] @@ -24486,10 +24406,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ "heck 0.5.0", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "rustversion", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -24508,7 +24428,7 @@ dependencies = [ "hmac 0.12.1", "pbkdf2", "rustc-hex", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "sha2 0.10.9", "zeroize", ] @@ -24521,7 +24441,7 @@ checksum = "ca58ffd742f693dc13d69bdbb2e642ae239e0053f6aab3b104252892f856700a" dependencies = [ "hmac 0.12.1", "pbkdf2", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "sha2 0.10.9", "zeroize", ] @@ -24606,11 +24526,11 @@ name = "substrate-prometheus-endpoint" version = "0.17.0" dependencies = [ "http-body-util", - "hyper 1.7.0", + "hyper 1.6.0", "hyper-util", "log", "prometheus", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", ] @@ -24653,7 +24573,7 @@ dependencies = [ "sp-runtime", "sp-trie", "strum 0.26.3", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -24690,7 +24610,7 @@ dependencies = [ name = "substrate-test-client" version = "2.0.1" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "async-trait", "futures", "parity-scale-codec", @@ -24714,7 +24634,7 @@ dependencies = [ name = "substrate-test-runtime" version = "2.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "frame-executive", "frame-metadata-hash-extension", "frame-support", @@ -24790,13 +24710,13 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "sc-transaction-pool", "sc-transaction-pool-api", "sp-blockchain", "sp-runtime", "substrate-test-runtime-client", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -24820,8 +24740,8 @@ dependencies = [ "hex", "jsonrpsee", "parity-scale-codec", - "parking_lot 0.12.4", - "rand 0.9.2", + "parking_lot 0.12.3", + "rand 0.9.0", "serde", "serde_json", "subxt 0.41.0", @@ -24829,19 +24749,19 @@ dependencies = [ "subxt-rpcs 0.41.0", "subxt-signer 0.41.0", "termplot", - "thiserror 2.0.17", + "thiserror 2.0.12", "time", "tokio", "tokio-util", "tracing", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] name = "substrate-wasm-builder" version = "17.0.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "build-helper", "cargo_metadata", "console", @@ -24861,7 +24781,7 @@ dependencies = [ "sp-version", "strum 0.26.3", "tempfile", - "toml 0.8.23", + "toml", "walkdir", "wasm-opt", ] @@ -24874,9 +24794,9 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" [[package]] name = "subtle" -version = "2.6.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "subtle-ng" @@ -24912,7 +24832,7 @@ dependencies = [ "subxt-macro 0.41.0", "subxt-metadata 0.41.0", "subxt-rpcs 0.41.0", - "thiserror 2.0.17", + "thiserror 2.0.12", "tokio", "tokio-util", "tracing", @@ -24949,7 +24869,7 @@ dependencies = [ "subxt-macro 0.43.0", "subxt-metadata 0.43.0", "subxt-rpcs 0.43.0", - "thiserror 2.0.17", + "thiserror 2.0.12", "tokio", "tokio-util", "tracing", @@ -24966,13 +24886,13 @@ checksum = "324c52c09919fec8c22a4b572a466878322e99fe14a9e3d50d6c3700a226ec25" dependencies = [ "heck 0.5.0", "parity-scale-codec", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "scale-info", "scale-typegen", "subxt-metadata 0.41.0", - "syn 2.0.106", - "thiserror 2.0.17", + "syn 2.0.98", + "thiserror 2.0.12", ] [[package]] @@ -24983,13 +24903,13 @@ checksum = "1728caecd9700391e78cc30dc298221d6f5ca0ea28258a452aa76b0b7c229842" dependencies = [ "heck 0.5.0", "parity-scale-codec", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "scale-info", "scale-typegen", "subxt-metadata 0.43.0", - "syn 2.0.106", - "thiserror 2.0.17", + "syn 2.0.98", + "thiserror 2.0.12", ] [[package]] @@ -25018,7 +24938,7 @@ dependencies = [ "serde_json", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-metadata 0.41.0", - "thiserror 2.0.17", + "thiserror 2.0.12", "tracing", ] @@ -25048,7 +24968,7 @@ dependencies = [ "serde_json", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-metadata 0.43.0", - "thiserror 2.0.17", + "thiserror 2.0.12", "tracing", ] @@ -25063,7 +24983,7 @@ dependencies = [ "serde", "serde_json", "smoldot-light 0.16.2", - "thiserror 2.0.17", + "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", @@ -25080,7 +25000,7 @@ dependencies = [ "serde", "serde_json", "smoldot-light 0.17.2", - "thiserror 2.0.17", + "thiserror 2.0.12", "tokio", "tokio-stream", "tracing", @@ -25092,14 +25012,14 @@ version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c2c8da275a620dd676381d72395dfea91f0a6cd849665b4f1d0919371850701" dependencies = [ - "darling 0.20.11", + "darling 0.20.10", "parity-scale-codec", "proc-macro-error2", - "quote 1.0.41", + "quote 1.0.40", "scale-typegen", "subxt-codegen 0.41.0", "subxt-utils-fetchmetadata 0.41.0", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -25108,15 +25028,15 @@ version = "0.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69516e8ff0e9340a0f21b8398da7f997571af4734ee81deada5150a2668c8443" dependencies = [ - "darling 0.20.11", + "darling 0.20.10", "parity-scale-codec", "proc-macro-error2", - "quote 1.0.41", + "quote 1.0.40", "scale-typegen", "subxt-codegen 0.43.0", "subxt-metadata 0.43.0", "subxt-utils-fetchmetadata 0.43.0", - "syn 2.0.106", + "syn 2.0.98", ] [[package]] @@ -25131,7 +25051,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 2.0.17", + "thiserror 2.0.12", ] [[package]] @@ -25146,7 +25066,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror 2.0.17", + "thiserror 2.0.12", ] [[package]] @@ -25167,7 +25087,7 @@ dependencies = [ "serde_json", "subxt-core 0.41.0", "subxt-lightclient 0.41.0", - "thiserror 2.0.17", + "thiserror 2.0.12", "tokio-util", "tracing", "url", @@ -25192,7 +25112,7 @@ dependencies = [ "serde_json", "subxt-core 0.43.0", "subxt-lightclient 0.43.0", - "thiserror 2.0.17", + "thiserror 2.0.12", "tokio", "tokio-util", "tracing", @@ -25216,7 +25136,7 @@ dependencies = [ "parity-scale-codec", "pbkdf2", "regex", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "scrypt", "secp256k1 0.30.0", "secrecy 0.10.3", @@ -25225,7 +25145,7 @@ dependencies = [ "sha2 0.10.9", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-core 0.41.0", - "thiserror 2.0.17", + "thiserror 2.0.12", "zeroize", ] @@ -25246,7 +25166,7 @@ dependencies = [ "parity-scale-codec", "pbkdf2", "regex", - "schnorrkel 0.11.5", + "schnorrkel 0.11.4", "scrypt", "secp256k1 0.30.0", "secrecy 0.10.3", @@ -25255,7 +25175,7 @@ dependencies = [ "sha2 0.10.9", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "subxt-core 0.43.0", - "thiserror 2.0.17", + "thiserror 2.0.12", "zeroize", ] @@ -25267,7 +25187,7 @@ checksum = "fc868b55fe2303788dc7703457af390111940c3da4714b510983284501780ed5" dependencies = [ "hex", "parity-scale-codec", - "thiserror 2.0.17", + "thiserror 2.0.12", ] [[package]] @@ -25278,20 +25198,20 @@ checksum = "8c4fb8fd6b16ecd3537a29d70699f329a68c1e47f70ed1a46d64f76719146563" dependencies = [ "hex", "parity-scale-codec", - "thiserror 2.0.17", + "thiserror 2.0.12", ] [[package]] name = "sval" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc9739f56c5d0c44a5ed45473ec868af02eb896af8c05f616673a31e1d1bb09" +checksum = "8b031320a434d3e9477ccf9b5756d57d4272937b8d22cb88af80b7633a1b78b1" [[package]] name = "sval_buffer" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f39b07436a8c271b34dad5070c634d1d3d76d6776e938ee97b4a66a5e8003d0b" +checksum = "6bf7e9412af26b342f3f2cc5cc4122b0105e9d16eb76046cd14ed10106cf6028" dependencies = [ "sval", "sval_ref", @@ -25299,18 +25219,18 @@ dependencies = [ [[package]] name = "sval_dynamic" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffcb072d857431bf885580dacecf05ed987bac931230736739a79051dbf3499b" +checksum = "a0ef628e8a77a46ed3338db8d1b08af77495123cc229453084e47cd716d403cf" dependencies = [ "sval", ] [[package]] name = "sval_fmt" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f214f427ad94a553e5ca5514c95c6be84667cbc5568cce957f03f3477d03d5c" +checksum = "7dc09e9364c2045ab5fa38f7b04d077b3359d30c4c2b3ec4bae67a358bd64326" dependencies = [ "itoa", "ryu", @@ -25319,63 +25239,53 @@ dependencies = [ [[package]] name = "sval_json" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ed34b32e638dec9a99c8ac92d0aa1220d40041026b625474c2b6a4d6f4feb" +checksum = "ada6f627e38cbb8860283649509d87bc4a5771141daa41c78fd31f2b9485888d" dependencies = [ "itoa", "ryu", "sval", ] -[[package]] -name = "sval_nested" -version = "2.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14bae8fcb2f24fee2c42c1f19037707f7c9a29a0cda936d2188d48a961c4bb2a" -dependencies = [ - "sval", - "sval_buffer", - "sval_ref", -] - [[package]] name = "sval_ref" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4eaea3821d3046dcba81d4b8489421da42961889902342691fb7eab491d79e" +checksum = "703ca1942a984bd0d9b5a4c0a65ab8b4b794038d080af4eb303c71bc6bf22d7c" dependencies = [ "sval", ] [[package]] name = "sval_serde" -version = "2.14.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172dd4aa8cb3b45c8ac8f3b4111d644cd26938b0643ede8f93070812b87fb339" +checksum = "830926cd0581f7c3e5d51efae4d35c6b6fc4db583842652891ba2f1bed8db046" dependencies = [ "serde", "sval", - "sval_nested", + "sval_buffer", + "sval_fmt", ] [[package]] name = "symbolic-common" -version = "12.16.3" +version = "12.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03f433c9befeea460a01d750e698aa86caf86dcfbd77d552885cd6c89d52f50" +checksum = "66135c8273581acaab470356f808a1c74a707fe7ec24728af019d7247e089e71" dependencies = [ "debugid", - "memmap2 0.9.8", + "memmap2 0.9.3", "stable_deref_trait", "uuid", ] [[package]] name = "symbolic-demangle" -version = "12.16.3" +version = "12.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13d359ef6192db1760a34321ec4f089245ede4342c27e59be99642f12a859de8" +checksum = "42bcacd080282a72e795864660b148392af7babd75691d5ae9a3b77e29c98c77" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -25399,39 +25309,39 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.106" +version = "2.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "unicode-ident", ] [[package]] name = "syn-solidity" -version = "1.4.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2375c17f6067adc651d8c2c51658019cef32edfff4a982adaf1d7fd1c039f08b" +checksum = "b9ac494e7266fcdd2ad80bf4375d55d27a117ea5c866c26d0e97fe5b3caeeb75" dependencies = [ "paste", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "sync_wrapper" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" dependencies = [ "futures-core", ] @@ -25442,28 +25352,28 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "syn 1.0.109", - "unicode-xid 0.2.6", + "unicode-xid 0.2.4", ] [[package]] name = "synstructure" -version = "0.13.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "sysinfo" -version = "0.30.13" +version = "0.30.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2" dependencies = [ "cfg-if", "core-foundation-sys", @@ -25474,6 +25384,17 @@ dependencies = [ "windows 0.52.0", ] +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys 0.5.0", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -25481,8 +25402,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.9.4", - "core-foundation 0.9.4", - "system-configuration-sys", + "core-foundation", + "system-configuration-sys 0.6.0", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", ] [[package]] @@ -25509,9 +25440,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.44" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" dependencies = [ "filetime", "libc", @@ -25520,27 +25451,27 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.13.3" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c" +checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a" [[package]] name = "target-triple" -version = "0.1.4" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" +checksum = "42a4d50cdb458045afc8131fd91b64904da29548bcb63c7236e0844936c13078" [[package]] name = "tempfile" -version = "3.23.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ + "cfg-if", "fastrand 2.3.0", - "getrandom 0.3.3", "once_cell", - "rustix 1.1.2", - "windows-sys 0.61.1", + "rustix 0.38.42", + "windows-sys 0.59.0", ] [[package]] @@ -25548,28 +25479,28 @@ name = "template-zombienet-tests" version = "0.0.0" dependencies = [ "anyhow", - "env_logger 0.11.8", + "env_logger 0.11.3", "tokio", "zombienet-sdk", ] [[package]] name = "termcolor" -version = "1.4.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] [[package]] name = "terminal_size" -version = "0.4.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 1.1.2", - "windows-sys 0.60.2", + "rustix 0.38.42", + "windows-sys 0.48.0", ] [[package]] @@ -25583,9 +25514,9 @@ dependencies = [ [[package]] name = "termtree" -version = "0.5.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "test-case" @@ -25603,9 +25534,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f" dependencies = [ "cfg-if", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -25614,9 +25545,9 @@ version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", "test-case-core", ] @@ -25626,9 +25557,9 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e33b98a582ea0be1168eba097538ee8dd4bbe0f2b01b22ac92ea30054e5be7b" dependencies = [ - "env_logger 0.11.8", + "env_logger 0.11.3", "test-log-macros", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.18", ] [[package]] @@ -25637,9 +25568,9 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "451b374529930d7601b1eef8d32bc79ae870b6079b069401709c2a8bf9e75f36" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -25754,42 +25685,42 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.69" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" dependencies = [ - "thiserror-impl 1.0.69", + "thiserror-impl 1.0.65", ] [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.12", ] [[package]] name = "thiserror-impl" -version = "1.0.69" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -25800,11 +25731,12 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.9" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ "cfg-if", + "once_cell", ] [[package]] @@ -25849,9 +25781,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -25866,15 +25798,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", @@ -25891,9 +25823,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.1" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ "displaydoc", "zerovec", @@ -25911,9 +25843,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ "tinyvec_macros", ] @@ -25926,29 +25858,27 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" dependencies = [ "backtrace", "bytes", - "io-uring", "libc", "mio", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project-lite", "signal-hook-registry", - "slab", - "socket2 0.6.0", + "socket2 0.5.9", "tokio-macros", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-io-timeout" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd86198d9ee903fedd2f9a2e72014287c0d9167e4ae43b5853007205dda1b76" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ "pin-project-lite", "tokio", @@ -25960,9 +25890,9 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -25992,25 +25922,26 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.12", + "rustls 0.21.7", "tokio", ] [[package]] name = "tokio-rustls" -version = "0.26.4" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.32", + "rustls 0.23.18", + "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -26063,19 +25994,19 @@ checksum = "489a59b6730eda1b0171fcfda8b121f4bee2b35cba8645ca35c5f7ba3eb736c1" dependencies = [ "futures-util", "log", - "rustls 0.23.32", - "rustls-native-certs 0.8.1", + "rustls 0.23.18", + "rustls-native-certs 0.8.0", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.4", + "tokio-rustls 0.26.0", "tungstenite 0.27.0", ] [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" dependencies = [ "bytes", "futures-core", @@ -26088,121 +26019,65 @@ dependencies = [ [[package]] name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml" -version = "0.8.23" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", -] - -[[package]] -name = "toml" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0" -dependencies = [ - "indexmap 2.11.4", - "serde_core", - "serde_spanned 1.0.2", - "toml_datetime 0.7.2", - "toml_parser", - "toml_writer", - "winnow 0.7.13", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.22", ] [[package]] name = "toml_datetime" -version = "0.6.11" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] -[[package]] -name = "toml_datetime" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1" -dependencies = [ - "serde_core", -] - [[package]] name = "toml_edit" version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.11.4", - "toml_datetime 0.6.11", - "winnow 0.5.40", + "indexmap 2.9.0", + "toml_datetime", + "winnow 0.5.15", ] [[package]] name = "toml_edit" -version = "0.22.27" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" dependencies = [ - "indexmap 2.11.4", - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.11", - "toml_write", - "winnow 0.7.13", + "indexmap 2.9.0", + "toml_datetime", + "winnow 0.5.15", ] [[package]] name = "toml_edit" -version = "0.23.6" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3effe7c0e86fdff4f69cdd2ccc1b96f933e24811c5441d44904e8683e27184b" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.11.4", - "toml_datetime 0.7.2", - "toml_parser", - "winnow 0.7.13", + "indexmap 2.9.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.18", ] [[package]] -name = "toml_parser" -version = "1.0.3" +name = "tower" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" -dependencies = [ - "winnow 0.7.13", -] - -[[package]] -name = "toml_write" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" - -[[package]] -name = "toml_writer" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d163a63c116ce562a22cda521fcc4d79152e7aba014456fb5eb442f6d6a10109" - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", @@ -26215,21 +26090,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tower" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", -] - [[package]] name = "tower-http" version = "0.4.4" @@ -26241,8 +26101,8 @@ dependencies = [ "bytes", "futures-core", "futures-util", - "http 0.2.12", - "http-body 0.4.6", + "http 0.2.9", + "http-body 0.4.5", "http-range-header", "mime", "pin-project-lite", @@ -26259,49 +26119,31 @@ checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ "bitflags 2.9.4", "bytes", - "http 1.3.1", - "http-body 1.0.1", + "http 1.1.0", + "http-body 1.0.0", "http-body-util", "pin-project-lite", "tower-layer", "tower-service", ] -[[package]] -name = "tower-http" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" -dependencies = [ - "bitflags 2.9.4", - "bytes", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "iri-string", - "pin-project-lite", - "tower 0.5.2", - "tower-layer", - "tower-service", -] - [[package]] name = "tower-layer" -version = "0.3.3" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" [[package]] name = "tower-service" -version = "0.3.3" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", "pin-project-lite", @@ -26311,20 +26153,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -26356,10 +26198,10 @@ version = "5.0.0" dependencies = [ "assert_matches", "expander", - "proc-macro-crate 3.4.0", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro-crate 3.1.0", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -26384,16 +26226,16 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "chrono", "matchers", "nu-ansi-term", "once_cell", - "parking_lot 0.12.4", - "regex-automata", + "parking_lot 0.12.3", + "regex", "sharded-slab", "smallvec", "thread_local", @@ -26452,15 +26294,15 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "trybuild" -version = "1.0.111" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ded9fdb81f30a5708920310bfcd9ea7482ff9cba5f54601f7a19a877d5c2392" +checksum = "b812699e0c4f813b872b373a4471717d9eb550da14b311058a4d9cf4173cbca6" dependencies = [ "dissimilar", "glob", @@ -26469,7 +26311,7 @@ dependencies = [ "serde_json", "target-triple", "termcolor", - "toml 0.9.7", + "toml", ] [[package]] @@ -26487,12 +26329,12 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 0.2.12", + "http 0.2.9", "httparse", "log", "rand 0.8.5", "sha1", - "thiserror 1.0.69", + "thiserror 1.0.65", "url", "utf-8", ] @@ -26505,12 +26347,12 @@ checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" dependencies = [ "bytes", "data-encoding", - "http 1.3.1", + "http 1.1.0", "httparse", "log", - "rand 0.9.2", + "rand 0.9.0", "sha1", - "thiserror 2.0.17", + "thiserror 2.0.12", "utf-8", ] @@ -26522,14 +26364,14 @@ checksum = "eadc29d668c91fcc564941132e17b28a7ceb2f3ebf0b9dae3e03fd7a6748eb0d" dependencies = [ "bytes", "data-encoding", - "http 1.3.1", + "http 1.1.0", "httparse", "log", - "rand 0.9.2", - "rustls 0.23.32", + "rand 0.9.0", + "rustls 0.23.18", "rustls-pki-types", "sha1", - "thiserror 2.0.17", + "thiserror 2.0.12", "url", "utf-8", ] @@ -26554,27 +26396,21 @@ dependencies = [ [[package]] name = "twox-hash" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea3136b675547379c4bd395ca6b938e5ad3c3d20fad76e7fe85f9e0d011419c" - -[[package]] -name = "typeid" -version = "1.0.3" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" +checksum = "8b907da542cbced5261bd3256de1b3a1bf340a3d37f93425a07362a1d687de56" [[package]] name = "typenum" -version = "1.18.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "ucd-trie" -version = "0.1.7" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "uint" @@ -26608,15 +26444,15 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-bidi" -version = "0.3.18" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.19" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" +checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" [[package]] name = "unicode-normalization" @@ -26635,15 +26471,21 @@ checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" -version = "0.2.1" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unicode-width" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" [[package]] name = "unicode-xid" @@ -26653,9 +26495,15 @@ checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" [[package]] name = "unicode-xid" -version = "0.2.6" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "unicode_categories" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" [[package]] name = "universal-hash" @@ -26664,7 +26512,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", - "subtle 2.6.1", + "subtle 2.5.0", ] [[package]] @@ -26709,12 +26557,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.7" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", - "idna", + "idna 1.0.3", "percent-encoding", "serde", ] @@ -26725,6 +26573,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -26733,32 +26587,30 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "utf8parse" -version = "0.2.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.18.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" dependencies = [ - "getrandom 0.3.3", - "js-sys", - "wasm-bindgen", + "getrandom 0.2.10", ] [[package]] name = "valuable" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.11.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5" +checksum = "8fec26a25bd6fca441cdd0f769fd7f891bae119f996de31f86a5eddccef54c1d" dependencies = [ "value-bag-serde1", "value-bag-sval2", @@ -26766,9 +26618,9 @@ dependencies = [ [[package]] name = "value-bag-serde1" -version = "1.11.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35540706617d373b118d550d41f5dfe0b78a0c195dc13c6815e92e2638432306" +checksum = "ead5b693d906686203f19a49e88c477fb8c15798b68cf72f60b4b5521b4ad891" dependencies = [ "erased-serde", "serde", @@ -26777,9 +26629,9 @@ dependencies = [ [[package]] name = "value-bag-sval2" -version = "1.11.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe7e140a2658cc16f7ee7a86e413e803fc8f9b5127adc8755c19f9fefa63a52" +checksum = "3b9d0f4a816370c3a0d7d82d603b62198af17675b12fe5e91de6b47ceb505882" dependencies = [ "sval", "sval_buffer", @@ -26815,9 +26667,9 @@ dependencies = [ [[package]] name = "version_check" -version = "0.9.5" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "void" @@ -26898,18 +26750,18 @@ dependencies = [ [[package]] name = "wait-timeout" -version = "0.2.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" dependencies = [ "libc", ] [[package]] name = "waker-fn" -version = "1.2.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" @@ -26932,26 +26784,17 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi" -version = "0.14.7+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" -dependencies = [ - "wasip2", -] - -[[package]] -name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "0.13.3+wasi-0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" dependencies = [ - "wit-bindgen", + "wit-bindgen-rt", ] [[package]] @@ -26960,107 +26803,92 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" -[[package]] -name = "wasix" -version = "0.12.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d" -dependencies = [ - "wasi 0.11.1+wasi-snapshot-preview1", -] - [[package]] name = "wasm-bindgen" -version = "0.2.104" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", - "rustversion", "serde", "serde_json", "wasm-bindgen-macro", - "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.104" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "once_cell", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.54" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", - "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.104" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ - "quote 1.0.41", + "quote 1.0.40", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.104" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.104" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" -dependencies = [ - "unicode-ident", -] +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-encoder" -version = "0.235.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3bc393c395cb621367ff02d854179882b9a351b4e0c93d1397e6090b53a5c2a" +checksum = "41763f20eafed1399fff1afb466496d3a959f58241436cfdc17e3f5ca954de16" dependencies = [ - "leb128fmt", - "wasmparser 0.235.0", + "leb128", ] [[package]] name = "wasm-encoder" -version = "0.239.0" +version = "0.235.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be00faa2b4950c76fe618c409d2c3ea5a3c9422013e079482d78544bb2d184c" +checksum = "b3bc393c395cb621367ff02d854179882b9a351b4e0c93d1397e6090b53a5c2a" dependencies = [ "leb128fmt", - "wasmparser 0.239.0", + "wasmparser 0.235.0", ] [[package]] @@ -27074,16 +26902,16 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.116.1" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" +checksum = "fc942673e7684671f0c5708fc18993569d184265fd5223bb51fc8e5b9b6cfd52" dependencies = [ "anyhow", "libc", "strum 0.24.1", "strum_macros 0.24.3", "tempfile", - "thiserror 1.0.69", + "thiserror 1.0.65", "wasm-opt-cxx-sys", "wasm-opt-sys", ] @@ -27224,23 +27052,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "161296c618fa2d63f6ed5fffd1112937e803cb9ec71b32b01a76321555660917" dependencies = [ "bitflags 2.9.4", - "hashbrown 0.15.5", - "indexmap 2.11.4", - "semver 1.0.27", + "hashbrown 0.15.3", + "indexmap 2.9.0", + "semver 1.0.18", "serde", ] -[[package]] -name = "wasmparser" -version = "0.239.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9d90bb93e764f6beabf1d02028c70a2156a6583e63ac4218dd07ef733368b0" -dependencies = [ - "bitflags 2.9.4", - "indexmap 2.11.4", - "semver 1.0.27", -] - [[package]] name = "wasmparser-nostd" version = "0.100.2" @@ -27275,8 +27092,8 @@ dependencies = [ "cfg-if", "fxprof-processed-profile", "gimli 0.31.1", - "hashbrown 0.15.5", - "indexmap 2.11.4", + "hashbrown 0.15.3", + "indexmap 2.9.0", "ittapi", "libc", "log", @@ -27287,7 +27104,7 @@ dependencies = [ "postcard", "pulley-interpreter", "rayon", - "rustix 1.1.2", + "rustix 1.0.8", "serde", "serde_derive", "serde_json", @@ -27320,7 +27137,7 @@ dependencies = [ "cranelift-bitset", "cranelift-entity", "gimli 0.31.1", - "indexmap 2.11.4", + "indexmap 2.9.0", "log", "object 0.36.7", "postcard", @@ -27354,11 +27171,11 @@ dependencies = [ "directories-next", "log", "postcard", - "rustix 1.1.2", + "rustix 1.0.8", "serde", "serde_derive", "sha2 0.10.9", - "toml 0.8.23", + "toml", "windows-sys 0.59.0", "zstd 0.13.3", ] @@ -27383,7 +27200,7 @@ dependencies = [ "pulley-interpreter", "smallvec", "target-lexicon", - "thiserror 2.0.17", + "thiserror 2.0.12", "wasmparser 0.235.0", "wasmtime-environ", "wasmtime-internal-math", @@ -27400,7 +27217,7 @@ dependencies = [ "cc", "cfg-if", "libc", - "rustix 1.1.2", + "rustix 1.0.8", "wasmtime-internal-asm-macros", "wasmtime-internal-versioned-export-macros", "windows-sys 0.59.0", @@ -27414,7 +27231,7 @@ checksum = "61d8693995ab3df48e88777b6ee3b2f441f2c4f895ab938996cdac3db26f256c" dependencies = [ "cc", "object 0.36.7", - "rustix 1.1.2", + "rustix 1.0.8", "wasmtime-internal-versioned-export-macros", ] @@ -27464,9 +27281,9 @@ version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "342b0466f92b7217a4de9e114175fedee1907028567d2548bcd42f71a8b5b016" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -27488,31 +27305,30 @@ dependencies = [ [[package]] name = "wast" -version = "239.0.0" +version = "63.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9139176fe8a2590e0fb174cdcaf373b224cb93c3dde08e4297c1361d2ba1ea5d" +checksum = "2560471f60a48b77fccefaf40796fda61c97ce1e790b59dfcec9dc3995c9f63a" dependencies = [ - "bumpalo", - "leb128fmt", + "leb128", "memchr", - "unicode-width", - "wasm-encoder 0.239.0", + "unicode-width 0.1.10", + "wasm-encoder 0.31.1", ] [[package]] name = "wat" -version = "1.239.0" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e1c941927d34709f255558166f8901a2005f8ab4a9650432e9281b7cc6f3b75" +checksum = "3bdc306c2c4c2f2bf2ba69e083731d0d2a77437fc6a350a19db139636e7e416c" dependencies = [ "wast", ] [[package]] name = "web-sys" -version = "0.3.81" +version = "0.3.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" dependencies = [ "js-sys", "wasm-bindgen", @@ -27528,35 +27344,17 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-root-certs" -version = "0.26.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c7f0ef91146ebfb530314f5f1d24528d7f0767efbfd31dce919275413e393e" -dependencies = [ - "webpki-root-certs 1.0.2", -] - -[[package]] -name = "webpki-root-certs" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4ffd8df1c57e87c325000a3d6ef93db75279dc3a231125aac571650f22b12a" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "webpki-roots" -version = "0.25.4" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" [[package]] name = "webpki-roots" -version = "1.0.2" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" dependencies = [ "rustls-pki-types", ] @@ -27721,19 +27519,19 @@ dependencies = [ [[package]] name = "whoami" -version = "1.6.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" +checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" dependencies = [ - "libredox", + "redox_syscall 0.5.8", "wasite", ] [[package]] name = "wide" -version = "0.7.33" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" +checksum = "aa469ffa65ef7e0ba0f164183697b89b854253fd31aeb92358b7b6155177d62f" dependencies = [ "bytemuck", "safe_arch", @@ -27741,9 +27539,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.2.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" +checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" [[package]] name = "winapi" @@ -27763,11 +27561,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.11" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "windows-sys 0.61.1", + "winapi", ] [[package]] @@ -27789,13 +27587,32 @@ dependencies = [ "regalloc2 0.12.2", "smallvec", "target-lexicon", - "thiserror 2.0.17", + "thiserror 2.0.12", "wasmparser 0.235.0", "wasmtime-environ", "wasmtime-internal-cranelift", "wasmtime-internal-math", ] +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +dependencies = [ + "windows-core 0.51.1", + "windows-targets 0.48.5", +] + [[package]] name = "windows" version = "0.52.0" @@ -27808,143 +27625,101 @@ dependencies = [ [[package]] name = "windows" -version = "0.53.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efc5cf48f83140dcaab716eeaea345f9e93d0018fb81162753a3f76c3397b538" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ - "windows-core 0.53.0", + "windows-core 0.58.0", "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.52.0" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] name = "windows-core" -version = "0.53.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcc5b895a6377f1ab9fa55acedab1fd5ac0db66ad1e6c7f47e28a22e446a5dd" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-result 0.1.2", "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.62.1" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6844ee5416b285084d3d3fffd743b925a6c9385455f64f6d4fa3031c4c2749a9" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ "windows-implement", "windows-interface", - "windows-link 0.2.0", - "windows-result 0.4.0", - "windows-strings 0.5.0", + "windows-result", + "windows-strings", + "windows-targets 0.52.6", ] [[package]] name = "windows-implement" -version = "0.60.1" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb307e42a74fb6de9bf3a02d9712678b22399c87e6fa869d6dfcd8c1b7754e0" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "windows-interface" -version = "0.59.2" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0abd1ddbc6964ac14db11c7213d6532ef34bd9aa042c2e5935f59d7908b46a5" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - -[[package]] -name = "windows-link" -version = "0.2.0" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" [[package]] name = "windows-registry" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" -dependencies = [ - "windows-link 0.1.3", - "windows-result 0.3.4", - "windows-strings 0.4.2", -] - -[[package]] -name = "windows-result" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ + "windows-result", + "windows-strings", "windows-targets 0.52.6", ] [[package]] name = "windows-result" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-result" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f" -dependencies = [ - "windows-link 0.2.0", -] - -[[package]] -name = "windows-strings" -version = "0.4.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "windows-link 0.1.3", + "windows-targets 0.52.6", ] [[package]] name = "windows-strings" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda" -dependencies = [ - "windows-link 0.2.0", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "windows-targets 0.42.2", + "windows-result", + "windows-targets 0.52.6", ] [[package]] @@ -27980,31 +27755,7 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.4", -] - -[[package]] -name = "windows-sys" -version = "0.61.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f" -dependencies = [ - "windows-link 0.2.0", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets 0.53.2", ] [[package]] @@ -28040,11 +27791,10 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.4" +version = "0.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d42b7b7f66d2a06854650af09cfdf8713e427a439c97ad65a6375318033ac4b" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" dependencies = [ - "windows-link 0.2.0", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -28055,12 +27805,6 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -28079,12 +27823,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -28103,12 +27841,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -28139,12 +27871,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -28163,12 +27889,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -28187,12 +27907,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -28211,12 +27925,6 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -28237,18 +27945,27 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winnow" -version = "0.5.40" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" dependencies = [ "memchr", ] [[package]] name = "winnow" -version = "0.7.13" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ "memchr", ] @@ -28264,16 +27981,25 @@ dependencies = [ ] [[package]] -name = "wit-bindgen" -version = "0.46.0" +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.9.4", +] + +[[package]] +name = "write16" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" [[package]] name = "writeable" -version = "0.6.1" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "wyz" @@ -28302,14 +28028,14 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" dependencies = [ - "asn1-rs 0.6.2", + "asn1-rs 0.6.1", "data-encoding", "der-parser 9.0.0", "lazy_static", "nom 7.1.3", - "oid-registry 0.7.1", + "oid-registry 0.7.0", "rusticata-macros", - "thiserror 1.0.69", + "thiserror 1.0.65", "time", ] @@ -28319,25 +28045,24 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4569f339c0c402346d4a75a9e39cf8dad310e287eef1ff56d4c68e5067f53460" dependencies = [ - "asn1-rs 0.7.1", + "asn1-rs 0.7.0", "data-encoding", "der-parser 10.0.0", "lazy_static", "nom 7.1.3", "oid-registry 0.8.1", "rusticata-macros", - "thiserror 2.0.17", + "thiserror 2.0.12", "time", ] [[package]] name = "xattr" -version = "1.6.1" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985" dependencies = [ "libc", - "rustix 1.1.2", ] [[package]] @@ -28366,7 +28091,7 @@ dependencies = [ name = "xcm-emulator" version = "0.5.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes 6.2.2", "cumulus-pallet-parachain-system", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", @@ -28425,10 +28150,10 @@ version = "7.0.0" dependencies = [ "Inflector", "frame-support", - "proc-macro2 1.0.101", - "quote 1.0.41", + "proc-macro2 1.0.95", + "quote 1.0.40", "staging-xcm", - "syn 2.0.106", + "syn 2.0.98", "trybuild", ] @@ -28529,9 +28254,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.27" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" +checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" [[package]] name = "xmltree" @@ -28551,7 +28276,7 @@ dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", "rand 0.8.5", "static_assertions", @@ -28559,25 +28284,25 @@ dependencies = [ [[package]] name = "yamux" -version = "0.13.6" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2dd50a6d6115feb3e5d7d0efd45e8ca364b6c83722c1e9c602f5764e0e9597" +checksum = "3da1acad1c2dc53f0dde419115a38bd8221d8c3e47ae9aeceaf453266d29307e" dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.4", + "parking_lot 0.12.3", "pin-project", - "rand 0.9.2", + "rand 0.9.0", "static_assertions", "web-time", ] [[package]] name = "yansi" -version = "1.0.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "yap" @@ -28608,9 +28333,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.0" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ "serde", "stable_deref_trait", @@ -28620,62 +28345,82 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", + "synstructure 0.13.1", +] + +[[package]] +name = "zerocopy" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", - "synstructure 0.13.2", + "zerocopy-derive 0.7.32", ] [[package]] name = "zerocopy" -version = "0.8.27" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde3bb8c68a8f3f1ed4ac9221aad6b10cece3e60a8e2ea54a6a2dec806d0084c" +dependencies = [ + "zerocopy-derive 0.8.20", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ - "zerocopy-derive", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "eea57037071898bf96a6da35fd626f4f27e9cee3ead2a6c703cf09d472b2e700" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", - "synstructure 0.13.2", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", + "synstructure 0.13.1", ] [[package]] name = "zeroize" -version = "1.8.2" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -28686,27 +28431,16 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", -] - -[[package]] -name = "zerotrie" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] name = "zerovec" -version = "0.11.4" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" dependencies = [ "yoke", "zerofrom", @@ -28715,13 +28449,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ - "proc-macro2 1.0.101", - "quote 1.0.41", - "syn 2.0.106", + "proc-macro2 1.0.95", + "quote 1.0.40", + "syn 2.0.98", ] [[package]] @@ -28732,7 +28466,7 @@ dependencies = [ "parity-scale-codec", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-tungstenite 0.26.2", "tracing-gum", @@ -28746,14 +28480,14 @@ checksum = "939599296b4660c38fc4350444a80e34c241c0f0640de33dded9648082b994c8" dependencies = [ "anyhow", "lazy_static", - "multiaddr 0.18.2", + "multiaddr 0.18.1", "regex", "reqwest", "serde", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", - "toml 0.8.23", + "toml", "tracing", "url", "zombienet-support", @@ -28773,7 +28507,7 @@ dependencies = [ "hex", "libp2p", "libsecp256k1", - "multiaddr 0.18.2", + "multiaddr 0.18.1", "rand 0.8.5", "regex", "reqwest", @@ -28783,7 +28517,7 @@ dependencies = [ "sp-core 36.1.0", "subxt 0.43.0", "subxt-signer 0.43.0", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tracing", "uuid", @@ -28801,7 +28535,7 @@ checksum = "18efca2715d288088b867a00a7651ad7c0c2d958a3b8ba6c366645c622427c6d" dependencies = [ "pest", "pest_derive", - "thiserror 1.0.69", + "thiserror 1.0.65", ] [[package]] @@ -28825,7 +28559,7 @@ dependencies = [ "serde_yaml", "sha2 0.10.9", "tar", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tokio-util", "tracing", @@ -28868,7 +28602,7 @@ dependencies = [ "regex", "reqwest", "serde_json", - "thiserror 1.0.69", + "thiserror 1.0.65", "tokio", "tracing", "uuid", @@ -28913,9 +28647,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" +version = "2.0.15+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" dependencies = [ "cc", "pkg-config", From 2716b30c87055a40d339c7a6935298224ab6aa0d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 30 Sep 2025 16:36:49 +0000 Subject: [PATCH 226/273] revive: Downgrade log to debug Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/block_hash/block_builder.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/block_hash/block_builder.rs b/substrate/frame/revive/src/evm/block_hash/block_builder.rs index 8d007e7eaf394..13dcf173c97f0 100644 --- a/substrate/frame/revive/src/evm/block_hash/block_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/block_builder.rs @@ -170,7 +170,7 @@ impl EthereumBlockBuilder { self.transaction_root_builder.set_first_value(first_tx); self.receipts_root_builder.set_first_value(first_receipt); } else { - log::error!(target: LOG_TARGET, "First transaction and receipt must be present at build phase"); + log::debug!(target: LOG_TARGET, "Building an empty block"); } } From 5f6497f5880bc6877cc03a23bb5a826aff420077 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Sat, 4 Oct 2025 01:05:37 +0200 Subject: [PATCH 227/273] revive: adjust MAX_TRANSACTION_PAYLOAD_SIZE --- substrate/frame/revive/src/limits.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/limits.rs b/substrate/frame/revive/src/limits.rs index 0f64533833882..c092dacaef23e 100644 --- a/substrate/frame/revive/src/limits.rs +++ b/substrate/frame/revive/src/limits.rs @@ -59,7 +59,9 @@ pub const NUM_EMITTED_EVENTS: u32 = 512; pub const PAYLOAD_BYTES: u32 = 416; /// Maximum size of of the transaction payload -pub const MAX_TRANSACTION_PAYLOAD_SIZE: u32 = 1024 * 1024; +/// +/// Maximum code size during instantiation taken into account plus some overhead. +pub const MAX_TRANSACTION_PAYLOAD_SIZE: u32 = code::BLOB_BYTES + 128 * 1024; /// The maximum size for calldata and return data. /// From 13172f1284ac841ce579637c1e8cfe873dd2cb47 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Mon, 6 Oct 2025 10:50:29 +0200 Subject: [PATCH 228/273] revive: fixes after master merge --- substrate/frame/revive/src/benchmarking.rs | 2 +- substrate/frame/revive/src/evm/call.rs | 4 + substrate/frame/revive/src/evm/runtime.rs | 10 +- substrate/frame/revive/src/exec.rs | 6 +- substrate/frame/revive/src/lib.rs | 90 +----- .../frame/revive/src/test_utils/builder.rs | 6 +- substrate/frame/revive/src/tests.rs | 4 +- .../frame/revive/src/tests/block_hash.rs | 6 +- .../frame/revive/src/tests/sol/block_info.rs | 270 ++++++++---------- .../revive/src/vm/evm/instructions/host.rs | 4 +- substrate/frame/revive/src/weights.rs | 14 - 11 files changed, 166 insertions(+), 250 deletions(-) diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index 0862ea59d4f9a..f945ab35384f9 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -24,7 +24,7 @@ use crate::{ block_hash::EthereumBlockBuilder, block_storage, runtime::GAS_PRICE, TransactionLegacyUnsigned, TransactionSigned, TransactionUnsigned, }, - exec::{Key, PrecompileExt} + exec::{Key, PrecompileExt}, limits, precompiles::{ self, diff --git a/substrate/frame/revive/src/evm/call.rs b/substrate/frame/revive/src/evm/call.rs index 420068a70d594..37eff9b52388f 100644 --- a/substrate/frame/revive/src/evm/call.rs +++ b/substrate/frame/revive/src/evm/call.rs @@ -22,6 +22,7 @@ use crate::{ extract_code_and_data, BalanceOf, CallOf, Config, GenericTransaction, Pallet, Weight, Zero, LOG_TARGET, RUNTIME_PALLETS_ADDR, }; +use alloc::vec::Vec; use codec::DecodeLimit; use frame_support::MAX_EXTRINSIC_DEPTH; use num_traits::Bounded; @@ -50,6 +51,7 @@ pub struct CallInfo { pub fn create_call( tx: GenericTransaction, encoded_len: Option, + transaction_encoded: Vec, ) -> Result, InvalidTransaction> where T: Config, @@ -119,6 +121,7 @@ where gas_limit: Zero::zero(), storage_deposit_limit: BalanceOf::::max_value(), data, + transaction_encoded: transaction_encoded.clone(), effective_gas_price, encoded_len, } @@ -142,6 +145,7 @@ where storage_deposit_limit: BalanceOf::::max_value(), code, data, + transaction_encoded, effective_gas_price, encoded_len, } diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index 16184a6d5b6d7..0b28ce4b27291 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -23,7 +23,6 @@ use crate::{ }, AccountIdOf, AddressMapper, BalanceOf, CallOf, Config, Pallet, Zero, LOG_TARGET, }; -use alloc::vec::Vec; use codec::{Decode, DecodeWithMemTracking, Encode}; use frame_support::{ dispatch::{DispatchInfo, GetDispatchInfo}, @@ -299,7 +298,8 @@ pub trait EthExtra { log::debug!(target: LOG_TARGET, "Failed to convert nonce"); InvalidTransaction::Call })?; - let call_info = create_call::(tx, Some(encoded_len as u32), transaction_encoded)?; + let call_info = + create_call::(tx, Some(encoded_len as u32), transaction_encoded)?; let storage_credit = ::Currency::withdraw( &signer, call_info.storage_deposit, @@ -505,7 +505,8 @@ mod test { #[test] fn check_eth_transact_call_works() { let builder = UncheckedExtrinsicBuilder::call_with(H160::from([1u8; 20])); - let (expected_encoded_len, call, _, tx, gas_required, signed_transaction) = builder.check().unwrap(); + let (expected_encoded_len, call, _, tx, gas_required, signed_transaction) = + builder.check().unwrap(); let expected_effective_gas_price: u32 = ::NativeToEthRatio::get(); match call { @@ -543,7 +544,8 @@ mod test { expected_code.clone(), expected_data.clone(), ); - let (expected_encoded_len, call, _, tx, gas_required, signed_transaction) = builder.check().unwrap(); + let (expected_encoded_len, call, _, tx, gas_required, signed_transaction) = + builder.check().unwrap(); let expected_effective_gas_price: u32 = ::NativeToEthRatio::get(); let expected_value = tx.value.unwrap_or_default().as_u64().into(); diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index 1415f9d08baa8..a7a7d8f92cc79 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -1669,7 +1669,11 @@ where // our benchmarks are passing. match crate::Pallet::::eth_block_hash_from_number(block_number.into()) { Some(hash) => Some(hash), - None => Some(System::::block_hash(&block_number).into()), + None => { + use codec::Decode; + let block_hash = System::::block_hash(&block_number); + Decode::decode(&mut TrailingZeroInput::new(block_hash.as_ref())).ok() + }, } } } diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 1ec81afa059bf..100f7e0d9e44d 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -47,10 +47,10 @@ pub mod weights_utils; use crate::{ evm::{ block_hash::{EthereumBlockBuilderIR, ReceiptGasInfo}, - block_storage, - create_call, fees::InfoT as FeeInfo, runtime::SetWeightLimit, - CallTracer, GasEncoder, GenericTransaction, PrestateTracer, Trace, Tracer, TracerType, - TYPE_EIP1559, + block_storage, create_call, + fees::InfoT as FeeInfo, + runtime::SetWeightLimit, + CallTracer, GenericTransaction, PrestateTracer, Trace, Tracer, TracerType, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Stack as ExecStack}, gas::GasMeter, @@ -1610,7 +1610,7 @@ impl Pallet { // we need to parse the weight from the transaction so that it is run // using the exact weight limit passed by the eth wallet - let mut call_info = create_call::(tx, None) + let mut call_info = create_call::(tx, None, encoded_dummy_payload.clone()) .map_err(|err| EthTransactError::Message(format!("Invalid call: {err:?}")))?; // emulate transaction behavior @@ -1657,7 +1657,10 @@ impl Pallet { ))); }; - Default::default() + EthTransactInfo { + gas_required: T::FeeInfo::dispatch_info(&dispatch_call).total_weight(), + ..Default::default() + } } else { // Dry run the call. let result = crate::Pallet::::bare_call( @@ -1688,25 +1691,6 @@ impl Pallet { storage_deposit: result.storage_deposit.charge_or_zero(), data, eth_gas: Default::default(), - }; - - let (gas_limit, storage_deposit_limit) = T::EthGasEncoder::as_encoded_values( - result.gas_required, - result.storage_deposit, - ); - - let dispatch_call: ::RuntimeCall = crate::Call::::eth_call { - dest, - value, - gas_limit, - storage_deposit_limit, - data: input.clone(), - // Since this is a dry run, we don't need to pass the signed transaction - // payload. Instead, use a dummy value. The signed transaction - // will be provided by the user when the tx is submitted. - transaction_encoded: encoded_dummy_payload.clone(), - effective_gas_price: call_info.effective_gas_price, - encoded_len: encoded_dummy_payload.len() as u32, } } }, @@ -1749,36 +1733,10 @@ impl Pallet { storage_deposit: result.storage_deposit.charge_or_zero(), data: returned_data, eth_gas: Default::default(), - }; - - // Get the dispatch info of the call. - let (gas_limit, storage_deposit_limit) = T::EthGasEncoder::as_encoded_values( - result.gas_required, - result.storage_deposit, - ); - - let dispatch_call: ::RuntimeCall = - crate::Call::::eth_instantiate_with_code { - value, - gas_limit, - storage_deposit_limit, - code, - data, - transaction_encoded: encoded_dummy_payload.clone(), - effective_gas_price: call_info.effective_gas_price, - encoded_len: encoded_dummy_payload.len() as u32, - } - .into(); - (result, dispatch_call) + } }, }; - let eth_transact_call = crate::Call::::eth_transact { payload: encoded_dummy_payload }; - let fee = tx_fee(eth_transact_call.into(), dispatch_call); - let raw_gas = Self::evm_fee_to_gas(fee); - let eth_gas = - T::EthGasEncoder::encode(raw_gas, result.gas_required, result.storage_deposit); - // replace the weight passed in the transaction with the dry_run result call_info.call.set_weight_limit(dry_run.gas_required); @@ -2148,29 +2106,6 @@ impl Pallet { PalletId(*b"py/reviv").into_account_truncating() } - /// Returns true if the evm value carries dust. - fn has_dust(value: U256) -> bool { - value % U256::from(::NativeToEthRatio::get()) != U256::zero() - } - - /// Returns true if the evm value carries balance. - fn has_balance(value: U256) -> bool { - value >= U256::from(::NativeToEthRatio::get()) - } - - /// Return the existential deposit of [`Config::Currency`]. - fn min_balance() -> BalanceOf { - >>::minimum_balance() - } - - /// Deposit a pallet revive event. - /// - /// This method will be called by the EVM to deposit events emitted by the contract. - /// Therefore all events must be contract emitted events. - fn deposit_event(event: Event) { - >::deposit_event(::RuntimeEvent::from(event)) - } - /// The address of the validator that produced the current block. pub fn block_author() -> H160 { use frame_support::traits::FindAuthor; @@ -2308,7 +2243,10 @@ impl Pallet { >>::minimum_balance() } - /// Deposit a pallet contracts event. + /// Deposit a pallet revive event. + /// + /// This method will be called by the EVM to deposit events emitted by the contract. + /// Therefore all events must be contract emitted events. fn deposit_event(event: Event) { >::deposit_event(::RuntimeEvent::from(event)) } diff --git a/substrate/frame/revive/src/test_utils/builder.rs b/substrate/frame/revive/src/test_utils/builder.rs index 69c24a9649463..541d263db556d 100644 --- a/substrate/frame/revive/src/test_utils/builder.rs +++ b/substrate/frame/revive/src/test_utils/builder.rs @@ -15,11 +15,13 @@ // See the License for the specific language governing permissions and // limitations under the License. +use core::u32; + use super::{deposit_limit, GAS_LIMIT}; use crate::{ address::AddressMapper, evm::TransactionSigned, AccountIdOf, BalanceOf, Code, Config, - ContractResult, ExecConfig, ExecReturnValue, InstantiateReturnValue, OriginFor, Pallet, - Weight, U256, + ContractResult, ExecConfig, ExecReturnValue, InstantiateReturnValue, OriginFor, Pallet, Weight, + U256, }; use alloc::{vec, vec::Vec}; use frame_support::pallet_prelude::DispatchResultWithPostInfo; diff --git a/substrate/frame/revive/src/tests.rs b/substrate/frame/revive/src/tests.rs index 0fe48e04f22cd..12c02f69da740 100644 --- a/substrate/frame/revive/src/tests.rs +++ b/substrate/frame/revive/src/tests.rs @@ -241,12 +241,12 @@ pub(crate) mod builder { } pub fn eth_call(dest: H160) -> EthCallBuilder { - EthCallBuilder::::eth_call(RuntimeOrigin::signed(ALICE), dest) + EthCallBuilder::::eth_call(crate::Origin::::EthTransaction(ALICE).into(), dest) } pub fn eth_instantiate_with_code(code: Vec) -> EthInstantiateWithCodeBuilder { EthInstantiateWithCodeBuilder::::eth_instantiate_with_code( - RuntimeOrigin::signed(ALICE), + crate::Origin::::EthTransaction(ALICE).into(), code, ) } diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index 798a14b3ddca5..c9d62d414188e 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -58,7 +58,7 @@ fn transactions_are_captured() { ExtBuilder::default().existential_deposit(200).build().execute_with(|| { Contracts::on_initialize(0); - let _ = ::Currency::set_balance(&ALICE, 1_000_000); + let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); let Contract { addr, .. } = builder::bare_instantiate(Code::Upload(binary.clone())).build_and_unwrap_contract(); let balance = @@ -106,7 +106,7 @@ fn events_are_captured() { let (binary, code_hash) = compile_module("event_and_return_on_deploy").unwrap(); ExtBuilder::default().existential_deposit(200).build().execute_with(|| { - let _ = ::Currency::set_balance(&ALICE, 1_000_000); + let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); assert_ok!(Contracts::upload_code( RuntimeOrigin::signed(ALICE), @@ -121,8 +121,6 @@ fn events_are_captured() { let balance = Pallet::::convert_native_to_evm(BalanceWithDust::new_unchecked::(100, 10)); - - // Capture the EthInstantiate. assert_ok!(builder::eth_instantiate_with_code(binary).value(balance).build()); // The contract address is not exposed by the `eth_instantiate_with_code` call. diff --git a/substrate/frame/revive/src/tests/sol/block_info.rs b/substrate/frame/revive/src/tests/sol/block_info.rs index 4082628c67d1b..cbfa5f20a8127 100644 --- a/substrate/frame/revive/src/tests/sol/block_info.rs +++ b/substrate/frame/revive/src/tests/sol/block_info.rs @@ -20,176 +20,156 @@ use crate::{ test_utils::{builder::Contract, ALICE}, tests::{builder, Contracts, ExtBuilder, System, Test, Timestamp}, - vm::evm::{U256Converter, BASE_FEE, DIFFICULTY}, + vm::evm::DIFFICULTY, Code, Config, }; -use alloy_core::{primitives::U256, sol_types::SolInterface}; +use alloy_core::sol_types::{SolCall, SolInterface}; use frame_support::traits::fungible::Mutate; use pallet_revive_fixtures::{compile_module_with_type, BlockInfo, FixtureType}; use pretty_assertions::assert_eq; use sp_core::H160; +use test_case::test_case; /// Tests that the blocknumber opcode works as expected. -#[test] -fn block_number_works() { - for fixture_type in [FixtureType::Solc, FixtureType::Resolc] { - let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); - ExtBuilder::default().build().execute_with(|| { - let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); - let Contract { addr, .. } = - builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); - - System::set_block_number(42); - - let result = builder::bare_call(addr) - .data( - BlockInfo::BlockInfoCalls::blockNumber(BlockInfo::blockNumberCall {}) - .abi_encode(), - ) - .build_and_unwrap_result(); - assert_eq!( - U256::from(42u32), - U256::from_be_bytes::<32>(result.data.try_into().unwrap()) - ); - }); - } +#[test_case(FixtureType::Solc)] +#[test_case(FixtureType::Resolc)] +fn block_number_works(fixture_type: FixtureType) { + let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); + ExtBuilder::default().build().execute_with(|| { + let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); + let Contract { addr, .. } = + builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); + + System::set_block_number(42); + + let result = builder::bare_call(addr) + .data( + BlockInfo::BlockInfoCalls::blockNumber(BlockInfo::blockNumberCall {}).abi_encode(), + ) + .build_and_unwrap_result(); + let decoded = BlockInfo::blockNumberCall::abi_decode_returns(&result.data).unwrap(); + assert_eq!(42u64, decoded); + }); } /// Tests that the blockauthor opcode works as expected. -#[test] -fn block_author_works() { - for fixture_type in [FixtureType::Solc, FixtureType::Resolc] { - let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); - ExtBuilder::default().build().execute_with(|| { - let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); - let Contract { addr, .. } = - builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); - - let result = builder::bare_call(addr) - .data(BlockInfo::BlockInfoCalls::coinbase(BlockInfo::coinbaseCall {}).abi_encode()) - .build_and_unwrap_result(); - assert_eq!( - Contracts::block_author(), - // Padding is used into the 32 bytes - H160::from_slice(&result.data[12..]) - ); - }); - } +#[test_case(FixtureType::Solc)] +#[test_case(FixtureType::Resolc)] +fn block_author_works(fixture_type: FixtureType) { + let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); + ExtBuilder::default().build().execute_with(|| { + let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); + let Contract { addr, .. } = + builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); + + let result = builder::bare_call(addr) + .data(BlockInfo::BlockInfoCalls::coinbase(BlockInfo::coinbaseCall {}).abi_encode()) + .build_and_unwrap_result(); + let decoded = BlockInfo::coinbaseCall::abi_decode_returns(&result.data).unwrap(); + assert_eq!(Contracts::block_author(), H160::from_slice(decoded.as_slice())); + }); } /// Tests that the chainid opcode works as expected. -#[test] -fn chainid_works() { - for fixture_type in [FixtureType::Solc, FixtureType::Resolc] { - let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); - ExtBuilder::default().build().execute_with(|| { - let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); - let Contract { addr, .. } = - builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); - - let result = builder::bare_call(addr) - .data(BlockInfo::BlockInfoCalls::chainid(BlockInfo::chainidCall {}).abi_encode()) - .build_and_unwrap_result(); - assert_eq!( - U256::from(::ChainId::get()), - U256::from_be_bytes::<32>(result.data.try_into().unwrap()) - ); - }); - } +#[test_case(FixtureType::Solc)] +#[test_case(FixtureType::Resolc)] +fn chainid_works(fixture_type: FixtureType) { + let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); + ExtBuilder::default().build().execute_with(|| { + let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); + let Contract { addr, .. } = + builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); + + let result = builder::bare_call(addr) + .data(BlockInfo::BlockInfoCalls::chainid(BlockInfo::chainidCall {}).abi_encode()) + .build_and_unwrap_result(); + let decoded = BlockInfo::chainidCall::abi_decode_returns(&result.data).unwrap(); + assert_eq!(::ChainId::get() as u64, decoded); + }); } /// Tests that the timestamp opcode works as expected. -#[test] -fn timestamp_works() { - for fixture_type in [FixtureType::Solc, FixtureType::Resolc] { - let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); - ExtBuilder::default().build().execute_with(|| { - Timestamp::set_timestamp(2000); - let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); - let Contract { addr, .. } = - builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); - - let result = builder::bare_call(addr) - .data( - BlockInfo::BlockInfoCalls::timestamp(BlockInfo::timestampCall {}).abi_encode(), - ) - .build_and_unwrap_result(); - assert_eq!( - // Solidity expects timestamps in seconds, whereas pallet_timestamp uses - // milliseconds. - U256::from(Timestamp::get() / 1000), - U256::from_be_bytes::<32>(result.data.try_into().unwrap()) - ); - }); - } +#[test_case(FixtureType::Solc)] +#[test_case(FixtureType::Resolc)] +fn timestamp_works(fixture_type: FixtureType) { + let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); + ExtBuilder::default().build().execute_with(|| { + Timestamp::set_timestamp(2000); + let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); + let Contract { addr, .. } = + builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); + + let result = builder::bare_call(addr) + .data(BlockInfo::BlockInfoCalls::timestamp(BlockInfo::timestampCall {}).abi_encode()) + .build_and_unwrap_result(); + let decoded = BlockInfo::timestampCall::abi_decode_returns(&result.data).unwrap(); + assert_eq!( + // Solidity expects timestamps in seconds, whereas pallet_timestamp uses + // milliseconds. + (Timestamp::get() / 1000) as u64, + decoded + ); + }); } /// Tests that the gaslimit opcode works as expected. -#[test] -fn gaslimit_works() { - for fixture_type in [FixtureType::Solc, FixtureType::Resolc] { - let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); - ExtBuilder::default().build().execute_with(|| { - let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); - let Contract { addr, .. } = - builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); - - let result = builder::bare_call(addr) - .data(BlockInfo::BlockInfoCalls::gaslimit(BlockInfo::gaslimitCall {}).abi_encode()) - .build_and_unwrap_result(); - assert_eq!( - U256::from( - ::BlockWeights::get().max_block.ref_time() - ), - U256::from_be_bytes::<32>(result.data.try_into().unwrap()) - ); - }); - } +#[test_case(FixtureType::Solc)] +#[test_case(FixtureType::Resolc)] +fn gaslimit_works(fixture_type: FixtureType) { + let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); + ExtBuilder::default().build().execute_with(|| { + let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); + let Contract { addr, .. } = + builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); + + let result = builder::bare_call(addr) + .data(BlockInfo::BlockInfoCalls::gaslimit(BlockInfo::gaslimitCall {}).abi_encode()) + .build_and_unwrap_result(); + let decoded = BlockInfo::gaslimitCall::abi_decode_returns(&result.data).unwrap(); + assert_eq!( + ::BlockWeights::get().max_block.ref_time() as u64, + decoded + ); + }); } /// Tests that the basefee opcode works as expected. -#[test] -fn basefee_works() { - for fixture_type in [FixtureType::Solc, FixtureType::Resolc] { - let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); - ExtBuilder::default().build().execute_with(|| { - let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); - let Contract { addr, .. } = - builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); - - let result = builder::bare_call(addr) - .data(BlockInfo::BlockInfoCalls::basefee(BlockInfo::basefeeCall {}).abi_encode()) - .build_and_unwrap_result(); - assert_eq!( - BASE_FEE.into_revm_u256(), - U256::from_be_bytes::<32>(result.data.try_into().unwrap()) - ); - }); - } +#[test_case(FixtureType::Solc)] +#[test_case(FixtureType::Resolc)] +fn basefee_works(fixture_type: FixtureType) { + let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); + ExtBuilder::default().build().execute_with(|| { + let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); + let Contract { addr, .. } = + builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); + + let result = builder::bare_call(addr) + .data(BlockInfo::BlockInfoCalls::basefee(BlockInfo::basefeeCall {}).abi_encode()) + .build_and_unwrap_result(); + let decoded = BlockInfo::basefeeCall::abi_decode_returns(&result.data).unwrap(); + assert_eq!(0u64, decoded); + }); } /// Tests that the difficulty opcode works as expected. -#[test] -fn difficulty_works() { - for fixture_type in [FixtureType::Solc, FixtureType::Resolc] { - let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); - ExtBuilder::default().build().execute_with(|| { - let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); - let Contract { addr, .. } = - builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); - - let result = builder::bare_call(addr) - .data( - BlockInfo::BlockInfoCalls::difficulty(BlockInfo::difficultyCall {}) - .abi_encode(), - ) - .build_and_unwrap_result(); - assert_eq!( - // Alligned with the value set for PVM - U256::from(DIFFICULTY), - U256::from_be_bytes::<32>(result.data.try_into().unwrap()) - ); - }); - } +#[test_case(FixtureType::Solc)] +#[test_case(FixtureType::Resolc)] +fn difficulty_works(fixture_type: FixtureType) { + let (code, _) = compile_module_with_type("BlockInfo", fixture_type).unwrap(); + ExtBuilder::default().build().execute_with(|| { + let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); + let Contract { addr, .. } = + builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); + + let result = builder::bare_call(addr) + .data(BlockInfo::BlockInfoCalls::difficulty(BlockInfo::difficultyCall {}).abi_encode()) + .build_and_unwrap_result(); + let decoded = BlockInfo::difficultyCall::abi_decode_returns(&result.data).unwrap(); + assert_eq!( + // Aligned with the value set for PVM (truncated to u64) + DIFFICULTY as u64, + decoded + ); + }); } diff --git a/substrate/frame/revive/src/vm/evm/instructions/host.rs b/substrate/frame/revive/src/vm/evm/instructions/host.rs index f3792fba36076..db86c7690d6c4 100644 --- a/substrate/frame/revive/src/vm/evm/instructions/host.rs +++ b/substrate/frame/revive/src/vm/evm/instructions/host.rs @@ -242,7 +242,9 @@ pub fn log<'ext, const N: usize, E: Ext>( let topics = interpreter.stack.popn::()?; let topics = topics.into_iter().map(|v| sp_core::H256::from(v.to_big_endian())).collect(); - interpreter.ext.deposit_event(topics, data.to_vec())?; + if let Err(_) = interpreter.ext.deposit_event(topics, data.to_vec()) { + return ControlFlow::Break(Error::::TooManyEmittedEvents.into()); + } ControlFlow::Continue(()) } diff --git a/substrate/frame/revive/src/weights.rs b/substrate/frame/revive/src/weights.rs index 7a35191b8af3c..de5c316bc0dd7 100644 --- a/substrate/frame/revive/src/weights.rs +++ b/substrate/frame/revive/src/weights.rs @@ -729,13 +729,6 @@ impl WeightInfo for SubstrateWeight { // Minimum execution time: 277_000 picoseconds. Weight::from_parts(315_000, 0) } - fn seal_weight_to_fee() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 1_612_000 picoseconds. - Weight::from_parts(1_773_000, 0) - } /// The range of component `n` is `[0, 262140]`. fn seal_copy_to_contract(n: u32, ) -> Weight { // Proof Size summary in bytes: @@ -1978,13 +1971,6 @@ impl WeightInfo for () { // Minimum execution time: 277_000 picoseconds. Weight::from_parts(315_000, 0) } - fn seal_weight_to_fee() -> Weight { - // Proof Size summary in bytes: - // Measured: `0` - // Estimated: `0` - // Minimum execution time: 1_612_000 picoseconds. - Weight::from_parts(1_773_000, 0) - } /// The range of component `n` is `[0, 262140]`. fn seal_copy_to_contract(n: u32, ) -> Weight { // Proof Size summary in bytes: From 3d37952e864be920d1e5baa1d63c512d50a5c3a1 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Mon, 6 Oct 2025 14:44:10 +0200 Subject: [PATCH 229/273] revive: fix failing tests --- substrate/frame/revive/src/test_utils/builder.rs | 2 -- substrate/frame/revive/src/tests/block_hash.rs | 13 ++++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/src/test_utils/builder.rs b/substrate/frame/revive/src/test_utils/builder.rs index 541d263db556d..5a5f46751798f 100644 --- a/substrate/frame/revive/src/test_utils/builder.rs +++ b/substrate/frame/revive/src/test_utils/builder.rs @@ -15,8 +15,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -use core::u32; - use super::{deposit_limit, GAS_LIMIT}; use crate::{ address::AddressMapper, evm::TransactionSigned, AccountIdOf, BalanceOf, Code, Config, diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index c9d62d414188e..d9ea661b39988 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -18,14 +18,17 @@ //! The pallet-revive ETH block hash specific integration test suite. use crate::{ - evm::{block_hash::EthereumBlockBuilder, Block, TransactionSigned}, + evm::{block_hash::EthereumBlockBuilder, fees::InfoT, Block, TransactionSigned}, test_utils::{builder::Contract, deposit_limit, ALICE}, tests::{assert_ok, builder, Contracts, ExtBuilder, RuntimeOrigin, Test}, BalanceWithDust, Code, Config, EthBlock, EthBlockBuilderFirstValues, EthBlockBuilderIR, EthereumBlock, Pallet, ReceiptGasInfo, ReceiptInfoData, }; -use frame_support::traits::{fungible::Mutate, Hooks}; +use frame_support::traits::{ + fungible::{Balanced, Mutate}, + Hooks, +}; use pallet_revive_fixtures::compile_module; use alloy_consensus::RlpEncodableReceipt; @@ -64,6 +67,8 @@ fn transactions_are_captured() { let balance = Pallet::::convert_native_to_evm(BalanceWithDust::new_unchecked::(100, 10)); + ::FeeInfo::deposit_txfee(::Currency::issue(5_000_000_000)); + assert_ok!(builder::eth_call(addr).value(balance).build()); assert_ok!(builder::eth_instantiate_with_code(binary).value(balance).build()); @@ -118,9 +123,11 @@ fn events_are_captured() { // Bare call must not be captured. builder::bare_instantiate(Code::Existing(code_hash)).build_and_unwrap_contract(); - let balance = Pallet::::convert_native_to_evm(BalanceWithDust::new_unchecked::(100, 10)); + + ::FeeInfo::deposit_txfee(::Currency::issue(5_000_000_000)); + assert_ok!(builder::eth_instantiate_with_code(binary).value(balance).build()); // The contract address is not exposed by the `eth_instantiate_with_code` call. From b53514bbe895aff5bef0a70c6546eb6c99ab2c02 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Mon, 6 Oct 2025 15:22:07 +0200 Subject: [PATCH 230/273] revive: fix benchmarks --- substrate/frame/revive/src/benchmarking.rs | 31 ++++++++-------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index f945ab35384f9..319c7269f930c 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -21,8 +21,8 @@ use crate::{ call_builder::{caller_funding, default_deposit_limit, CallSetup, Contract, VmBinaryModule}, evm::{ - block_hash::EthereumBlockBuilder, block_storage, runtime::GAS_PRICE, - TransactionLegacyUnsigned, TransactionSigned, TransactionUnsigned, + block_hash::EthereumBlockBuilder, block_storage, TransactionLegacyUnsigned, + TransactionSigned, TransactionUnsigned, }, exec::{Key, PrecompileExt}, limits, @@ -60,13 +60,7 @@ use pallet_revive_uapi::{ pack_hi_lo, precompiles::system::ISystem, CallFlags, ReturnErrorCode, StorageFlags, }; pub use pallet_transaction_payment; -use revm::{ - bytecode::{opcode::EXTCODECOPY, Bytecode}, - interpreter::{ - host::DummyHost, interpreter_types::MemoryTr, InstructionContext, Interpreter, SharedMemory, - }, - primitives, -}; +use revm::bytecode::Bytecode; use sp_consensus_aura::AURA_ENGINE_ID; use sp_consensus_babe::{ digests::{PreDigest, PrimaryPreDigest}, @@ -122,7 +116,7 @@ fn whitelisted_pallet_account() -> T::AccountId { ::RuntimeCall: Dispatchable, T: pallet_transaction_payment::Config, - OnChargeTransactionBalanceOf: Into>, + // OnChargeTransactionBalanceOf: Into>, ::RuntimeEvent: From>, ::RuntimeCall: From>, ::Hash: frame_support::traits::IsType, @@ -2620,10 +2614,8 @@ mod benchmarks { } /// Helper function to generate common finalize_block benchmark setup - fn setup_finalize_block_benchmark() -> Result< - (Contract, T::RuntimeOrigin, BalanceOf, U256, SigningKey, BlockNumberFor), - BenchmarkError, - > + fn setup_finalize_block_benchmark( + ) -> Result<(Contract, BalanceOf, U256, SigningKey, BlockNumberFor), BenchmarkError> where BalanceOf: Into + TryFrom, T: Config, @@ -2637,7 +2629,6 @@ mod benchmarks { // Setup contract instance let instance = Contract::::with_caller(signer_caller.clone(), VmBinaryModule::dummy(), vec![])?; - let origin = RawOrigin::Signed(signer_caller.clone()).into(); let storage_deposit = default_deposit_limit::(); let value = Pallet::::min_balance(); let evm_value = @@ -2647,7 +2638,7 @@ mod benchmarks { let current_block = BlockNumberFor::::from(1u32); frame_system::Pallet::::set_block_number(current_block); - Ok((instance, origin, storage_deposit, evm_value, signer_key, current_block)) + Ok((instance, storage_deposit, evm_value, signer_key, current_block)) } /// Benchmark the `on_finalize` hook scaling with number of transactions. @@ -2668,7 +2659,7 @@ mod benchmarks { /// `total_cost = base + (n × per_tx_cost) + (total_bytes × per_byte_cost)` #[benchmark(pov_mode = Measured)] fn on_finalize_per_transaction(n: Linear<0, 200>) -> Result<(), BenchmarkError> { - let (instance, _origin, _storage_deposit, evm_value, signer_key, current_block) = + let (instance, _storage_deposit, evm_value, signer_key, current_block) = setup_finalize_block_benchmark::()?; // Fixed payload size to isolate transaction count effects @@ -2743,7 +2734,7 @@ mod benchmarks { /// `total_cost = base + (n × per_tx_cost) + (total_bytes × per_byte_cost)` #[benchmark(pov_mode = Measured)] fn on_finalize_per_transaction_data(d: Linear<0, 1000>) -> Result<(), BenchmarkError> { - let (instance, _origin, _storage_deposit, evm_value, signer_key, current_block) = + let (instance, _storage_deposit, evm_value, signer_key, current_block) = setup_finalize_block_benchmark::()?; // Fixed transaction count to isolate payload size effects @@ -2816,7 +2807,7 @@ mod benchmarks { /// - Per event: `on_finalize_per_event(e)` - linear scaling with event count #[benchmark(pov_mode = Measured)] fn on_finalize_per_event(e: Linear<0, 100>) -> Result<(), BenchmarkError> { - let (instance, _origin, _storage_deposit, evm_value, signer_key, current_block) = + let (instance, _storage_deposit, evm_value, signer_key, current_block) = setup_finalize_block_benchmark::()?; // Create a single transaction with e events, each with minimal data @@ -2878,7 +2869,7 @@ mod benchmarks { /// - Per byte: `on_finalize_per_event_data(d)` - linear scaling with data size #[benchmark(pov_mode = Measured)] fn on_finalize_per_event_data(d: Linear<0, 16384>) -> Result<(), BenchmarkError> { - let (instance, _origin, _storage_deposit, evm_value, signer_key, current_block) = + let (instance, _storage_deposit, evm_value, signer_key, current_block) = setup_finalize_block_benchmark::()?; // Create a single transaction with one event containing d bytes of data From e015a21bafbc406c4faa4639a5541f61c4eb8da0 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 10:12:18 +0000 Subject: [PATCH 231/273] revive/cargo: Remove default-features = false Signed-off-by: Alexandru Vasile --- substrate/frame/revive/Cargo.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/Cargo.toml b/substrate/frame/revive/Cargo.toml index 109353666f970..e8d63a67d7f9c 100644 --- a/substrate/frame/revive/Cargo.toml +++ b/substrate/frame/revive/Cargo.toml @@ -17,9 +17,9 @@ workspace = true targets = ["x86_64-unknown-linux-gnu"] [dependencies] -alloy-consensus = { workspace = true, default-features = false } +alloy-consensus = { workspace = true } alloy-core = { workspace = true, features = ["rlp", "sol-types"] } -alloy-trie = { workspace = true, default-features = false } +alloy-trie = { workspace = true } codec = { features = ["derive", "max-encoded-len"], workspace = true } derive_more = { workspace = true, features = ["from", "try_into"] } environmental = { workspace = true } @@ -96,7 +96,7 @@ std = [ "frame-support/std", "frame-system/std", "humantime-serde", - "k256/std", + "k256?/std", "log/std", "num-bigint/std", "num-integer/std", From 3476049644d62221c857f79f1fc4c7654f524ccb Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 10:16:25 +0000 Subject: [PATCH 232/273] revive/rpc: Add default-features = true to cargo toml Signed-off-by: Alexandru Vasile --- substrate/frame/revive/rpc/Cargo.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/rpc/Cargo.toml b/substrate/frame/revive/rpc/Cargo.toml index f4c3ff93c881f..44ddf4a80d046 100644 --- a/substrate/frame/revive/rpc/Cargo.toml +++ b/substrate/frame/revive/rpc/Cargo.toml @@ -20,8 +20,8 @@ name = "eth-rpc" path = "src/main.rs" [dependencies] -alloy-consensus = { workspace = true, default-features = false } -alloy-core = { workspace = true, features = ["sol-types"] } +alloy-consensus = { workspace = true, default-features = true } +alloy-core = { workspace = true, features = ["sol-types"], default-features = true } anyhow = { workspace = true } clap = { workspace = true, features = ["derive", "env"] } codec = { workspace = true, features = ["derive"] } @@ -36,7 +36,7 @@ sc-cli = { workspace = true, default-features = true } sc-rpc = { workspace = true, default-features = true } sc-rpc-api = { workspace = true, default-features = true } sc-service = { workspace = true, default-features = true } -serde = { workspace = true, default-features = false, features = ["alloc", "derive"] } +serde = { workspace = true, default-features = true, features = ["alloc", "derive"] } serde_json = { workspace = true } sp-arithmetic = { workspace = true, default-features = true } sp-core = { workspace = true, default-features = true } From 8fdd41e93bfc4ad7323d3524bfd0e3f3aaf0f8e9 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 10:56:26 +0000 Subject: [PATCH 233/273] revive: Avoid reencoding the tx Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/runtime.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index 0b28ce4b27291..d8ec32ec9501f 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -290,7 +290,6 @@ pub trait EthExtra { InvalidTransaction::BadProof })?; - let transaction_encoded = tx.signed_payload(); let signer = ::AddressMapper::to_fallback_account_id(&signer_addr); let base_fee = >::evm_gas_price(); let tx = GenericTransaction::from_signed(tx, base_fee, None); @@ -299,7 +298,7 @@ pub trait EthExtra { InvalidTransaction::Call })?; let call_info = - create_call::(tx, Some(encoded_len as u32), transaction_encoded)?; + create_call::(tx, Some(encoded_len as u32), payload.to_vec())?; let storage_credit = ::Currency::withdraw( &signer, call_info.storage_deposit, From d510e4f92d51f0357d2610a1b0e91ee826a034d3 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 11:02:32 +0000 Subject: [PATCH 234/273] revive: Pub export minimal types from block hash Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm.rs b/substrate/frame/revive/src/evm.rs index f1fa78d43cb4d..7157d04859878 100644 --- a/substrate/frame/revive/src/evm.rs +++ b/substrate/frame/revive/src/evm.rs @@ -27,7 +27,10 @@ pub mod fees; pub mod runtime; pub mod tx_extension; pub use alloy_core::sol_types::decode_revert_reason; -pub mod block_hash; + +/// Ethereum block hash builder related types. +pub(crate) mod block_hash; +pub use block_hash::{EthereumBlockBuilderIR, IncrementalHashBuilderIR, ReceiptGasInfo}; /// Ethereum block storage module. pub(crate) mod block_storage; From a0e6f5a1f78ff46bc656d48caa605ea47f99044b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 11:25:23 +0000 Subject: [PATCH 235/273] revive: Remove unneeded trait bounds for hooks Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 100f7e0d9e44d..6aa3d75e19dbf 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -773,16 +773,7 @@ pub mod pallet { } #[pallet::hooks] - impl Hooks> for Pallet - where - // We need this to place the substrate block - // hash into the logs of the receipts. - T::Hash: frame_support::traits::IsType, - ::RuntimeCall: - Dispatchable, - BalanceOf: Into + TryFrom, - MomentOf: Into, - { + impl Hooks> for Pallet { fn on_idle(_block: BlockNumberFor, limit: Weight) -> Weight { let mut meter = WeightMeter::with_limit(limit); ContractInfo::::process_deletion_queue_batch(&mut meter); From c77ccf2c2e1a9950aaa6e1e36c9b64600110ea42 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 11:36:00 +0000 Subject: [PATCH 236/273] revive: Rename weight_utils to weightinfo_extension mod Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 4 ++-- substrate/frame/revive/src/vm/runtime_costs.rs | 2 +- .../revive/src/{weights_utils.rs => weightinfo_extension.rs} | 0 3 files changed, 3 insertions(+), 3 deletions(-) rename substrate/frame/revive/src/{weights_utils.rs => weightinfo_extension.rs} (100%) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 6aa3d75e19dbf..048ed6aceaca3 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -41,8 +41,8 @@ pub mod migrations; pub mod precompiles; pub mod test_utils; pub mod tracing; +pub mod weightinfo_extension; pub mod weights; -pub mod weights_utils; use crate::{ evm::{ @@ -102,8 +102,8 @@ pub use frame_system::{self, limits::BlockWeights}; pub use primitives::*; pub use sp_core::{keccak_256, H160, H256, U256}; pub use sp_runtime; +pub use weightinfo_extension::OnFinalizeBlockParts; pub use weights::WeightInfo; -pub use weights_utils::OnFinalizeBlockParts; #[cfg(doc)] pub use crate::vm::pvm::SyscallDoc; diff --git a/substrate/frame/revive/src/vm/runtime_costs.rs b/substrate/frame/revive/src/vm/runtime_costs.rs index 57667eb854180..804c2581ae965 100644 --- a/substrate/frame/revive/src/vm/runtime_costs.rs +++ b/substrate/frame/revive/src/vm/runtime_costs.rs @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -use crate::{gas::Token, weights::WeightInfo, weights_utils::OnFinalizeBlockParts, Config}; +use crate::{gas::Token, weightinfo_extension::OnFinalizeBlockParts, weights::WeightInfo, Config}; use frame_support::weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}; /// Current approximation of the gas/s consumption considering diff --git a/substrate/frame/revive/src/weights_utils.rs b/substrate/frame/revive/src/weightinfo_extension.rs similarity index 100% rename from substrate/frame/revive/src/weights_utils.rs rename to substrate/frame/revive/src/weightinfo_extension.rs From 7d12deb78607fd3d89b36e496ac260782cb2e746 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 11:47:17 +0000 Subject: [PATCH 237/273] revive: Panic on API missuse from revive pallet Signed-off-by: Alexandru Vasile --- .../revive/src/evm/block_hash/hash_builder.rs | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs index 8065fa9df0e9a..f9d61cdb1bc64 100644 --- a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs @@ -245,17 +245,21 @@ impl IncrementalHashBuilder { if self.index == 0x7f { // Pushing the previous item since we are expecting the index // to be index + 1 in the sorted order. - if let Some(encoded_value) = self.first_value.take() { - log::debug!(target: LOG_TARGET, "Adding first value at index 0 while processing index 127"); - let rlp_index = rlp::encode_fixed_size(&0usize); - self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); + let encoded_value = self + .first_value + .take() + .expect("First value must be set when processing index 127; qed"); - // Update accounting if enabled - #[cfg(test)] - if self.stats.is_some() { - self.process_stats(value.len(), 0); - } + log::debug!(target: LOG_TARGET, "Adding first value at index 0 while processing index 127"); + + let rlp_index = rlp::encode_fixed_size(&0usize); + self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); + + // Update accounting if enabled + #[cfg(test)] + if self.stats.is_some() { + self.process_stats(value.len(), 0); } } From 608d4310660ea7d2e52d61fef8eaf4b36040b78b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 11:49:49 +0000 Subject: [PATCH 238/273] revive: Simplify processing test statistics Signed-off-by: Alexandru Vasile --- .../revive/src/evm/block_hash/hash_builder.rs | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs index f9d61cdb1bc64..555af7d9d484e 100644 --- a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs @@ -236,11 +236,9 @@ impl IncrementalHashBuilder { pub fn add_value(&mut self, value: Vec) { let rlp_index = rlp::encode_fixed_size(&self.index); self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &value); - // Update accounting if enabled + #[cfg(test)] - if self.stats.is_some() { - self.process_stats(value.len(), self.index); - } + self.process_stats(value.len(), self.index); if self.index == 0x7f { // Pushing the previous item since we are expecting the index @@ -258,9 +256,7 @@ impl IncrementalHashBuilder { // Update accounting if enabled #[cfg(test)] - if self.stats.is_some() { - self.process_stats(value.len(), 0); - } + self.process_stats(value.len(), 0); } self.index = self.index.saturating_add(1); @@ -289,11 +285,9 @@ impl IncrementalHashBuilder { let rlp_index = rlp::encode_fixed_size(&0usize); self.hash_builder.add_leaf(Nibbles::unpack(&rlp_index), &encoded_value); - // Update accounting if enabled + #[cfg(test)] - if self.stats.is_some() { - self.process_stats(encoded_value.len(), 0); - } + self.process_stats(encoded_value.len(), 0); } self.hash_builder.root().0.into() @@ -317,6 +311,10 @@ impl IncrementalHashBuilder { /// Update accounting metrics after processing data. #[cfg(test)] fn process_stats(&mut self, data_len: usize, index: u64) { + if self.stats.is_none() { + return + } + let hb_current_size = self.calculate_current_size(); let stats = self.stats.as_mut().unwrap(); From 4782a26745071a74af3b1451a908477dfbdb3d60 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 11:52:52 +0000 Subject: [PATCH 239/273] revive: Take tx on finalized weight into account Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 048ed6aceaca3..4fda09aea323e 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1245,6 +1245,8 @@ pub mod pallet { } } + let encoded_length = transaction_encoded.len() as u32; + block_storage::process_transaction::( transaction_encoded, output.result.is_ok(), @@ -1254,7 +1256,8 @@ pub mod pallet { let result = dispatch_result( output.result, output.gas_consumed, - ::WeightInfo::eth_call(Pallet::::has_dust(value).into()), + ::WeightInfo::eth_call(Pallet::::has_dust(value).into()) + .saturating_add(T::WeightInfo::on_finalize_block_per_tx(encoded_length)), ); T::FeeInfo::ensure_not_overdrawn(encoded_len, &info, result) }) From 63906e9ba6a1ee23476bc23c3457e130eeb3ec50 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 11:56:12 +0000 Subject: [PATCH 240/273] revive: Revert merge conflict EthTransactInfo Signed-off-by: Alexandru Vasile --- 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 4fda09aea323e..205e6343208bc 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1651,10 +1651,7 @@ impl Pallet { ))); }; - EthTransactInfo { - gas_required: T::FeeInfo::dispatch_info(&dispatch_call).total_weight(), - ..Default::default() - } + Default::default() } else { // Dry run the call. let result = crate::Pallet::::bare_call( From 390dc51c1befe937da1312ffa0d86135b1b3f51e Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 12:11:10 +0000 Subject: [PATCH 241/273] revive: Modify create_call signature Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/call.rs | 28 ++++++++++++----------- substrate/frame/revive/src/evm/runtime.rs | 2 +- substrate/frame/revive/src/lib.rs | 9 +------- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/substrate/frame/revive/src/evm/call.rs b/substrate/frame/revive/src/evm/call.rs index 37eff9b52388f..17249c8e24c19 100644 --- a/substrate/frame/revive/src/evm/call.rs +++ b/substrate/frame/revive/src/evm/call.rs @@ -50,8 +50,7 @@ pub struct CallInfo { /// Decode `tx` into a dispatchable call. pub fn create_call( tx: GenericTransaction, - encoded_len: Option, - transaction_encoded: Vec, + signed_transaction: Option<(u32, Vec)>, ) -> Result, InvalidTransaction> where T: Config, @@ -84,17 +83,20 @@ where return Err(InvalidTransaction::Payment); } - let encoded_len = if let Some(encoded_len) = encoded_len { - encoded_len - } else { - let unsigned_tx = tx.clone().try_into_unsigned().map_err(|_| { - log::debug!(target: LOG_TARGET, "Invalid transaction type."); - InvalidTransaction::Call - })?; - let eth_transact_call = - crate::Call::::eth_transact { payload: unsigned_tx.dummy_signed_payload() }; - ::FeeInfo::encoded_len(eth_transact_call.into()) - }; + let (encoded_len, transaction_encoded) = + if let Some((encoded_len, transaction_encoded)) = signed_transaction { + (encoded_len, transaction_encoded) + } else { + let unsigned_tx = tx.clone().try_into_unsigned().map_err(|_| { + log::debug!(target: LOG_TARGET, "Invalid transaction type."); + InvalidTransaction::Call + })?; + let transaction_encoded = unsigned_tx.dummy_signed_payload(); + + let eth_transact_call = + crate::Call::::eth_transact { payload: transaction_encoded.clone() }; + (::FeeInfo::encoded_len(eth_transact_call.into()), transaction_encoded) + }; let value = tx.value.unwrap_or_default(); let data = tx.input.to_vec(); diff --git a/substrate/frame/revive/src/evm/runtime.rs b/substrate/frame/revive/src/evm/runtime.rs index d8ec32ec9501f..aeb5d90cd2fbb 100644 --- a/substrate/frame/revive/src/evm/runtime.rs +++ b/substrate/frame/revive/src/evm/runtime.rs @@ -298,7 +298,7 @@ pub trait EthExtra { InvalidTransaction::Call })?; let call_info = - create_call::(tx, Some(encoded_len as u32), payload.to_vec())?; + create_call::(tx, Some((encoded_len as u32, payload.to_vec())))?; let storage_credit = ::Currency::withdraw( &signer, call_info.storage_deposit, diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 205e6343208bc..9ab61387200fc 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -1589,13 +1589,6 @@ impl Pallet { tx.r#type = Some(TYPE_EIP1559.into()); } - let Ok(unsigned) = tx.clone().try_into_unsigned() else { - return Err(EthTransactError::Message("Failed to convert to unsigned tx".into())); - }; - const DUMMY_SIGNATURE: [u8; 65] = [1u8; 65]; - let dummy_signed = unsigned.with_signature(DUMMY_SIGNATURE); - let encoded_dummy_payload = dummy_signed.signed_payload(); - // Store values before moving the tx let value = tx.value.unwrap_or_default(); let input = tx.input.clone().to_vec(); @@ -1604,7 +1597,7 @@ impl Pallet { // we need to parse the weight from the transaction so that it is run // using the exact weight limit passed by the eth wallet - let mut call_info = create_call::(tx, None, encoded_dummy_payload.clone()) + let mut call_info = create_call::(tx, None) .map_err(|err| EthTransactError::Message(format!("Invalid call: {err:?}")))?; // emulate transaction behavior From c6ba22d2184fc2f04db1e5c5a344da414ad0d3d0 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 12:20:15 +0000 Subject: [PATCH 242/273] =?UTF-8?q?revive/runtime=5Fapi:=20Add=20eth=5Frec?= =?UTF-8?q?eipt=5Fdata=C2=A0to=20extract=20gas=20info=20from=20storage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 9ab61387200fc..37b9908ce0a15 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -46,11 +46,9 @@ pub mod weights; use crate::{ evm::{ - block_hash::{EthereumBlockBuilderIR, ReceiptGasInfo}, - block_storage, create_call, - fees::InfoT as FeeInfo, - runtime::SetWeightLimit, - CallTracer, GenericTransaction, PrestateTracer, Trace, Tracer, TracerType, TYPE_EIP1559, + block_hash::EthereumBlockBuilderIR, block_storage, create_call, fees::InfoT as FeeInfo, + runtime::SetWeightLimit, CallTracer, GenericTransaction, PrestateTracer, Trace, Tracer, + TracerType, TYPE_EIP1559, }, exec::{AccountIdOf, ExecError, Executable, Stack as ExecStack}, gas::GasMeter, @@ -91,7 +89,7 @@ pub use crate::{ address::{ create1, create2, is_eth_derived, AccountId32Mapper, AddressMapper, TestAccountMapper, }, - evm::{Address as EthAddress, Block as EthBlock, ReceiptInfo}, + evm::{block_hash::ReceiptGasInfo, Address as EthAddress, Block as EthBlock, ReceiptInfo}, exec::{Key, MomentOf, Origin as ExecOrigin}, pallet::{genesis, *}, storage::{AccountInfo, ContractInfo}, @@ -1795,6 +1793,11 @@ impl Pallet { } } + /// The details needed to reconstruct the receipt information offchain. + pub fn eth_receipt_data() -> Vec { + ReceiptInfoData::::get() + } + /// Set the EVM balance of an account. /// /// The account's total balance becomes the EVM value plus the existential deposit, @@ -2271,6 +2274,13 @@ sp_api::decl_runtime_apis! { /// Returns the ETH block hash for the given block number. fn eth_block_hash(number: U256) -> Option; + /// The details needed to reconstruct the receipt information offchain. + /// + /// # Note + /// + /// Each entry corresponds to the appropriate Ethereum transaction in the current block. + fn eth_receipt_data() -> Vec; + /// Returns the block gas limit. fn block_gas_limit() -> U256; @@ -2433,6 +2443,10 @@ macro_rules! impl_runtime_apis_plus_revive_traits { $crate::Pallet::::eth_block_hash_from_number(number) } + fn eth_receipt_data() -> Vec<$crate::ReceiptGasInfo> { + $crate::Pallet::::eth_receipt_data() + } + fn balance(address: $crate::H160) -> $crate::U256 { $crate::Pallet::::evm_balance(&address) } From 12e3cb53ec9cfd7c326d0c416175dde25886a41b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 12:43:51 +0000 Subject: [PATCH 243/273] revive: Revert hard cap limits for depositng events Signed-off-by: Alexandru Vasile --- substrate/frame/assets/precompiles/src/lib.rs | 4 +--- substrate/frame/revive/src/exec.rs | 19 ++----------------- substrate/frame/revive/src/lib.rs | 2 -- .../revive/src/vm/evm/instructions/host.rs | 5 ++--- substrate/frame/revive/src/vm/pvm/env.rs | 2 +- 5 files changed, 6 insertions(+), 26 deletions(-) diff --git a/substrate/frame/assets/precompiles/src/lib.rs b/substrate/frame/assets/precompiles/src/lib.rs index fdc87b1499f17..c9f41a4581b86 100644 --- a/substrate/frame/assets/precompiles/src/lib.rs +++ b/substrate/frame/assets/precompiles/src/lib.rs @@ -120,7 +120,6 @@ where const ERR_INVALID_CALLER: &str = "Invalid caller"; const ERR_BALANCE_CONVERSION_FAILED: &str = "Balance conversion failed"; -const ERR_MAX_EVENTS_REACHED: &str = "Maximum number of events reached"; impl ERC20 where @@ -168,8 +167,7 @@ where num_topic: topics.len() as u32, len: topics.len() as u32, })?; - env.deposit_event(topics, data.to_vec()) - .map_err(|_| Error::Revert(Revert { reason: ERR_MAX_EVENTS_REACHED.into() }))?; + env.deposit_event(topics, data.to_vec()); Ok(()) } diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index a7a7d8f92cc79..8aa0acc73fea1 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -387,9 +387,7 @@ pub trait PrecompileExt: sealing::Sealed { /// Deposit an event with the given topics. /// /// There should not be any duplicates in `topics`. - /// - /// Returns an error if the maximum number of events has been reached. - fn deposit_event(&mut self, topics: Vec, data: Vec) -> Result<(), DispatchError>; + fn deposit_event(&mut self, topics: Vec, data: Vec); /// Returns the current block number. fn block_number(&self) -> U256; @@ -548,11 +546,6 @@ pub struct Stack<'a, T: Config, E> { transient_storage: TransientStorage, /// Global behavior determined by the creater of this stack. exec_config: &'a ExecConfig, - /// The number of emitted events. - /// - /// When this reaches the maximum allowed number of events, no further events - /// can be emitted, and the transaction will fail. - emitted_events: u32, /// No executable is held by the struct but influences its behaviour. _phantom: PhantomData, } @@ -953,7 +946,6 @@ where frames: Default::default(), transient_storage: TransientStorage::new(limits::TRANSIENT_STORAGE_BYTES), exec_config, - emitted_events: 0, _phantom: Default::default(), }; @@ -2113,14 +2105,7 @@ where crate::Pallet::::convert_native_to_evm(min) } - fn deposit_event(&mut self, topics: Vec, data: Vec) -> Result<(), DispatchError> { - // Increment the emitted events counter and check if the limit is exceeded - self.emitted_events = self.emitted_events.saturating_add(1); - - if self.emitted_events > limits::NUM_EMITTED_EVENTS { - return Err(Error::::TooManyEmittedEvents.into()); - } - + fn deposit_event(&mut self, topics: Vec, data: Vec) { let contract = T::AddressMapper::to_address(self.account_id()); if_tracing(|tracer| { tracer.log_event(contract, &topics, &data); diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 37b9908ce0a15..ac7509465cdf0 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -530,8 +530,6 @@ pub mod pallet { /// /// This happens if the passed `gas` inside the ethereum transaction is too low. TxFeeOverdraw = 0x35, - /// The amount of emitted events exceeds [`limits::NUM_EMITTED_EVENTS`]. - TooManyEmittedEvents = 0x36, } /// A reason for the pallet revive placing a hold on funds. diff --git a/substrate/frame/revive/src/vm/evm/instructions/host.rs b/substrate/frame/revive/src/vm/evm/instructions/host.rs index db86c7690d6c4..aec40ef00531c 100644 --- a/substrate/frame/revive/src/vm/evm/instructions/host.rs +++ b/substrate/frame/revive/src/vm/evm/instructions/host.rs @@ -242,9 +242,8 @@ pub fn log<'ext, const N: usize, E: Ext>( let topics = interpreter.stack.popn::()?; let topics = topics.into_iter().map(|v| sp_core::H256::from(v.to_big_endian())).collect(); - if let Err(_) = interpreter.ext.deposit_event(topics, data.to_vec()) { - return ControlFlow::Break(Error::::TooManyEmittedEvents.into()); - } + interpreter.ext.deposit_event(topics, data.to_vec()); + ControlFlow::Continue(()) } diff --git a/substrate/frame/revive/src/vm/pvm/env.rs b/substrate/frame/revive/src/vm/pvm/env.rs index 82268b63dcf2f..49f54ce3532d4 100644 --- a/substrate/frame/revive/src/vm/pvm/env.rs +++ b/substrate/frame/revive/src/vm/pvm/env.rs @@ -716,7 +716,7 @@ pub mod env { }; let event_data = memory.read(data_ptr, data_len)?; - self.ext.deposit_event(topics, event_data)?; + self.ext.deposit_event(topics, event_data); Ok(()) } From 842b0618a4e74633d3e8bb883c1eeeb51d68a926 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 12:45:50 +0000 Subject: [PATCH 244/273] revive: Fix return of deposit_event fn Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/exec.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index 8aa0acc73fea1..1cd49e2098cce 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -2115,7 +2115,6 @@ where block_storage::capture_ethereum_log(&contract, &data, &topics); Contracts::::deposit_event(Event::ContractEmitted { contract, data, topics }); - Ok(()) } fn block_number(&self) -> U256 { From 2512cfbed1323db381220e5910d3a6465ab133ba Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 12:55:28 +0000 Subject: [PATCH 245/273] revive: Export only ReceiptGasInfo as gas info Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm.rs b/substrate/frame/revive/src/evm.rs index 7157d04859878..b22322fdf3b55 100644 --- a/substrate/frame/revive/src/evm.rs +++ b/substrate/frame/revive/src/evm.rs @@ -30,7 +30,7 @@ pub use alloy_core::sol_types::decode_revert_reason; /// Ethereum block hash builder related types. pub(crate) mod block_hash; -pub use block_hash::{EthereumBlockBuilderIR, IncrementalHashBuilderIR, ReceiptGasInfo}; +pub use block_hash::ReceiptGasInfo; /// Ethereum block storage module. pub(crate) mod block_storage; From d5193636bfcc8ad86fa69150b58bf512ec870096 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 13:17:24 +0000 Subject: [PATCH 246/273] revive: Use default instead of new methods for incremental builder Signed-off-by: Alexandru Vasile --- .../src/evm/block_hash/block_builder.rs | 20 +++-------- .../revive/src/evm/block_hash/hash_builder.rs | 33 ++++++++++--------- 2 files changed, 22 insertions(+), 31 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash/block_builder.rs b/substrate/frame/revive/src/evm/block_hash/block_builder.rs index 13dcf173c97f0..3318d2058466d 100644 --- a/substrate/frame/revive/src/evm/block_hash/block_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/block_builder.rs @@ -41,6 +41,7 @@ const LOG_TARGET: &str = "runtime::revive::block_builder"; /// /// This builder is optimized to minimize memory usage and pallet storage by leveraging the internal /// structure of the Ethereum trie and the RLP encoding of receipts. +#[derive(Default)] pub struct EthereumBlockBuilder { pub(crate) transaction_root_builder: IncrementalHashBuilder, pub(crate) receipts_root_builder: IncrementalHashBuilder, @@ -52,19 +53,6 @@ pub struct EthereumBlockBuilder { } impl EthereumBlockBuilder { - /// Constructs a new [`EthereumBlockBuilder`]. - pub fn new() -> Self { - Self { - transaction_root_builder: IncrementalHashBuilder::new(), - receipts_root_builder: IncrementalHashBuilder::new(), - gas_used: U256::zero(), - tx_hashes: Vec::new(), - logs_bloom: LogsBloom::new(), - gas_info: Vec::new(), - _phantom: core::marker::PhantomData, - } - } - /// Converts the builder into an intermediate representation. /// /// The intermediate representation is extracted from the pallet storage. @@ -317,7 +305,7 @@ mod test { let manual_hash = manual_trie_root_compute(rlp_values.clone()); let mut first_value = Some(rlp_values[0].clone()); - let mut builder = IncrementalHashBuilder::new(); + let mut builder = IncrementalHashBuilder::default(); for rlp_value in rlp_values.iter().skip(1) { if builder.needs_first_value(BuilderPhase::ProcessingValue) { let value = first_value.take().expect("First value must be present; qed"); @@ -405,7 +393,7 @@ mod test { ExtBuilder::default().build().execute_with(|| { // Build the ethereum block incrementally. - let mut incremental_block = EthereumBlockBuilder::::new(); + let mut incremental_block = EthereumBlockBuilder::::default(); for (signed, logs, success, gas_used) in transaction_details { let mut log_size = 0; @@ -458,7 +446,7 @@ mod test { } println!("Total size used by transactions: {:?}", total_size); - let mut builder = IncrementalHashBuilder::new(); + let mut builder = IncrementalHashBuilder::default(); let mut loaded = false; for tx in encoded_tx.iter().skip(1) { if builder.needs_first_value(BuilderPhase::ProcessingValue) { diff --git a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs index 555af7d9d484e..ed13b9c9acfae 100644 --- a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs @@ -101,6 +101,20 @@ pub struct IncrementalHashBuilder { stats: Option, } +impl Default for IncrementalHashBuilder { + fn default() -> Self { + Self { + // First deserialization time from the pallet storage, is expected + // to contain index 1. + index: 1, + hash_builder: HashBuilder::default(), + first_value: None, + #[cfg(test)] + stats: None, + } + } +} + /// Accounting data for the hash builder, used for testing and analysis. #[cfg(test)] #[derive(Debug, Clone)] @@ -147,17 +161,6 @@ impl core::fmt::Display for HashBuilderStats { } impl IncrementalHashBuilder { - /// Construct the hash builder from the first value. - pub fn new() -> Self { - Self { - hash_builder: HashBuilder::default(), - index: 1, - first_value: None, - #[cfg(test)] - stats: None, - } - } - /// Converts the intermediate representation back into a builder. pub fn from_ir(serialized: IncrementalHashBuilderIR) -> Self { let value = match serialized.value_type { @@ -448,7 +451,7 @@ mod tests { #[test] fn test_hash_builder_stats() { - let mut builder = IncrementalHashBuilder::new(); + let mut builder = IncrementalHashBuilder::default(); builder.enable_stats(); let stats = builder.get_stats().expect("Stats should be enabled"); @@ -477,7 +480,7 @@ mod tests { #[test] fn test_hash_builder_without_stats() { - let mut builder = IncrementalHashBuilder::new(); + let mut builder = IncrementalHashBuilder::default(); // Without enabling stats assert!(builder.get_stats().is_none()); @@ -501,7 +504,7 @@ mod tests { ] { println!("\n=== Testing Hash Builder with {item_count} items ==="); - let mut builder = IncrementalHashBuilder::new(); + let mut builder = IncrementalHashBuilder::default(); builder.enable_stats(); let initial_stats = builder.get_stats().unwrap(); @@ -544,7 +547,7 @@ mod tests { fn test_ir_size_calculation() { println!("\n=== Testing IncrementalHashBuilderIR Size Calculation ==="); - let mut builder = IncrementalHashBuilder::new(); + let mut builder = IncrementalHashBuilder::default(); builder.enable_stats(); // Calculate initial IR size (we need to restore the builder after to_ir()) From 74b14bea4d2941fa0bef27f2157457a79d0aaf6f Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 16:26:51 +0000 Subject: [PATCH 247/273] revive: Add comments about mem usage Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 51 +++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index ac7509465cdf0..47af5a973c2c1 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -808,6 +808,57 @@ pub mod pallet { // stack, keeping the rest for other facilities, such as PoV, etc. const TOTAL_MEMORY_DEVIDER: u32 = 2; + // The `EthereumBlockBuilder` builds the Ethereum-compatible block by maintaining + // two incremental hash builders. Each builder accumulates entries until the trie + // is finalized: + // 1. `transactions_root` - builds the Merkle root of transaction payloads + // 2. `receipts_root` - builds the Merkle root of transaction receipts (event logs) + // + // The `EthereumBlockBuilder` is serialized and deserialized to and from storage + // on every transaction via the `EthereumBlockBuilderIR` object. This is needed until + // the runtime exposes a better API to preserve the state between transactions (ie, + // the global `environment!` is wiped because each transaction will instantiate a new + // WASM instance). + // + // For this reason, we need to account for the memory used by the `EthereumBlockBuilder` + // and for the pallet storage consumed by the `EthereumBlockBuilderIR`. + // + // ## Memory Usage Analysis + // + // The incremental hash builder accumulates entries until the trie is finalized. + // The last added entry value is kept in memory until it can be hashed. + // The keys are always ordered and the hashing happens when the next entry is added to + // the trie. The common prefix of the current and previous keys forms the path into the + // trie, and together with the value of the previous entry, a hash of 32 bytes is + // computed. + // + // For this reason, the memory usage of the incremental hash builder is no greater + // than two entries of maximum size, plus some marginal book-keeping overhead + // (ignored to simplify calculations). + // + // `IncrementalHashBuilder = 2 * maximum size of the entry` + // + // Additionally, the block builder caches the first entry for each incremental hash. + // The entry is loaded from storage into RAM when either: + // - The block is finalized, OR + // - After 127 transactions. + // Therefore, an additional entry of maximum size is needed in memory. + // + // That gives us 3 items of maximum size per each hash builder. + // + // `EthereumBlockBuilder = 3 * (max size of transactions + max size of receipts)` + // The maximum size of a transaction is limited by + // `limits::MAX_TRANSACTION_PAYLOAD_SIZE`, while the maximum size of a receipt is + // limited by `limits::PAYLOAD_BYTES`. + // + // Similarly, this is the amount of pallet storage consumed by the + // `EthereumBlockBuilderIR` object, plus a marginal book-keeping overhead. + let max_incremental_trie_builder_size = + // `receipts_root` hash builder + limits::NUM_EMITTED_EVENTS.saturating_mul(limits::PAYLOAD_BYTES.saturating_mul(3)) + // `transactions_root` hash builder + .saturating_add(limits::MAX_TRANSACTION_PAYLOAD_SIZE.saturating_mul(3)); + // Check that the configured memory limits fit into runtime memory. // // Dynamic allocations are not available, yet. Hence they are not taken into From cc45e767af49e37129c839cee5ac8cfe4692433f Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 16:28:15 +0000 Subject: [PATCH 248/273] revive: Ensure memory builder is taken into account Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 47af5a973c2c1..4f5feefa3ed49 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -853,7 +853,7 @@ pub mod pallet { // // Similarly, this is the amount of pallet storage consumed by the // `EthereumBlockBuilderIR` object, plus a marginal book-keeping overhead. - let max_incremental_trie_builder_size = + let max_eth_block_builder_size = // `receipts_root` hash builder limits::NUM_EMITTED_EVENTS.saturating_mul(limits::PAYLOAD_BYTES.saturating_mul(3)) // `transactions_root` hash builder @@ -866,6 +866,7 @@ pub mod pallet { let memory_left = i64::from(max_runtime_mem) .saturating_div(TOTAL_MEMORY_DEVIDER.into()) .saturating_sub(limits::MEMORY_REQUIRED.into()); + .saturating_sub(max_eth_block_builder_size.into()); log::debug!(target: LOG_TARGET, "Integrity check: memory_left={} KB", memory_left / 1024); From 7742c4e9e2426075fc8e9c3bea74c3cc7976908a Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 16:45:05 +0000 Subject: [PATCH 249/273] revive: Take mem usage and storage usage into account for integrity Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/block_storage.rs | 59 +++++++++++++++++++ substrate/frame/revive/src/lib.rs | 42 ++----------- substrate/frame/revive/src/limits.rs | 7 --- 3 files changed, 63 insertions(+), 45 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_storage.rs b/substrate/frame/revive/src/evm/block_storage.rs index 758b598911ccf..b5a6ba207d905 100644 --- a/substrate/frame/revive/src/evm/block_storage.rs +++ b/substrate/frame/revive/src/evm/block_storage.rs @@ -17,6 +17,7 @@ use crate::{ evm::block_hash::{AccumulateReceipt, EthereumBlockBuilder, LogsBloom}, + limits, sp_runtime::traits::One, BlockHash, Config, EthBlockBuilderIR, EthereumBlock, ReceiptInfoData, UniqueSaturatedInto, H160, H256, @@ -135,3 +136,61 @@ pub fn process_transaction( EthBlockBuilderIR::::put(block_builder.to_ir()); } + +// The `EthereumBlockBuilder` builds the Ethereum-compatible block by maintaining +// two incremental hash builders. Each builder accumulates entries until the trie +// is finalized: +// 1. `transactions_root` - builds the Merkle root of transaction payloads +// 2. `receipts_root` - builds the Merkle root of transaction receipts (event logs) +// +// The `EthereumBlockBuilder` is serialized and deserialized to and from storage +// on every transaction via the `EthereumBlockBuilderIR` object. This is needed until +// the runtime exposes a better API to preserve the state between transactions (ie, +// the global `environment!` is wiped because each transaction will instantiate a new +// WASM instance). +// +// For this reason, we need to account for the memory used by the `EthereumBlockBuilder` +// and for the pallet storage consumed by the `EthereumBlockBuilderIR`. +// +// ## Memory Usage Analysis +// +// The incremental hash builder accumulates entries until the trie is finalized. +// The last added entry value is kept in memory until it can be hashed. +// The keys are always ordered and the hashing happens when the next entry is added to +// the trie. The common prefix of the current and previous keys forms the path into the +// trie, and together with the value of the previous entry, a hash of 32 bytes is +// computed. +// +// For this reason, the memory usage of the incremental hash builder is no greater +// than two entries of maximum size, plus some marginal book-keeping overhead +// (ignored to simplify calculations). +// +// `IncrementalHashBuilder = 2 * maximum size of the entry` +// +// Additionally, the block builder caches the first entry for each incremental hash. +// The entry is loaded from storage into RAM when either: +// - The block is finalized, OR +// - After 127 transactions. +// Therefore, an additional entry of maximum size is needed in memory. +// +// That gives us 3 items of maximum size per each hash builder. +// +// `EthereumBlockBuilder = 3 * (max size of transactions + max size of receipts)` +// The maximum size of a transaction is limited by +// `limits::MAX_TRANSACTION_PAYLOAD_SIZE`, while the maximum size of a receipt is +// limited by `limits::PAYLOAD_BYTES`. +// +// Similarly, this is the amount of pallet storage consumed by the +// `EthereumBlockBuilderIR` object, plus a marginal book-keeping overhead. +pub fn block_builder_bytes_usage() -> u32 { + // A block builder requires 3 times the maximum size of the entry. + const MEMORY_COEFFICIENT: u32 = 3; + + // `receipts_root` hash builder + let receipts_hash_builder = limits::PAYLOAD_BYTES.saturating_mul(MEMORY_COEFFICIENT); + // `transactions_root` hash builder + let transactions_hash_builder = + limits::MAX_TRANSACTION_PAYLOAD_SIZE.saturating_mul(MEMORY_COEFFICIENT); + + receipts_hash_builder.saturating_add(transactions_hash_builder) +} diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 4f5feefa3ed49..1e1bc986becbd 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -853,11 +853,7 @@ pub mod pallet { // // Similarly, this is the amount of pallet storage consumed by the // `EthereumBlockBuilderIR` object, plus a marginal book-keeping overhead. - let max_eth_block_builder_size = - // `receipts_root` hash builder - limits::NUM_EMITTED_EVENTS.saturating_mul(limits::PAYLOAD_BYTES.saturating_mul(3)) - // `transactions_root` hash builder - .saturating_add(limits::MAX_TRANSACTION_PAYLOAD_SIZE.saturating_mul(3)); + let max_eth_block_builder_bytes = block_storage::block_builder_bytes_usage(); // Check that the configured memory limits fit into runtime memory. // @@ -865,8 +861,8 @@ pub mod pallet { // consideration here. let memory_left = i64::from(max_runtime_mem) .saturating_div(TOTAL_MEMORY_DEVIDER.into()) - .saturating_sub(limits::MEMORY_REQUIRED.into()); - .saturating_sub(max_eth_block_builder_size.into()); + .saturating_sub(limits::MEMORY_REQUIRED.into()) + .saturating_sub(max_eth_block_builder_bytes.into()); log::debug!(target: LOG_TARGET, "Integrity check: memory_left={} KB", memory_left / 1024); @@ -913,6 +909,7 @@ pub mod pallet { .ref_time())) .saturating_mul(max_payload_size.saturating_add(max_key_size) as u64)) .saturating_add(max_immutable_size.into()) + .saturating_add(max_eth_block_builder_bytes.into()) .try_into() .expect("Storage size too big"); @@ -946,37 +943,6 @@ pub mod pallet { max_events_size, storage_size_limit ); - - // Storage is used for `EthereumBlockBuilderIR`, which builds Ethereum-compatible blocks - // by maintaining two incremental hash builders: - // 1. `transactions_root` - builds the Merkle root of transaction payloads - // 2. `receipts_root` - builds the Merkle root of transaction receipts (event logs) - // - // Memory usage analysis: - // Each incremental hash builder accumulates entries until the trie is finalized. - // Hash builder memory usage is no greater than the sum of the consecutive entries - // of maximum size + some marginal book-keeping overhead (ignored to simplify - // calculations). - // = 2 x maximum size of the entry - // - // Additionally, `EthBlockBuilderFirstValues` caches the first entry for each hash - // builder, which gets processed when either: - // - The block is finalized, OR - // - After 127 transactions (implementation batch limit) - // = 1 x maximum size of the entry - // - // That gives us 3 items of maximum size per each hash builder - let max_incremental_trie_builder_size = - // `receipts_root` hash builder - limits::NUM_EMITTED_EVENTS.saturating_mul(limits::PAYLOAD_BYTES.saturating_mul(3)) - // `transactions_root` hash builder - .saturating_add(limits::MAX_TRANSACTION_PAYLOAD_SIZE.saturating_mul(3)); - assert!( - max_incremental_trie_builder_size < storage_size_limit, - "Maximal incremental trie builder size {} exceeds the limit {}", - max_incremental_trie_builder_size, - storage_size_limit - ); } } diff --git a/substrate/frame/revive/src/limits.rs b/substrate/frame/revive/src/limits.rs index f40ff4f90a0e7..54b6b784a4a41 100644 --- a/substrate/frame/revive/src/limits.rs +++ b/substrate/frame/revive/src/limits.rs @@ -48,13 +48,6 @@ pub const CALL_STACK_DEPTH: u32 = 25; /// We set it to the same limit that ethereum has. It is unlikely to change. pub const NUM_EVENT_TOPICS: u32 = 4; -/// The maximum number of events a call to [`crate::SyscallDoc::deposit_event`] can emit. -/// -/// It is unlikely that a single contract call needs to emit more than 512 events. -/// This limit is in place to prevent a single contract call from filling up the memory -/// with events. -pub const NUM_EMITTED_EVENTS: u32 = 512; - /// Maximum size of events (including topics) and storage values. pub const PAYLOAD_BYTES: u32 = 416; From 9e57597f5d7bce514e6d665fbaafe059b3035e23 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 16:53:47 +0000 Subject: [PATCH 250/273] revive: Take event limits into account Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/block_storage.rs | 4 +- substrate/frame/revive/src/exec/mock_ext.rs | 2 +- substrate/frame/revive/src/lib.rs | 127 ++++++------------ 3 files changed, 45 insertions(+), 88 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_storage.rs b/substrate/frame/revive/src/evm/block_storage.rs index b5a6ba207d905..014849e09a611 100644 --- a/substrate/frame/revive/src/evm/block_storage.rs +++ b/substrate/frame/revive/src/evm/block_storage.rs @@ -182,12 +182,12 @@ pub fn process_transaction( // // Similarly, this is the amount of pallet storage consumed by the // `EthereumBlockBuilderIR` object, plus a marginal book-keeping overhead. -pub fn block_builder_bytes_usage() -> u32 { +pub fn block_builder_bytes_usage(max_events_size: u32) -> u32 { // A block builder requires 3 times the maximum size of the entry. const MEMORY_COEFFICIENT: u32 = 3; // `receipts_root` hash builder - let receipts_hash_builder = limits::PAYLOAD_BYTES.saturating_mul(MEMORY_COEFFICIENT); + let receipts_hash_builder = max_events_size.saturating_mul(MEMORY_COEFFICIENT); // `transactions_root` hash builder let transactions_hash_builder = limits::MAX_TRANSACTION_PAYLOAD_SIZE.saturating_mul(MEMORY_COEFFICIENT); diff --git a/substrate/frame/revive/src/exec/mock_ext.rs b/substrate/frame/revive/src/exec/mock_ext.rs index ba4605ab2f109..d9af8d9eb9b8c 100644 --- a/substrate/frame/revive/src/exec/mock_ext.rs +++ b/substrate/frame/revive/src/exec/mock_ext.rs @@ -128,7 +128,7 @@ impl PrecompileExt for MockExt { panic!("MockExt::minimum_balance") } - fn deposit_event(&mut self, _topics: Vec, _data: Vec) -> Result<(), DispatchError> { + fn deposit_event(&mut self, _topics: Vec, _data: Vec) { panic!("MockExt::deposit_event") } diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 1e1bc986becbd..17d9aae7c1126 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -808,70 +808,6 @@ pub mod pallet { // stack, keeping the rest for other facilities, such as PoV, etc. const TOTAL_MEMORY_DEVIDER: u32 = 2; - // The `EthereumBlockBuilder` builds the Ethereum-compatible block by maintaining - // two incremental hash builders. Each builder accumulates entries until the trie - // is finalized: - // 1. `transactions_root` - builds the Merkle root of transaction payloads - // 2. `receipts_root` - builds the Merkle root of transaction receipts (event logs) - // - // The `EthereumBlockBuilder` is serialized and deserialized to and from storage - // on every transaction via the `EthereumBlockBuilderIR` object. This is needed until - // the runtime exposes a better API to preserve the state between transactions (ie, - // the global `environment!` is wiped because each transaction will instantiate a new - // WASM instance). - // - // For this reason, we need to account for the memory used by the `EthereumBlockBuilder` - // and for the pallet storage consumed by the `EthereumBlockBuilderIR`. - // - // ## Memory Usage Analysis - // - // The incremental hash builder accumulates entries until the trie is finalized. - // The last added entry value is kept in memory until it can be hashed. - // The keys are always ordered and the hashing happens when the next entry is added to - // the trie. The common prefix of the current and previous keys forms the path into the - // trie, and together with the value of the previous entry, a hash of 32 bytes is - // computed. - // - // For this reason, the memory usage of the incremental hash builder is no greater - // than two entries of maximum size, plus some marginal book-keeping overhead - // (ignored to simplify calculations). - // - // `IncrementalHashBuilder = 2 * maximum size of the entry` - // - // Additionally, the block builder caches the first entry for each incremental hash. - // The entry is loaded from storage into RAM when either: - // - The block is finalized, OR - // - After 127 transactions. - // Therefore, an additional entry of maximum size is needed in memory. - // - // That gives us 3 items of maximum size per each hash builder. - // - // `EthereumBlockBuilder = 3 * (max size of transactions + max size of receipts)` - // The maximum size of a transaction is limited by - // `limits::MAX_TRANSACTION_PAYLOAD_SIZE`, while the maximum size of a receipt is - // limited by `limits::PAYLOAD_BYTES`. - // - // Similarly, this is the amount of pallet storage consumed by the - // `EthereumBlockBuilderIR` object, plus a marginal book-keeping overhead. - let max_eth_block_builder_bytes = block_storage::block_builder_bytes_usage(); - - // Check that the configured memory limits fit into runtime memory. - // - // Dynamic allocations are not available, yet. Hence they are not taken into - // consideration here. - let memory_left = i64::from(max_runtime_mem) - .saturating_div(TOTAL_MEMORY_DEVIDER.into()) - .saturating_sub(limits::MEMORY_REQUIRED.into()) - .saturating_sub(max_eth_block_builder_bytes.into()); - - log::debug!(target: LOG_TARGET, "Integrity check: memory_left={} KB", memory_left / 1024); - - assert!( - memory_left >= 0, - "Runtime does not have enough memory for current limits. Additional runtime memory required: {} KB", - memory_left.saturating_mul(TOTAL_MEMORY_DEVIDER.into()).abs() / 1024 - ); - // Validators are configured to be able to use more memory than block builders. This is // because in addition to `max_runtime_mem` they need to hold additional data in // memory: PoV in multiple copies (1x encoded + 2x decoded) and all storage which @@ -899,30 +835,9 @@ pub mod pallet { .try_into() .expect("Immutable data size too big"); - // We can use storage to store items using the available block ref_time with the - // `set_storage` host function. - let max_storage_size: u32 = ((max_block_ref_time / - (>::weight(&RuntimeCosts::SetStorage { - new_bytes: max_payload_size, - old_bytes: 0, - }) - .ref_time())) - .saturating_mul(max_payload_size.saturating_add(max_key_size) as u64)) - .saturating_add(max_immutable_size.into()) - .saturating_add(max_eth_block_builder_bytes.into()) - .try_into() - .expect("Storage size too big"); - let max_pvf_mem: u32 = T::PVFMemory::get(); let storage_size_limit = max_pvf_mem.saturating_sub(max_runtime_mem) / 2; - assert!( - max_storage_size < storage_size_limit, - "Maximal storage size {} exceeds the storage limit {}", - max_storage_size, - storage_size_limit - ); - // We can use storage to store events using the available block ref_time with the // `deposit_event` host function. The overhead of stored events, which is around 100B, // is not taken into account to simplify calculations, as it does not change much. @@ -943,6 +858,48 @@ pub mod pallet { max_events_size, storage_size_limit ); + + // Maximum memory used by the ethereum block builder. + let max_eth_block_builder_bytes = + block_storage::block_builder_bytes_usage(max_events_size); + + // Check that the configured memory limits fit into runtime memory. + // + // Dynamic allocations are not available, yet. Hence they are not taken into + // consideration here. + let memory_left = i64::from(max_runtime_mem) + .saturating_div(TOTAL_MEMORY_DEVIDER.into()) + .saturating_sub(limits::MEMORY_REQUIRED.into()) + .saturating_sub(max_eth_block_builder_bytes.into()); + + log::debug!(target: LOG_TARGET, "Integrity check: memory_left={} KB", memory_left / 1024); + + assert!( + memory_left >= 0, + "Runtime does not have enough memory for current limits. Additional runtime memory required: {} KB", + memory_left.saturating_mul(TOTAL_MEMORY_DEVIDER.into()).abs() / 1024 + ); + + // We can use storage to store items using the available block ref_time with the + // `set_storage` host function. + let max_storage_size: u32 = ((max_block_ref_time / + (>::weight(&RuntimeCosts::SetStorage { + new_bytes: max_payload_size, + old_bytes: 0, + }) + .ref_time())) + .saturating_mul(max_payload_size.saturating_add(max_key_size) as u64)) + .saturating_add(max_immutable_size.into()) + .saturating_add(max_eth_block_builder_bytes.into()) + .try_into() + .expect("Storage size too big"); + + assert!( + max_storage_size < storage_size_limit, + "Maximal storage size {} exceeds the storage limit {}", + max_storage_size, + storage_size_limit + ); } } From 2e23551007d94b0183a54b7f4daa502e96f690b0 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 8 Oct 2025 16:56:26 +0000 Subject: [PATCH 251/273] revive/tests: Manual impl derive to avoid needless trait bounds Signed-off-by: Alexandru Vasile --- .../revive/src/evm/block_hash/block_builder.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/block_hash/block_builder.rs b/substrate/frame/revive/src/evm/block_hash/block_builder.rs index 3318d2058466d..52cd4681e5f66 100644 --- a/substrate/frame/revive/src/evm/block_hash/block_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/block_builder.rs @@ -41,7 +41,6 @@ const LOG_TARGET: &str = "runtime::revive::block_builder"; /// /// This builder is optimized to minimize memory usage and pallet storage by leveraging the internal /// structure of the Ethereum trie and the RLP encoding of receipts. -#[derive(Default)] pub struct EthereumBlockBuilder { pub(crate) transaction_root_builder: IncrementalHashBuilder, pub(crate) receipts_root_builder: IncrementalHashBuilder, @@ -52,6 +51,21 @@ pub struct EthereumBlockBuilder { _phantom: core::marker::PhantomData, } +impl Default for EthereumBlockBuilder { + // Note: Manual implementation to avoid requiring T: Default while deriving. + fn default() -> Self { + Self { + transaction_root_builder: IncrementalHashBuilder::default(), + receipts_root_builder: IncrementalHashBuilder::default(), + gas_used: U256::zero(), + tx_hashes: Vec::new(), + logs_bloom: LogsBloom::default(), + gas_info: Vec::new(), + _phantom: core::marker::PhantomData, + } + } +} + impl EthereumBlockBuilder { /// Converts the builder into an intermediate representation. /// From cd2408753093ae07c8f686369fc4821a5b97c786 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 9 Oct 2025 06:39:59 +0000 Subject: [PATCH 252/273] revive: Add debug logs for eth block builder Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 17d9aae7c1126..bb3f758770ca6 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -863,6 +863,13 @@ pub mod pallet { let max_eth_block_builder_bytes = block_storage::block_builder_bytes_usage(max_events_size); + log::debug!( + target: LOG_TARGET, + "Integrity check: max_eth_block_builder_bytes={} KB using max_events_size={} KB", + max_eth_block_builder_bytes / 1024, + max_events_size / 1024, + ); + // Check that the configured memory limits fit into runtime memory. // // Dynamic allocations are not available, yet. Hence they are not taken into From 31311f465468991f440778a64713657bc80c372f Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 9 Oct 2025 09:13:59 +0000 Subject: [PATCH 253/273] revive: Charge extra weight for events to ensure enough memory and pallet storage Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/block_storage.rs | 10 ++++-- substrate/frame/revive/src/lib.rs | 35 ++++++++++++++++++- substrate/frame/revive/src/limits.rs | 6 ++++ .../frame/revive/src/vm/runtime_costs.rs | 9 +++-- 4 files changed, 55 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_storage.rs b/substrate/frame/revive/src/evm/block_storage.rs index 014849e09a611..480bdbb7db6e0 100644 --- a/substrate/frame/revive/src/evm/block_storage.rs +++ b/substrate/frame/revive/src/evm/block_storage.rs @@ -186,8 +186,14 @@ pub fn block_builder_bytes_usage(max_events_size: u32) -> u32 { // A block builder requires 3 times the maximum size of the entry. const MEMORY_COEFFICIENT: u32 = 3; - // `receipts_root` hash builder - let receipts_hash_builder = max_events_size.saturating_mul(MEMORY_COEFFICIENT); + // Because events are not capped, and the builder cannot exceed the + // number of bytes received, the actual memory usage for receipts is: + // `receipts_hash_builder = min(events_per_tx * 3, max_events_size)` + // where `max_events_size` can be consumed by a single transaction. + // Since we don't know in advance the `events_per_tx`, we'll assume the + // worst case scenario. + let receipts_hash_builder = max_events_size; + // `transactions_root` hash builder let transactions_hash_builder = limits::MAX_TRANSACTION_PAYLOAD_SIZE.saturating_mul(MEMORY_COEFFICIENT); diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 6a5cdf8383a11..7ee8b02a13479 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -879,7 +879,40 @@ pub mod pallet { storage_size_limit ); - // Maximum memory used by the ethereum block builder. + // The incremental block builder uses 3 x maximum entry size for receipts and + // for transactions. Transactions are bounded to `MAX_TRANSACTION_PAYLOAD_SIZE`. + // + // To determine the maximum size of the receipts, we know the following: + // - (I) first receipt is stored into pallet storage and not given to the hasher until + // finalization. + // - (II) the hasher will not consume more memory than the receipts we are giving it. + // - (III) the hasher is capped by 3 x maximum entry for 3 or more transactions. + // + // # Case 1. One transaction with maximum receipts + // + // The worst case scenario for having one single transaction is for the transaction + // to emit the maximum receipt size (ie `max_events_size`). In this case, + // the maximum storage (and memory) consumed is bounded by `max_events_size` (II). The + // receipt is stored in pallet storage, and loaded from storage in the + // `on_finalize` hook (I). + // + // # Case 2. Two transactions + // + // The sum of the receipt size of both transactions cannot exceed `max_events_size`, + // otherwise one transaction will be reverted. From (II), the bytes utilized + // by the builder are capped to `max_events_size`. + // + // # Case 3. Three or more transactions + // + // Similar to the above case, the sum of all receipt size is bounded to + // `max_events_size`. Therefore, the bytes are capped to `max_events_size`. + // + // On average, a transaction could emit `max_events_size / num_tx`. The would + // consume `max_events_size / num_tx * 3` bytes, which is lower than + // `max_events_size` for more than 3 transactions. + // + // In practice, the builder will consume even lower amounts considering + // it is unlikely for a transaction to utilize all the weight of the block for events. let max_eth_block_builder_bytes = block_storage::block_builder_bytes_usage(max_events_size); diff --git a/substrate/frame/revive/src/limits.rs b/substrate/frame/revive/src/limits.rs index 54b6b784a4a41..c8af1a9e5b297 100644 --- a/substrate/frame/revive/src/limits.rs +++ b/substrate/frame/revive/src/limits.rs @@ -56,6 +56,12 @@ pub const PAYLOAD_BYTES: u32 = 416; /// Maximum code size during instantiation taken into account plus some overhead. pub const MAX_TRANSACTION_PAYLOAD_SIZE: u32 = code::BLOB_BYTES + 128 * 1024; +/// The extra charge of deposit event per byte. +/// +/// This ensure the block builder has enough memory and pallet storage +/// to operate under worst case scenarios. +pub const EXTRA_EVENT_CHARGE_PER_BYTE: u64 = 1024 * 256; + /// The maximum size for calldata and return data. /// /// Please note that the calldata is limited to 128KB on geth anyways. diff --git a/substrate/frame/revive/src/vm/runtime_costs.rs b/substrate/frame/revive/src/vm/runtime_costs.rs index 804c2581ae965..6ab325360ef36 100644 --- a/substrate/frame/revive/src/vm/runtime_costs.rs +++ b/substrate/frame/revive/src/vm/runtime_costs.rs @@ -15,7 +15,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -use crate::{gas::Token, weightinfo_extension::OnFinalizeBlockParts, weights::WeightInfo, Config}; +use crate::{ + gas::Token, limits, weightinfo_extension::OnFinalizeBlockParts, weights::WeightInfo, Config, +}; use frame_support::weights::{constants::WEIGHT_REF_TIME_PER_SECOND, Weight}; /// Current approximation of the gas/s consumption considering @@ -256,7 +258,10 @@ impl Token for RuntimeCosts { GasLimit => T::WeightInfo::seal_gas_limit(), Terminate { code_removed } => T::WeightInfo::seal_terminate(code_removed.into()), DepositEvent { num_topic, len } => T::WeightInfo::seal_deposit_event(num_topic, len) - .saturating_add(T::WeightInfo::on_finalize_block_per_event(len)), + .saturating_add(T::WeightInfo::on_finalize_block_per_event(len)) + .saturating_add( + limits::EXTRA_EVENT_CHARGE_PER_BYTE.saturating_mul(len.into()).into(), + ), SetStorage { new_bytes, old_bytes } => { cost_storage!(write, seal_set_storage, new_bytes, old_bytes) }, From cd1100bda39bb8e8f202ba8bf32a7a8d3d8de4e7 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 9 Oct 2025 09:18:54 +0000 Subject: [PATCH 254/273] revive: Use DefaultNoBound Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/benchmarking.rs | 1 - .../src/evm/block_hash/block_builder.rs | 21 ++++--------------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index fcfc187ee8a62..eb39a23e2bbd1 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -116,7 +116,6 @@ fn whitelisted_pallet_account() -> T::AccountId { ::RuntimeCall: Dispatchable, T: pallet_transaction_payment::Config, - // OnChargeTransactionBalanceOf: Into>, ::RuntimeEvent: From>, ::RuntimeCall: From>, ::Hash: frame_support::traits::IsType, diff --git a/substrate/frame/revive/src/evm/block_hash/block_builder.rs b/substrate/frame/revive/src/evm/block_hash/block_builder.rs index 52cd4681e5f66..c57ffeefd92ae 100644 --- a/substrate/frame/revive/src/evm/block_hash/block_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/block_builder.rs @@ -31,7 +31,7 @@ use crate::{ use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; -use frame_support::weights::Weight; +use frame_support::{weights::Weight, DefaultNoBound}; use scale_info::TypeInfo; use sp_core::{keccak_256, H160, H256, U256}; @@ -41,6 +41,7 @@ const LOG_TARGET: &str = "runtime::revive::block_builder"; /// /// This builder is optimized to minimize memory usage and pallet storage by leveraging the internal /// structure of the Ethereum trie and the RLP encoding of receipts. +#[derive(DefaultNoBound)] pub struct EthereumBlockBuilder { pub(crate) transaction_root_builder: IncrementalHashBuilder, pub(crate) receipts_root_builder: IncrementalHashBuilder, @@ -51,21 +52,6 @@ pub struct EthereumBlockBuilder { _phantom: core::marker::PhantomData, } -impl Default for EthereumBlockBuilder { - // Note: Manual implementation to avoid requiring T: Default while deriving. - fn default() -> Self { - Self { - transaction_root_builder: IncrementalHashBuilder::default(), - receipts_root_builder: IncrementalHashBuilder::default(), - gas_used: U256::zero(), - tx_hashes: Vec::new(), - logs_bloom: LogsBloom::default(), - gas_info: Vec::new(), - _phantom: core::marker::PhantomData, - } - } -} - impl EthereumBlockBuilder { /// Converts the builder into an intermediate representation. /// @@ -240,11 +226,12 @@ pub struct EthereumBlockBuilderIR { impl Default for EthereumBlockBuilderIR { fn default() -> Self { Self { + // Default not implemented for [u8; BLOOM_SIZE_BYTES] + logs_bloom: [0; BLOOM_SIZE_BYTES], transaction_root_builder: IncrementalHashBuilderIR::default(), receipts_root_builder: IncrementalHashBuilderIR::default(), gas_used: U256::zero(), tx_hashes: Vec::new(), - logs_bloom: [0; BLOOM_SIZE_BYTES], gas_info: Vec::new(), } } From 7b024433a596c791e971c1b8f03776a03e1db4cc Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 9 Oct 2025 09:34:26 +0000 Subject: [PATCH 255/273] revive: Remove unneeded trait bounds from benchmarking Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/benchmarking.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index eb39a23e2bbd1..2d6e5326f2be3 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -59,7 +59,6 @@ use k256::ecdsa::SigningKey; use pallet_revive_uapi::{ pack_hi_lo, precompiles::system::ISystem, CallFlags, ReturnErrorCode, StorageFlags, }; -pub use pallet_transaction_payment; use revm::bytecode::Bytecode; use sp_consensus_aura::AURA_ENGINE_ID; use sp_consensus_babe::{ @@ -113,10 +112,6 @@ fn whitelisted_pallet_account() -> T::AccountId { #[benchmarks( where T: Config, - ::RuntimeCall: - Dispatchable, - T: pallet_transaction_payment::Config, - ::RuntimeEvent: From>, ::RuntimeCall: From>, ::Hash: frame_support::traits::IsType, OriginFor: From>, From 31a4bd7305ee7b43bdc33f40a12f3dec2f895fb6 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 9 Oct 2025 09:39:11 +0000 Subject: [PATCH 256/273] revive: Use weight instead of u64 Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/limits.rs | 2 +- substrate/frame/revive/src/vm/runtime_costs.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/src/limits.rs b/substrate/frame/revive/src/limits.rs index c8af1a9e5b297..ccf8cd534b26c 100644 --- a/substrate/frame/revive/src/limits.rs +++ b/substrate/frame/revive/src/limits.rs @@ -60,7 +60,7 @@ pub const MAX_TRANSACTION_PAYLOAD_SIZE: u32 = code::BLOB_BYTES + 128 * 1024; /// /// This ensure the block builder has enough memory and pallet storage /// to operate under worst case scenarios. -pub const EXTRA_EVENT_CHARGE_PER_BYTE: u64 = 1024 * 256; +pub const EXTRA_EVENT_CHARGE_PER_BYTE: u32 = 1024 * 256; /// The maximum size for calldata and return data. /// diff --git a/substrate/frame/revive/src/vm/runtime_costs.rs b/substrate/frame/revive/src/vm/runtime_costs.rs index 6ab325360ef36..3f5512bd73a19 100644 --- a/substrate/frame/revive/src/vm/runtime_costs.rs +++ b/substrate/frame/revive/src/vm/runtime_costs.rs @@ -259,9 +259,9 @@ impl Token for RuntimeCosts { Terminate { code_removed } => T::WeightInfo::seal_terminate(code_removed.into()), DepositEvent { num_topic, len } => T::WeightInfo::seal_deposit_event(num_topic, len) .saturating_add(T::WeightInfo::on_finalize_block_per_event(len)) - .saturating_add( + .saturating_add(Weight::from_all( limits::EXTRA_EVENT_CHARGE_PER_BYTE.saturating_mul(len.into()).into(), - ), + )), SetStorage { new_bytes, old_bytes } => { cost_storage!(write, seal_set_storage, new_bytes, old_bytes) }, From 78c84171b93891ae23bf533f83b643d0106ee57b Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Thu, 9 Oct 2025 13:09:46 +0200 Subject: [PATCH 257/273] revive: make block_hash module public --- substrate/frame/revive/src/evm.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm.rs b/substrate/frame/revive/src/evm.rs index b22322fdf3b55..80fe43fc92dfd 100644 --- a/substrate/frame/revive/src/evm.rs +++ b/substrate/frame/revive/src/evm.rs @@ -29,7 +29,7 @@ pub mod tx_extension; pub use alloy_core::sol_types::decode_revert_reason; /// Ethereum block hash builder related types. -pub(crate) mod block_hash; +pub mod block_hash; pub use block_hash::ReceiptGasInfo; /// Ethereum block storage module. From f366d31cda1e1f0833641df41f1a0ab16add9fe6 Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Thu, 9 Oct 2025 13:28:29 +0200 Subject: [PATCH 258/273] revive: set block timestamps in seconds as Eth uses --- substrate/frame/revive/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 7ee8b02a13479..bb4f034f97eb0 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -812,7 +812,8 @@ pub mod pallet { Self::block_author(), block_number.into(), Self::evm_block_gas_limit(), - T::Time::now().into(), + // Eth uses timestamps in seconds + (T::Time::now() / 1000u32.into()).into(), ); } From ca2ca8098db2fc3548129c9e25f410391931da9d Mon Sep 17 00:00:00 2001 From: Lukasz Rubaszewski <117115317+lrubasze@users.noreply.github.com> Date: Thu, 9 Oct 2025 13:47:02 +0200 Subject: [PATCH 259/273] Revert "revive: make block_hash module public" This reverts commit 78c84171b93891ae23bf533f83b643d0106ee57b. --- substrate/frame/revive/src/evm.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm.rs b/substrate/frame/revive/src/evm.rs index 80fe43fc92dfd..b22322fdf3b55 100644 --- a/substrate/frame/revive/src/evm.rs +++ b/substrate/frame/revive/src/evm.rs @@ -29,7 +29,7 @@ pub mod tx_extension; pub use alloy_core::sol_types::decode_revert_reason; /// Ethereum block hash builder related types. -pub mod block_hash; +pub(crate) mod block_hash; pub use block_hash::ReceiptGasInfo; /// Ethereum block storage module. From 36a9ca45b803b08d638e2cc5bd9a496113ee68bb Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 9 Oct 2025 13:19:06 +0000 Subject: [PATCH 260/273] revive: Add more logs for integrity check Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 7ee8b02a13479..6c6a80e8a394c 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -954,6 +954,15 @@ pub mod pallet { .try_into() .expect("Storage size too big"); + log::debug!( + target: LOG_TARGET, + "Integrity check: max_storage_size={} KB < storage_size_limit={} KB (max_immutable_size={} KB, max_eth_block_builder_bytes={} KB)", + max_storage_size / 1024, + storage_size_limit / 1024, + max_immutable_size / 1024, + max_eth_block_builder_bytes / 1024, + ); + assert!( max_storage_size < storage_size_limit, "Maximal storage size {} exceeds the storage limit {}", From 917844dfe0e857d7d1b802bdddbbcec1be23b827 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 9 Oct 2025 13:19:16 +0000 Subject: [PATCH 261/273] revive/tests: Bump fee for tests Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/tests/block_hash.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/substrate/frame/revive/src/tests/block_hash.rs b/substrate/frame/revive/src/tests/block_hash.rs index d9ea661b39988..7b3406639a8f2 100644 --- a/substrate/frame/revive/src/tests/block_hash.rs +++ b/substrate/frame/revive/src/tests/block_hash.rs @@ -111,7 +111,7 @@ fn events_are_captured() { let (binary, code_hash) = compile_module("event_and_return_on_deploy").unwrap(); ExtBuilder::default().existential_deposit(200).build().execute_with(|| { - let _ = ::Currency::set_balance(&ALICE, 100_000_000_000); + let _ = ::Currency::set_balance(&ALICE, 100_000_000_000_000); assert_ok!(Contracts::upload_code( RuntimeOrigin::signed(ALICE), @@ -126,7 +126,9 @@ fn events_are_captured() { let balance = Pallet::::convert_native_to_evm(BalanceWithDust::new_unchecked::(100, 10)); - ::FeeInfo::deposit_txfee(::Currency::issue(5_000_000_000)); + ::FeeInfo::deposit_txfee(::Currency::issue( + 500_000_000_000, + )); assert_ok!(builder::eth_instantiate_with_code(binary).value(balance).build()); From 08757911b6485841393c04ef19de1a6f6b0866be Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 9 Oct 2025 13:50:31 +0000 Subject: [PATCH 262/273] revive: Adjust more tests Signed-off-by: Alexandru Vasile --- .../frame/revive/src/evm/block_hash/hash_builder.rs | 1 + substrate/frame/revive/src/impl_fungibles.rs | 2 +- substrate/frame/revive/src/test_utils.rs | 2 +- substrate/frame/revive/src/tests/pvm.rs | 9 ++++++--- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs index ed13b9c9acfae..9ceb8416169ee 100644 --- a/substrate/frame/revive/src/evm/block_hash/hash_builder.rs +++ b/substrate/frame/revive/src/evm/block_hash/hash_builder.rs @@ -493,6 +493,7 @@ mod tests { } #[test] + #[ignore] fn test_stats_item_count_and_sizes() { for (item_count, item_size) in [ // 100k items of 1kB each diff --git a/substrate/frame/revive/src/impl_fungibles.rs b/substrate/frame/revive/src/impl_fungibles.rs index 50450ba430cf2..3e9e2653e8ad1 100644 --- a/substrate/frame/revive/src/impl_fungibles.rs +++ b/substrate/frame/revive/src/impl_fungibles.rs @@ -45,7 +45,7 @@ use sp_runtime::{traits::AccountIdConversion, DispatchError}; use super::{address::AddressMapper, pallet, Config, ContractResult, ExecConfig, Pallet, Weight}; use ethereum_standards::IERC20; -const GAS_LIMIT: Weight = Weight::from_parts(1_000_000_000, 100_000); +const GAS_LIMIT: Weight = Weight::from_parts(500_000_000_000, 10 * 1024 * 1024); impl Pallet { // Test checking account for the `fungibles::*` implementation. diff --git a/substrate/frame/revive/src/test_utils.rs b/substrate/frame/revive/src/test_utils.rs index c059169c5634b..ec9843240303a 100644 --- a/substrate/frame/revive/src/test_utils.rs +++ b/substrate/frame/revive/src/test_utils.rs @@ -72,7 +72,7 @@ pub const EVE: AccountId32 = AccountId32::new([5u8; 32]); pub const EVE_ADDR: H160 = H160(hex!("e21eecd6e51cbcda5b0c5207ae87e605839e70ef")); pub const EVE_FALLBACK: AccountId32 = ee_extend(EVE_ADDR.0); -pub const GAS_LIMIT: Weight = Weight::from_parts(100_000_000_000, 3 * 1024 * 1024); +pub const GAS_LIMIT: Weight = Weight::from_parts(500_000_000_000, 10 * 1024 * 1024); pub fn deposit_limit() -> BalanceOf { 10_000_000u32.into() diff --git a/substrate/frame/revive/src/tests/pvm.rs b/substrate/frame/revive/src/tests/pvm.rs index aef961d812fb4..4bb9990893a55 100644 --- a/substrate/frame/revive/src/tests/pvm.rs +++ b/substrate/frame/revive/src/tests/pvm.rs @@ -427,14 +427,16 @@ fn deposit_event_max_value_limit() { ExtBuilder::default().existential_deposit(50).build().execute_with(|| { // Create - let _ = ::Currency::set_balance(&ALICE, 1_000_000); + let _ = ::Currency::set_balance(&ALICE, 100_000_000_000_000); let Contract { addr, .. } = builder::bare_instantiate(Code::Upload(binary)) .native_value(30_000) .build_and_unwrap_contract(); // Call contract with allowed storage value. + let gas_limit = GAS_LIMIT.set_ref_time(GAS_LIMIT.ref_time() * 10); + println!("gas_limit: {gas_limit:?}"); assert_ok!(builder::call(addr) - .gas_limit(GAS_LIMIT.set_ref_time(GAS_LIMIT.ref_time() * 2)) // we are copying a huge buffer, + .gas_limit(gas_limit) .data(limits::PAYLOAD_BYTES.encode()) .build()); @@ -3998,7 +4000,7 @@ fn call_tracing_works() { let (code, _code_hash) = compile_module("tracing").unwrap(); let (binary_callee, _) = compile_module("tracing_callee").unwrap(); ExtBuilder::default().existential_deposit(200).build().execute_with(|| { - let _ = ::Currency::set_balance(&ALICE, 100_000_000); + let _ = ::Currency::set_balance(&ALICE, 100_000_000_000_000); let Contract { addr: addr_callee, .. } = builder::bare_instantiate(Code::Upload(binary_callee)).build_and_unwrap_contract(); @@ -4127,6 +4129,7 @@ fn call_tracing_works() { ] }; + // gas_limit(Weight::from_parts(500_000_000_000, 10 * 1024 * 1024)) let mut tracer = CallTracer::new(config, |_| U256::zero()); trace(&mut tracer, || { builder::bare_call(addr).data((3u32, addr_callee).encode()).build() From 32f429e42f69cef836afd4b307390e00f2e1659a Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Thu, 9 Oct 2025 15:00:01 +0000 Subject: [PATCH 263/273] revive: Adjust gas of fixtures Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/tests/pvm.rs | 9 +++++---- substrate/frame/revive/src/tests/sol/host.rs | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/substrate/frame/revive/src/tests/pvm.rs b/substrate/frame/revive/src/tests/pvm.rs index 4bb9990893a55..a1bb61b289ce7 100644 --- a/substrate/frame/revive/src/tests/pvm.rs +++ b/substrate/frame/revive/src/tests/pvm.rs @@ -433,16 +433,17 @@ fn deposit_event_max_value_limit() { .build_and_unwrap_contract(); // Call contract with allowed storage value. - let gas_limit = GAS_LIMIT.set_ref_time(GAS_LIMIT.ref_time() * 10); - println!("gas_limit: {gas_limit:?}"); assert_ok!(builder::call(addr) - .gas_limit(gas_limit) + .gas_limit(Weight::from_parts(u64::MAX, u64::MAX)) .data(limits::PAYLOAD_BYTES.encode()) .build()); // Call contract with too large a storage value. assert_err_ignore_postinfo!( - builder::call(addr).data((limits::PAYLOAD_BYTES + 1).encode()).build(), + builder::call(addr) + .gas_limit(Weight::from_parts(u64::MAX, u64::MAX)) + .data((limits::PAYLOAD_BYTES + 1).encode()) + .build(), Error::::ValueTooLarge, ); }); diff --git a/substrate/frame/revive/src/tests/sol/host.rs b/substrate/frame/revive/src/tests/sol/host.rs index 082b4c5dc7f38..2a765cc6701d1 100644 --- a/substrate/frame/revive/src/tests/sol/host.rs +++ b/substrate/frame/revive/src/tests/sol/host.rs @@ -462,7 +462,7 @@ fn logs_work(fixture_type: FixtureType) { let (code, _) = compile_module_with_type("Host", fixture_type).unwrap(); ExtBuilder::default().build().execute_with(|| { - ::Currency::set_balance(&ALICE, 100_000_000_000); + ::Currency::set_balance(&ALICE, 100_000_000_000_000); let Contract { addr, .. } = builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); @@ -471,6 +471,7 @@ fn logs_work(fixture_type: FixtureType) { initialize_block(2); let result = builder::bare_call(addr) + .gas_limit(crate::Weight::from_parts(100_000_000_000_000, 50 * 1024 * 1024)) .data(Host::HostCalls::logOps(Host::logOpsCall {}).abi_encode()) .build_and_unwrap_result(); assert!(!result.did_revert(), "test reverted"); From 41407e64ff747246e1ef7ba311ac7edcc7591244 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 10 Oct 2025 10:31:36 +0000 Subject: [PATCH 264/273] asset-hub/tests: Increase gas Signed-off-by: Alexandru Vasile --- .../parachains/runtimes/assets/asset-hub-westend/tests/tests.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs index 54cac811d1495..5f9409b226854 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs @@ -1915,7 +1915,7 @@ fn expensive_erc20_runs_out_of_gas() { let initial_amount_u256 = U256::from(1_000_000_000_000u128); let constructor_data = sol_data::Uint::<256>::abi_encode(&initial_amount_u256); let Contract { addr: non_erc20_address, .. } = bare_instantiate(&sender, code) - .gas_limit(Weight::from_parts(2_000_000_000, 200_000)) + .gas_limit(Weight::from_parts(500_000_000_000, 10 * 1024 * 1024)) .storage_deposit_limit(Balance::MAX) .data(constructor_data) .build_and_unwrap_contract(); From 7648c8f1c1182af0a765ab0b5aa20d62f9df5cb5 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 10 Oct 2025 11:30:40 +0000 Subject: [PATCH 265/273] asset-hub: Adjust more tests Signed-off-by: Alexandru Vasile --- .../runtimes/assets/asset-hub-westend/tests/tests.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs index 5f9409b226854..d804951a331db 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs @@ -1688,7 +1688,7 @@ fn withdraw_and_deposit_erc20s() { let initial_amount_u256 = U256::from(1_000_000_000_000u128); let constructor_data = sol_data::Uint::<256>::abi_encode(&initial_amount_u256); let Contract { addr: erc20_address, .. } = bare_instantiate(&sender, code) - .gas_limit(Weight::from_parts(2_000_000_000, 200_000)) + .gas_limit(Weight::from_parts(500_000_000_000, 10 * 1024 * 1024)) .storage_deposit_limit(Balance::MAX) .data(constructor_data) .build_and_unwrap_contract(); @@ -1801,7 +1801,7 @@ fn smart_contract_not_erc20_will_error() { let (code, _) = compile_module("dummy").unwrap(); let Contract { addr: non_erc20_address, .. } = bare_instantiate(&sender, code) - .gas_limit(Weight::from_parts(2_000_000_000, 200_000)) + .gas_limit(Weight::from_parts(500_000_000_000, 10 * 1024 * 1024)) .storage_deposit_limit(Balance::MAX) .build_and_unwrap_contract(); @@ -1859,7 +1859,7 @@ fn smart_contract_does_not_return_bool_fails() { let constructor_data = sol_data::Uint::<256>::abi_encode(&initial_amount_u256); let Contract { addr: non_erc20_address, .. } = bare_instantiate(&sender, code) - .gas_limit(Weight::from_parts(2_000_000_000, 200_000)) + .gas_limit(Weight::from_parts(500_000_000_000, 10 * 1024 * 1024)) .storage_deposit_limit(Balance::MAX) .data(constructor_data) .build_and_unwrap_contract(); From 89649b149ace5f5456968502440c96846cda7ebc Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Fri, 10 Oct 2025 14:36:14 +0000 Subject: [PATCH 266/273] xcm: Adjust ERC20TransferGasLimit to allow higher fees Signed-off-by: Alexandru Vasile --- .../runtimes/assets/asset-hub-westend/src/xcm_config.rs | 2 +- .../runtimes/assets/asset-hub-westend/tests/tests.rs | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs index 84f7dcdf9c054..266de188c5338 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs @@ -207,7 +207,7 @@ pub type PoolFungiblesTransactor = FungiblesAdapter< parameter_types! { /// Taken from the real gas and deposits of a standard ERC20 transfer call. - pub const ERC20TransferGasLimit: Weight = Weight::from_parts(700_000_000, 200_000); + pub const ERC20TransferGasLimit: Weight = Weight::from_parts(500_000_000_000, 10 * 1024 * 1024); pub const ERC20TransferStorageDepositLimit: Balance = 10_200_000_000; pub ERC20TransfersCheckingAccount: AccountId = PalletId(*b"py/revch").into_account_truncating(); } diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs index d804951a331db..e7a98c0385990 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs @@ -1667,7 +1667,8 @@ fn withdraw_and_deposit_erc20s() { let revive_account = pallet_revive::Pallet::::account_id(); let checking_account = asset_hub_westend_runtime::xcm_config::ERC20TransfersCheckingAccount::get(); - let initial_wnd_amount = 10_000_000_000_000u128; + let initial_wnd_amount = 100_000_000_000_000_000u128; + sp_tracing::init_for_tests(); ExtBuilder::::default().build().execute_with(|| { // Bring the revive account to life. @@ -1696,7 +1697,7 @@ fn withdraw_and_deposit_erc20s() { let sender_balance_before = >::balance(&sender); let erc20_transfer_amount = 100u128; - let wnd_amount_for_fees = 1_000_000_000_000u128; + let wnd_amount_for_fees = 10_000_000_000_000u128; // Actual XCM to execute locally. let message = Xcm::::builder() .withdraw_asset((Parent, wnd_amount_for_fees)) @@ -1712,7 +1713,7 @@ fn withdraw_and_deposit_erc20s() { assert_ok!(PolkadotXcm::execute( RuntimeOrigin::signed(sender.clone()), Box::new(VersionedXcm::V5(message)), - Weight::from_parts(2_500_000_000, 220_000), + Weight::from_parts(600_000_000_000, 15 * 1024 * 1024), )); // Revive is not taking any fees. From 4c6092207fead8bb2d27743129ccc898ba0b3605 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 15 Oct 2025 10:36:19 +0000 Subject: [PATCH 267/273] revive: Remove cloning of encoded bytes Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/evm/call.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/evm/call.rs b/substrate/frame/revive/src/evm/call.rs index 34d42ee48a7b1..1d018a54d9c22 100644 --- a/substrate/frame/revive/src/evm/call.rs +++ b/substrate/frame/revive/src/evm/call.rs @@ -119,7 +119,7 @@ where value, gas_limit: Zero::zero(), data, - transaction_encoded: transaction_encoded.clone(), + transaction_encoded, effective_gas_price, encoded_len, } From 91f79d198a2eee69c73f1e71f65c5ac785ac995c Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 15 Oct 2025 10:37:16 +0000 Subject: [PATCH 268/273] revive: Use constants for tx payload size Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/limits.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/substrate/frame/revive/src/limits.rs b/substrate/frame/revive/src/limits.rs index ccf8cd534b26c..1265c2e3cb03d 100644 --- a/substrate/frame/revive/src/limits.rs +++ b/substrate/frame/revive/src/limits.rs @@ -54,7 +54,7 @@ pub const PAYLOAD_BYTES: u32 = 416; /// Maximum size of of the transaction payload /// /// Maximum code size during instantiation taken into account plus some overhead. -pub const MAX_TRANSACTION_PAYLOAD_SIZE: u32 = code::BLOB_BYTES + 128 * 1024; +pub const MAX_TRANSACTION_PAYLOAD_SIZE: u32 = code::BLOB_BYTES + CALLDATA_BYTES; /// The extra charge of deposit event per byte. /// From 1ccd2ba2faa651cb87bb9b9477bf6da01c841377 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 15 Oct 2025 10:37:42 +0000 Subject: [PATCH 269/273] revive: Remove stale comment Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/tests/pvm.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/substrate/frame/revive/src/tests/pvm.rs b/substrate/frame/revive/src/tests/pvm.rs index 1c3d60d7f7568..a51a63daca319 100644 --- a/substrate/frame/revive/src/tests/pvm.rs +++ b/substrate/frame/revive/src/tests/pvm.rs @@ -4149,7 +4149,6 @@ fn call_tracing_works() { ] }; - // gas_limit(Weight::from_parts(500_000_000_000, 10 * 1024 * 1024)) let mut tracer = CallTracer::new(config, |_| U256::zero()); trace(&mut tracer, || { builder::bare_call(addr).data((3u32, addr_callee).encode()).build() From 1f79ac10795e9c851bb2defdc7bc24062789f302 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 15 Oct 2025 10:49:34 +0000 Subject: [PATCH 270/273] revive: Make block author infalliable Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/benchmarking.rs | 2 +- substrate/frame/revive/src/exec.rs | 6 +++--- substrate/frame/revive/src/exec/mock_ext.rs | 2 +- .../frame/revive/src/vm/evm/instructions/block_info.rs | 4 ++-- substrate/frame/revive/src/vm/evm/instructions/host.rs | 1 - substrate/frame/revive/src/vm/pvm/env.rs | 2 +- 6 files changed, 8 insertions(+), 9 deletions(-) diff --git a/substrate/frame/revive/src/benchmarking.rs b/substrate/frame/revive/src/benchmarking.rs index 5ecc61d9133ef..6096dfed05e19 100644 --- a/substrate/frame/revive/src/benchmarking.rs +++ b/substrate/frame/revive/src/benchmarking.rs @@ -1089,7 +1089,7 @@ mod benchmarks { } assert_ok!(result); - let block_author = runtime.ext().block_author().unwrap_or(H160::zero()); + let block_author = runtime.ext().block_author(); assert_eq!(&memory[..], block_author.as_bytes()); } diff --git a/substrate/frame/revive/src/exec.rs b/substrate/frame/revive/src/exec.rs index 392e4c2498eb2..ee9bbdd3a4513 100644 --- a/substrate/frame/revive/src/exec.rs +++ b/substrate/frame/revive/src/exec.rs @@ -376,7 +376,7 @@ pub trait PrecompileExt: sealing::Sealed { fn block_hash(&self, block_number: U256) -> Option; /// Returns the author of the current block. - fn block_author(&self) -> Option; + fn block_author(&self) -> H160; /// Returns the block gas limit. fn gas_limit(&self) -> u64; @@ -2118,8 +2118,8 @@ where self.block_hash(block_number) } - fn block_author(&self) -> Option { - Some(Contracts::::block_author()) + fn block_author(&self) -> H160 { + Contracts::::block_author() } fn gas_limit(&self) -> u64 { diff --git a/substrate/frame/revive/src/exec/mock_ext.rs b/substrate/frame/revive/src/exec/mock_ext.rs index b0ed00dbb19ae..57c1df0093391 100644 --- a/substrate/frame/revive/src/exec/mock_ext.rs +++ b/substrate/frame/revive/src/exec/mock_ext.rs @@ -140,7 +140,7 @@ impl PrecompileExt for MockExt { panic!("MockExt::block_hash") } - fn block_author(&self) -> Option { + fn block_author(&self) -> H160 { panic!("MockExt::block_author") } diff --git a/substrate/frame/revive/src/vm/evm/instructions/block_info.rs b/substrate/frame/revive/src/vm/evm/instructions/block_info.rs index c73881cf24353..4c770648c197d 100644 --- a/substrate/frame/revive/src/vm/evm/instructions/block_info.rs +++ b/substrate/frame/revive/src/vm/evm/instructions/block_info.rs @@ -24,7 +24,7 @@ use crate::{ }; use core::ops::ControlFlow; use revm::interpreter::gas::BASE; -use sp_core::{H160, U256}; +use sp_core::U256; /// EIP-1344: ChainID opcode pub fn chainid(interpreter: &mut Interpreter) -> ControlFlow { @@ -38,7 +38,7 @@ pub fn chainid(interpreter: &mut Interpreter) -> ControlFlow { /// Pushes the current block's beneficiary address onto the stack. pub fn coinbase(interpreter: &mut Interpreter) -> ControlFlow { interpreter.ext.charge_or_halt(RuntimeCosts::BlockAuthor)?; - let coinbase = interpreter.ext.block_author().unwrap_or(H160::zero()); + let coinbase = interpreter.ext.block_author(); interpreter.stack.push(coinbase)?; ControlFlow::Continue(()) } diff --git a/substrate/frame/revive/src/vm/evm/instructions/host.rs b/substrate/frame/revive/src/vm/evm/instructions/host.rs index aec40ef00531c..b14dc9ff8f4c0 100644 --- a/substrate/frame/revive/src/vm/evm/instructions/host.rs +++ b/substrate/frame/revive/src/vm/evm/instructions/host.rs @@ -243,7 +243,6 @@ pub fn log<'ext, const N: usize, E: Ext>( let topics = topics.into_iter().map(|v| sp_core::H256::from(v.to_big_endian())).collect(); interpreter.ext.deposit_event(topics, data.to_vec()); - ControlFlow::Continue(()) } diff --git a/substrate/frame/revive/src/vm/pvm/env.rs b/substrate/frame/revive/src/vm/pvm/env.rs index 764fd8dffa6a7..c8b91484c9e53 100644 --- a/substrate/frame/revive/src/vm/pvm/env.rs +++ b/substrate/frame/revive/src/vm/pvm/env.rs @@ -760,7 +760,7 @@ pub mod env { #[stable] fn block_author(&mut self, memory: &mut M, out_ptr: u32) -> Result<(), TrapReason> { self.charge_gas(RuntimeCosts::BlockAuthor)?; - let block_author = self.ext.block_author().unwrap_or(H160::zero()); + let block_author = self.ext.block_author(); Ok(self.write_fixed_sandbox_output( memory, From a71fe2030363e137deb35c0410cb495272a8447e Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 15 Oct 2025 10:54:37 +0000 Subject: [PATCH 271/273] revive: weightinfo_extension as crate module Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/lib.rs | 4 ++-- substrate/frame/revive/src/vm/pvm/env.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/src/lib.rs b/substrate/frame/revive/src/lib.rs index 830be74eb209a..d288f24cc276c 100644 --- a/substrate/frame/revive/src/lib.rs +++ b/substrate/frame/revive/src/lib.rs @@ -36,13 +36,13 @@ mod storage; mod tests; mod transient_storage; mod vm; +mod weightinfo_extension; pub mod evm; pub mod migrations; pub mod precompiles; pub mod test_utils; pub mod tracing; -pub mod weightinfo_extension; pub mod weights; use crate::{ @@ -58,6 +58,7 @@ use crate::{ storage::{meter::Meter as StorageMeter, AccountType, DeletionQueueManager}, tracing::if_tracing, vm::{pvm::extract_code_and_data, CodeInfo, ContractBlob, RuntimeCosts}, + weightinfo_extension::OnFinalizeBlockParts, }; use alloc::{boxed::Box, format, vec}; use codec::{Codec, Decode, Encode}; @@ -104,7 +105,6 @@ pub use frame_system::{self, limits::BlockWeights}; pub use primitives::*; pub use sp_core::{keccak_256, H160, H256, U256}; pub use sp_runtime; -pub use weightinfo_extension::OnFinalizeBlockParts; pub use weights::WeightInfo; #[cfg(doc)] diff --git a/substrate/frame/revive/src/vm/pvm/env.rs b/substrate/frame/revive/src/vm/pvm/env.rs index c8b91484c9e53..375459e04bc25 100644 --- a/substrate/frame/revive/src/vm/pvm/env.rs +++ b/substrate/frame/revive/src/vm/pvm/env.rs @@ -30,7 +30,7 @@ use core::mem; use frame_support::traits::Get; use pallet_revive_proc_macro::define_env; use pallet_revive_uapi::{CallFlags, ReturnErrorCode, ReturnFlags}; -use sp_core::{H160, H256, U256}; +use sp_core::U256; use sp_io::hashing::keccak_256; use sp_runtime::{DispatchError, SaturatedConversion}; From 7696c7a3c34f4e639306e4e964e9cf3fe6c732af Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 15 Oct 2025 11:13:31 +0000 Subject: [PATCH 272/273] revive/tests: Revert balance changes Signed-off-by: Alexandru Vasile --- substrate/frame/revive/src/tests/pvm.rs | 4 ++-- substrate/frame/revive/src/tests/sol/host.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/substrate/frame/revive/src/tests/pvm.rs b/substrate/frame/revive/src/tests/pvm.rs index a51a63daca319..85f9a6f26275f 100644 --- a/substrate/frame/revive/src/tests/pvm.rs +++ b/substrate/frame/revive/src/tests/pvm.rs @@ -428,7 +428,7 @@ fn deposit_event_max_value_limit() { ExtBuilder::default().existential_deposit(50).build().execute_with(|| { // Create - let _ = ::Currency::set_balance(&ALICE, 100_000_000_000_000); + let _ = ::Currency::set_balance(&ALICE, 1_000_000); let Contract { addr, .. } = builder::bare_instantiate(Code::Upload(binary)) .native_value(30_000) .build_and_unwrap_contract(); @@ -4020,7 +4020,7 @@ fn call_tracing_works() { let (code, _code_hash) = compile_module("tracing").unwrap(); let (binary_callee, _) = compile_module("tracing_callee").unwrap(); ExtBuilder::default().existential_deposit(200).build().execute_with(|| { - let _ = ::Currency::set_balance(&ALICE, 100_000_000_000_000); + let _ = ::Currency::set_balance(&ALICE, 100_000_000); let Contract { addr: addr_callee, .. } = builder::bare_instantiate(Code::Upload(binary_callee)).build_and_unwrap_contract(); diff --git a/substrate/frame/revive/src/tests/sol/host.rs b/substrate/frame/revive/src/tests/sol/host.rs index 2a765cc6701d1..eaef4fa753797 100644 --- a/substrate/frame/revive/src/tests/sol/host.rs +++ b/substrate/frame/revive/src/tests/sol/host.rs @@ -462,7 +462,7 @@ fn logs_work(fixture_type: FixtureType) { let (code, _) = compile_module_with_type("Host", fixture_type).unwrap(); ExtBuilder::default().build().execute_with(|| { - ::Currency::set_balance(&ALICE, 100_000_000_000_000); + ::Currency::set_balance(&ALICE, 100_000_000_000); let Contract { addr, .. } = builder::bare_instantiate(Code::Upload(code)).build_and_unwrap_contract(); From d73e8e1fc996e06ac7e9b2ef737a456b34258ceb Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Wed, 15 Oct 2025 15:28:45 +0000 Subject: [PATCH 273/273] revive/rpc: Remove substitute for TransactionSigned Signed-off-by: Alexandru Vasile --- substrate/frame/revive/rpc/src/subxt_client.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/substrate/frame/revive/rpc/src/subxt_client.rs b/substrate/frame/revive/rpc/src/subxt_client.rs index 8e190299d7cb6..5edcbcfc37d17 100644 --- a/substrate/frame/revive/rpc/src/subxt_client.rs +++ b/substrate/frame/revive/rpc/src/subxt_client.rs @@ -47,10 +47,6 @@ pub use subxt::config::PolkadotConfig as SrcChainConfig; path = "pallet_revive::evm::api::rpc_types_gen::GenericTransaction", with = "::subxt::utils::Static<::pallet_revive::evm::GenericTransaction>" ), - substitute_type( - path = "pallet_revive::evm::api::rpc_types_gen::TransactionSigned", - with = "::subxt::utils::Static<::pallet_revive::evm::TransactionSigned>" - ), substitute_type( path = "pallet_revive::primitives::EthTransactInfo", with = "::subxt::utils::Static<::pallet_revive::EthTransactInfo>"