mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 02:49:55 +00:00
chore: Now cargo fmt sorts imports and trait methods
This commit is contained in:
@ -2,18 +2,18 @@ use alloy_eips::BlockId;
|
|||||||
use alloy_json_rpc::RpcObject;
|
use alloy_json_rpc::RpcObject;
|
||||||
use alloy_primitives::{Bytes, U256};
|
use alloy_primitives::{Bytes, U256};
|
||||||
use alloy_rpc_types_eth::{
|
use alloy_rpc_types_eth::{
|
||||||
state::{EvmOverrides, StateOverride},
|
|
||||||
BlockOverrides,
|
BlockOverrides,
|
||||||
|
state::{EvmOverrides, StateOverride},
|
||||||
};
|
};
|
||||||
use jsonrpsee::{
|
use jsonrpsee::{
|
||||||
http_client::{HttpClient, HttpClientBuilder},
|
http_client::{HttpClient, HttpClientBuilder},
|
||||||
proc_macros::rpc,
|
proc_macros::rpc,
|
||||||
rpc_params,
|
rpc_params,
|
||||||
types::{error::INTERNAL_ERROR_CODE, ErrorObject},
|
types::{ErrorObject, error::INTERNAL_ERROR_CODE},
|
||||||
};
|
};
|
||||||
use jsonrpsee_core::{async_trait, client::ClientT, ClientError, RpcResult};
|
use jsonrpsee_core::{ClientError, RpcResult, async_trait, client::ClientT};
|
||||||
use reth_rpc::eth::EthApiTypes;
|
use reth_rpc::eth::EthApiTypes;
|
||||||
use reth_rpc_eth_api::{helpers::EthCall, RpcTxReq};
|
use reth_rpc_eth_api::{RpcTxReq, helpers::EthCall};
|
||||||
|
|
||||||
#[rpc(server, namespace = "eth")]
|
#[rpc(server, namespace = "eth")]
|
||||||
pub(crate) trait CallForwarderApi<TxReq: RpcObject> {
|
pub(crate) trait CallForwarderApi<TxReq: RpcObject> {
|
||||||
|
|||||||
@ -15,29 +15,29 @@ use alloy_eips::{BlockId, BlockNumberOrTag};
|
|||||||
use alloy_json_rpc::RpcObject;
|
use alloy_json_rpc::RpcObject;
|
||||||
use alloy_primitives::{B256, U256};
|
use alloy_primitives::{B256, U256};
|
||||||
use alloy_rpc_types::{
|
use alloy_rpc_types::{
|
||||||
pubsub::{Params, SubscriptionKind},
|
|
||||||
BlockTransactions, Filter, FilterChanges, FilterId, Log, PendingTransactionFilterKind,
|
BlockTransactions, Filter, FilterChanges, FilterId, Log, PendingTransactionFilterKind,
|
||||||
TransactionInfo,
|
TransactionInfo,
|
||||||
|
pubsub::{Params, SubscriptionKind},
|
||||||
};
|
};
|
||||||
use jsonrpsee::{proc_macros::rpc, PendingSubscriptionSink, SubscriptionMessage, SubscriptionSink};
|
use jsonrpsee::{PendingSubscriptionSink, SubscriptionMessage, SubscriptionSink, proc_macros::rpc};
|
||||||
use jsonrpsee_core::{async_trait, RpcResult};
|
use jsonrpsee_core::{RpcResult, async_trait};
|
||||||
use jsonrpsee_types::{error::INTERNAL_ERROR_CODE, ErrorObject};
|
use jsonrpsee_types::{ErrorObject, error::INTERNAL_ERROR_CODE};
|
||||||
use reth::{api::FullNodeComponents, builder::rpc::RpcContext, tasks::TaskSpawner};
|
use reth::{api::FullNodeComponents, builder::rpc::RpcContext, tasks::TaskSpawner};
|
||||||
use reth_primitives_traits::{BlockBody as _, SignedTransaction};
|
use reth_primitives_traits::{BlockBody as _, SignedTransaction};
|
||||||
use reth_provider::{BlockIdReader, BlockReader, BlockReaderIdExt, ReceiptProvider};
|
use reth_provider::{BlockIdReader, BlockReader, BlockReaderIdExt, ReceiptProvider};
|
||||||
use reth_rpc::{eth::pubsub::SubscriptionSerializeError, EthFilter, EthPubSub, RpcTypes};
|
use reth_rpc::{EthFilter, EthPubSub, RpcTypes, eth::pubsub::SubscriptionSerializeError};
|
||||||
use reth_rpc_eth_api::{
|
use reth_rpc_eth_api::{
|
||||||
helpers::{EthBlocks, EthTransactions, LoadReceipt},
|
|
||||||
transaction::ConvertReceiptInput,
|
|
||||||
EthApiServer, EthApiTypes, EthFilterApiServer, EthPubSubApiServer, FullEthApiTypes, RpcBlock,
|
EthApiServer, EthApiTypes, EthFilterApiServer, EthPubSubApiServer, FullEthApiTypes, RpcBlock,
|
||||||
RpcConvert, RpcHeader, RpcNodeCoreExt, RpcReceipt, RpcTransaction, RpcTxReq,
|
RpcConvert, RpcHeader, RpcNodeCoreExt, RpcReceipt, RpcTransaction, RpcTxReq,
|
||||||
|
helpers::{EthBlocks, EthTransactions, LoadReceipt},
|
||||||
|
transaction::ConvertReceiptInput,
|
||||||
};
|
};
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use std::{marker::PhantomData, sync::Arc};
|
use std::{marker::PhantomData, sync::Arc};
|
||||||
use tokio_stream::{Stream, StreamExt};
|
use tokio_stream::{Stream, StreamExt};
|
||||||
use tracing::{trace, Instrument};
|
use tracing::{Instrument, trace};
|
||||||
|
|
||||||
use crate::{node::primitives::HlPrimitives, HlBlock};
|
use crate::{HlBlock, node::primitives::HlPrimitives};
|
||||||
|
|
||||||
pub trait EthWrapper:
|
pub trait EthWrapper:
|
||||||
EthApiServer<
|
EthApiServer<
|
||||||
|
|||||||
@ -2,14 +2,14 @@ use std::time::Duration;
|
|||||||
|
|
||||||
use alloy_json_rpc::RpcObject;
|
use alloy_json_rpc::RpcObject;
|
||||||
use alloy_network::Ethereum;
|
use alloy_network::Ethereum;
|
||||||
use alloy_primitives::{Bytes, B256};
|
use alloy_primitives::{B256, Bytes};
|
||||||
use alloy_rpc_types::TransactionRequest;
|
use alloy_rpc_types::TransactionRequest;
|
||||||
use jsonrpsee::{
|
use jsonrpsee::{
|
||||||
http_client::{HttpClient, HttpClientBuilder},
|
http_client::{HttpClient, HttpClientBuilder},
|
||||||
proc_macros::rpc,
|
proc_macros::rpc,
|
||||||
types::{error::INTERNAL_ERROR_CODE, ErrorObject},
|
types::{ErrorObject, error::INTERNAL_ERROR_CODE},
|
||||||
};
|
};
|
||||||
use jsonrpsee_core::{async_trait, client::ClientT, ClientError, RpcResult};
|
use jsonrpsee_core::{ClientError, RpcResult, async_trait, client::ClientT};
|
||||||
use reth::rpc::{result::internal_rpc_err, server_types::eth::EthApiError};
|
use reth::rpc::{result::internal_rpc_err, server_types::eth::EthApiError};
|
||||||
use reth_rpc_eth_api::RpcReceipt;
|
use reth_rpc_eth_api::RpcReceipt;
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
use alloy_chains::{Chain, NamedChain};
|
use alloy_chains::{Chain, NamedChain};
|
||||||
use alloy_primitives::{b256, Address, Bytes, B256, B64, U256};
|
use alloy_primitives::{Address, B64, B256, Bytes, U256, b256};
|
||||||
use reth_chainspec::{ChainHardforks, ChainSpec, EthereumHardfork, ForkCondition, Hardfork};
|
use reth_chainspec::{ChainHardforks, ChainSpec, EthereumHardfork, ForkCondition, Hardfork};
|
||||||
use reth_primitives::{Header, SealedHeader};
|
use reth_primitives::{Header, SealedHeader};
|
||||||
use std::sync::LazyLock;
|
use std::sync::LazyLock;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
use crate::chainspec::{hl::hl_testnet, HlChainSpec};
|
use crate::chainspec::{HlChainSpec, hl::hl_testnet};
|
||||||
|
|
||||||
use super::hl::hl_mainnet;
|
use super::hl::hl_mainnet;
|
||||||
use reth_cli::chainspec::ChainSpecParser;
|
use reth_cli::chainspec::ChainSpecParser;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
use alloy_primitives::{BlockNumber, B256};
|
use alloy_primitives::{B256, BlockNumber};
|
||||||
use reth_provider::{BlockNumReader, ProviderError};
|
use reth_provider::{BlockNumReader, ProviderError};
|
||||||
use std::cmp::Ordering;
|
use std::cmp::Ordering;
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,8 @@ use super::HlEvmInner;
|
|||||||
use crate::evm::{spec::HlSpecId, transaction::HlTxTr};
|
use crate::evm::{spec::HlSpecId, transaction::HlTxTr};
|
||||||
use reth_revm::context::ContextTr;
|
use reth_revm::context::ContextTr;
|
||||||
use revm::{
|
use revm::{
|
||||||
context::Cfg, context_interface::Block, handler::instructions::EthInstructions,
|
Context, Database, context::Cfg, context_interface::Block,
|
||||||
interpreter::interpreter::EthInterpreter, Context, Database,
|
handler::instructions::EthInstructions, interpreter::interpreter::EthInterpreter,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Trait that allows for hl HlEvm to be built.
|
/// Trait that allows for hl HlEvm to be built.
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
use crate::evm::{spec::HlSpecId, transaction::HlTxEnv};
|
use crate::evm::{spec::HlSpecId, transaction::HlTxEnv};
|
||||||
use revm::{
|
use revm::{
|
||||||
|
Context, Journal, MainContext,
|
||||||
context::{BlockEnv, CfgEnv, TxEnv},
|
context::{BlockEnv, CfgEnv, TxEnv},
|
||||||
database_interface::EmptyDB,
|
database_interface::EmptyDB,
|
||||||
Context, Journal, MainContext,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Type alias for the default context type of the HlEvm.
|
/// Type alias for the default context type of the HlEvm.
|
||||||
|
|||||||
@ -1,16 +1,16 @@
|
|||||||
use super::HlEvmInner;
|
use super::HlEvmInner;
|
||||||
use crate::evm::{spec::HlSpecId, transaction::HlTxTr};
|
use crate::evm::{spec::HlSpecId, transaction::HlTxTr};
|
||||||
use revm::{
|
use revm::{
|
||||||
context::{result::HaltReason, ContextSetters},
|
|
||||||
context_interface::{
|
|
||||||
result::{EVMError, ExecutionResult, ResultAndState},
|
|
||||||
Cfg, ContextTr, Database, JournalTr,
|
|
||||||
},
|
|
||||||
handler::{instructions::EthInstructions, PrecompileProvider},
|
|
||||||
inspector::{InspectCommitEvm, InspectEvm, Inspector, JournalExt},
|
|
||||||
interpreter::{interpreter::EthInterpreter, InterpreterResult},
|
|
||||||
state::EvmState,
|
|
||||||
DatabaseCommit, ExecuteCommitEvm, ExecuteEvm,
|
DatabaseCommit, ExecuteCommitEvm, ExecuteEvm,
|
||||||
|
context::{ContextSetters, result::HaltReason},
|
||||||
|
context_interface::{
|
||||||
|
Cfg, ContextTr, Database, JournalTr,
|
||||||
|
result::{EVMError, ExecutionResult, ResultAndState},
|
||||||
|
},
|
||||||
|
handler::{PrecompileProvider, instructions::EthInstructions},
|
||||||
|
inspector::{InspectCommitEvm, InspectEvm, Inspector, JournalExt},
|
||||||
|
interpreter::{InterpreterResult, interpreter::EthInterpreter},
|
||||||
|
state::EvmState,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Type alias for HL context
|
// Type alias for HL context
|
||||||
|
|||||||
@ -1,15 +1,15 @@
|
|||||||
use revm::{
|
use revm::{
|
||||||
|
Inspector,
|
||||||
bytecode::opcode::BLOCKHASH,
|
bytecode::opcode::BLOCKHASH,
|
||||||
context::{ContextSetters, Evm, FrameStack},
|
context::{ContextSetters, Evm, FrameStack},
|
||||||
context_interface::ContextTr,
|
context_interface::ContextTr,
|
||||||
handler::{
|
handler::{
|
||||||
|
EthFrame, EthPrecompiles, EvmTr, FrameInitOrResult, FrameTr, PrecompileProvider,
|
||||||
evm::{ContextDbError, FrameInitResult},
|
evm::{ContextDbError, FrameInitResult},
|
||||||
instructions::{EthInstructions, InstructionProvider},
|
instructions::{EthInstructions, InstructionProvider},
|
||||||
EthFrame, EthPrecompiles, EvmTr, FrameInitOrResult, FrameTr, PrecompileProvider,
|
|
||||||
},
|
},
|
||||||
inspector::{InspectorEvmTr, JournalExt},
|
inspector::{InspectorEvmTr, JournalExt},
|
||||||
interpreter::{interpreter::EthInterpreter, Instruction, InterpreterResult},
|
interpreter::{Instruction, InterpreterResult, interpreter::EthInterpreter},
|
||||||
Inspector,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::chainspec::MAINNET_CHAIN_ID;
|
use crate::chainspec::MAINNET_CHAIN_ID;
|
||||||
|
|||||||
@ -7,8 +7,8 @@ use alloy_primitives::keccak256;
|
|||||||
use revm::{
|
use revm::{
|
||||||
context::Host,
|
context::Host,
|
||||||
interpreter::{
|
interpreter::{
|
||||||
as_u64_saturated, interpreter_types::StackTr, popn_top, InstructionContext,
|
InstructionContext, InterpreterTypes, as_u64_saturated, interpreter_types::StackTr,
|
||||||
InterpreterTypes,
|
popn_top,
|
||||||
},
|
},
|
||||||
primitives::{BLOCK_HASH_HISTORY, U256},
|
primitives::{BLOCK_HASH_HISTORY, U256},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -7,7 +7,7 @@ use reth_primitives_traits::SignerRecoverable;
|
|||||||
use revm::{
|
use revm::{
|
||||||
context::TxEnv,
|
context::TxEnv,
|
||||||
context_interface::transaction::Transaction,
|
context_interface::transaction::Transaction,
|
||||||
primitives::{Address, Bytes, TxKind, B256, U256},
|
primitives::{Address, B256, Bytes, TxKind, U256},
|
||||||
};
|
};
|
||||||
|
|
||||||
#[auto_impl(&, &mut, Box, Arc)]
|
#[auto_impl(&, &mut, Box, Arc)]
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
use alloy_chains::{Chain, NamedChain};
|
use alloy_chains::{Chain, NamedChain};
|
||||||
use core::any::Any;
|
use core::any::Any;
|
||||||
use reth_chainspec::ForkCondition;
|
use reth_chainspec::ForkCondition;
|
||||||
use reth_ethereum_forks::{hardfork, ChainHardforks, EthereumHardfork, Hardfork};
|
use reth_ethereum_forks::{ChainHardforks, EthereumHardfork, Hardfork, hardfork};
|
||||||
|
|
||||||
hardfork!(
|
hardfork!(
|
||||||
/// The name of a hl hardfork.
|
/// The name of a hl hardfork.
|
||||||
|
|||||||
@ -9,12 +9,12 @@ use reth_hl::{
|
|||||||
hl_node_compliance::install_hl_node_compliance,
|
hl_node_compliance::install_hl_node_compliance,
|
||||||
tx_forwarder::{self, EthForwarderApiServer},
|
tx_forwarder::{self, EthForwarderApiServer},
|
||||||
},
|
},
|
||||||
chainspec::{parser::HlChainSpecParser, HlChainSpec},
|
chainspec::{HlChainSpec, parser::HlChainSpecParser},
|
||||||
node::{
|
node::{
|
||||||
|
HlNode,
|
||||||
cli::{Cli, HlNodeArgs},
|
cli::{Cli, HlNodeArgs},
|
||||||
rpc::precompile::{HlBlockPrecompileApiServer, HlBlockPrecompileExt},
|
rpc::precompile::{HlBlockPrecompileApiServer, HlBlockPrecompileExt},
|
||||||
storage::tables::Tables,
|
storage::tables::Tables,
|
||||||
HlNode,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
use tracing::info;
|
use tracing::info;
|
||||||
|
|||||||
@ -1,21 +1,21 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
chainspec::{parser::HlChainSpecParser, HlChainSpec},
|
chainspec::{HlChainSpec, parser::HlChainSpecParser},
|
||||||
node::{consensus::HlConsensus, evm::config::HlEvmConfig, storage::tables::Tables, HlNode},
|
node::{HlNode, consensus::HlConsensus, evm::config::HlEvmConfig, storage::tables::Tables},
|
||||||
pseudo_peer::BlockSourceArgs,
|
pseudo_peer::BlockSourceArgs,
|
||||||
};
|
};
|
||||||
use clap::{Args, Parser};
|
use clap::{Args, Parser};
|
||||||
use reth::{
|
use reth::{
|
||||||
|
CliRunner,
|
||||||
args::LogArgs,
|
args::LogArgs,
|
||||||
builder::{NodeBuilder, WithLaunchContext},
|
builder::{NodeBuilder, WithLaunchContext},
|
||||||
cli::Commands,
|
cli::Commands,
|
||||||
prometheus_exporter::install_prometheus_recorder,
|
prometheus_exporter::install_prometheus_recorder,
|
||||||
version::version_metadata,
|
version::version_metadata,
|
||||||
CliRunner,
|
|
||||||
};
|
};
|
||||||
use reth_chainspec::EthChainSpec;
|
use reth_chainspec::EthChainSpec;
|
||||||
use reth_cli::chainspec::ChainSpecParser;
|
use reth_cli::chainspec::ChainSpecParser;
|
||||||
use reth_cli_commands::{common::EnvironmentArgs, launcher::FnLauncher};
|
use reth_cli_commands::{common::EnvironmentArgs, launcher::FnLauncher};
|
||||||
use reth_db::{init_db, mdbx::init_db_for, DatabaseEnv};
|
use reth_db::{DatabaseEnv, init_db, mdbx::init_db_for};
|
||||||
use reth_tracing::FileWorkerGuard;
|
use reth_tracing::FileWorkerGuard;
|
||||||
use std::{
|
use std::{
|
||||||
fmt::{self},
|
fmt::{self},
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
use crate::{hardforks::HlHardforks, node::HlNode, HlBlock, HlBlockBody, HlPrimitives};
|
use crate::{HlBlock, HlBlockBody, HlPrimitives, hardforks::HlHardforks, node::HlNode};
|
||||||
use alloy_consensus::Header;
|
use alloy_consensus::Header;
|
||||||
use reth::{
|
use reth::{
|
||||||
api::{FullNodeTypes, NodeTypes},
|
api::{FullNodeTypes, NodeTypes},
|
||||||
beacon_consensus::EthBeaconConsensus,
|
beacon_consensus::EthBeaconConsensus,
|
||||||
builder::{components::ConsensusBuilder, BuilderContext},
|
builder::{BuilderContext, components::ConsensusBuilder},
|
||||||
consensus::{Consensus, ConsensusError, FullConsensus, HeaderValidator},
|
consensus::{Consensus, ConsensusError, FullConsensus, HeaderValidator},
|
||||||
consensus_common::validation::{
|
consensus_common::validation::{
|
||||||
validate_against_parent_4844, validate_against_parent_hash_number,
|
validate_against_parent_4844, validate_against_parent_hash_number,
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
//! Copy of reth codebase.
|
//! Copy of reth codebase.
|
||||||
|
|
||||||
use alloy_consensus::{proofs::calculate_receipt_root, BlockHeader, TxReceipt};
|
use alloy_consensus::{BlockHeader, TxReceipt, proofs::calculate_receipt_root};
|
||||||
use alloy_eips::eip7685::Requests;
|
use alloy_eips::eip7685::Requests;
|
||||||
use alloy_primitives::{Bloom, B256};
|
use alloy_primitives::{B256, Bloom};
|
||||||
use reth::consensus::ConsensusError;
|
use reth::consensus::ConsensusError;
|
||||||
use reth_chainspec::EthereumHardforks;
|
use reth_chainspec::EthereumHardforks;
|
||||||
use reth_primitives::{gas_spent_by_transactions, GotExpected, RecoveredBlock};
|
use reth_primitives::{GotExpected, RecoveredBlock, gas_spent_by_transactions};
|
||||||
use reth_primitives_traits::{Block, Receipt as ReceiptTrait};
|
use reth_primitives_traits::{Block, Receipt as ReceiptTrait};
|
||||||
|
|
||||||
pub fn validate_block_post_execution<B, R, ChainSpec>(
|
pub fn validate_block_post_execution<B, R, ChainSpec>(
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
node::evm::config::{HlBlockExecutorFactory, HlEvmConfig},
|
|
||||||
HlBlock,
|
HlBlock,
|
||||||
|
node::evm::config::{HlBlockExecutorFactory, HlEvmConfig},
|
||||||
};
|
};
|
||||||
use alloy_consensus::Header;
|
use alloy_consensus::Header;
|
||||||
use reth_evm::{
|
use reth_evm::{
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
use super::{executor::HlBlockExecutor, factory::HlEvmFactory};
|
use super::{executor::HlBlockExecutor, factory::HlEvmFactory};
|
||||||
use crate::{
|
use crate::{
|
||||||
|
HlBlock, HlBlockBody, HlPrimitives,
|
||||||
chainspec::HlChainSpec,
|
chainspec::HlChainSpec,
|
||||||
evm::{spec::HlSpecId, transaction::HlTxEnv},
|
evm::{spec::HlSpecId, transaction::HlTxEnv},
|
||||||
hardforks::HlHardforks,
|
hardforks::HlHardforks,
|
||||||
@ -9,31 +10,30 @@ use crate::{
|
|||||||
rpc::engine_api::validator::HlExecutionData,
|
rpc::engine_api::validator::HlExecutionData,
|
||||||
types::HlExtras,
|
types::HlExtras,
|
||||||
},
|
},
|
||||||
HlBlock, HlBlockBody, HlPrimitives,
|
|
||||||
};
|
};
|
||||||
use alloy_consensus::{BlockHeader, Header, Transaction as _, TxReceipt, EMPTY_OMMER_ROOT_HASH};
|
use alloy_consensus::{BlockHeader, EMPTY_OMMER_ROOT_HASH, Header, Transaction as _, TxReceipt};
|
||||||
use alloy_eips::{merge::BEACON_NONCE, Encodable2718};
|
use alloy_eips::{Encodable2718, merge::BEACON_NONCE};
|
||||||
use alloy_primitives::{Log, U256};
|
use alloy_primitives::{Log, U256};
|
||||||
use reth_chainspec::{EthChainSpec, EthereumHardforks, Hardforks};
|
use reth_chainspec::{EthChainSpec, EthereumHardforks, Hardforks};
|
||||||
use reth_evm::{
|
use reth_evm::{
|
||||||
block::{BlockExecutionError, BlockExecutorFactory, BlockExecutorFor},
|
|
||||||
eth::{receipt_builder::ReceiptBuilder, EthBlockExecutionCtx},
|
|
||||||
execute::{BlockAssembler, BlockAssemblerInput},
|
|
||||||
precompiles::PrecompilesMap,
|
|
||||||
ConfigureEngineEvm, ConfigureEvm, EvmEnv, EvmEnvFor, EvmFactory, ExecutableTxIterator,
|
ConfigureEngineEvm, ConfigureEvm, EvmEnv, EvmEnvFor, EvmFactory, ExecutableTxIterator,
|
||||||
ExecutionCtxFor, FromRecoveredTx, FromTxWithEncoded, IntoTxEnv, NextBlockEnvAttributes,
|
ExecutionCtxFor, FromRecoveredTx, FromTxWithEncoded, IntoTxEnv, NextBlockEnvAttributes,
|
||||||
|
block::{BlockExecutionError, BlockExecutorFactory, BlockExecutorFor},
|
||||||
|
eth::{EthBlockExecutionCtx, receipt_builder::ReceiptBuilder},
|
||||||
|
execute::{BlockAssembler, BlockAssemblerInput},
|
||||||
|
precompiles::PrecompilesMap,
|
||||||
};
|
};
|
||||||
use reth_evm_ethereum::EthBlockAssembler;
|
use reth_evm_ethereum::EthBlockAssembler;
|
||||||
use reth_payload_primitives::NewPayloadError;
|
use reth_payload_primitives::NewPayloadError;
|
||||||
use reth_primitives::{logs_bloom, BlockTy, HeaderTy, Receipt, SealedBlock, SealedHeader};
|
use reth_primitives::{BlockTy, HeaderTy, Receipt, SealedBlock, SealedHeader, logs_bloom};
|
||||||
use reth_primitives_traits::{proofs, SignerRecoverable, WithEncoded};
|
use reth_primitives_traits::{SignerRecoverable, WithEncoded, proofs};
|
||||||
use reth_provider::BlockExecutionResult;
|
use reth_provider::BlockExecutionResult;
|
||||||
use reth_revm::State;
|
use reth_revm::State;
|
||||||
use revm::{
|
use revm::{
|
||||||
|
Inspector,
|
||||||
context::{BlockEnv, CfgEnv, TxEnv},
|
context::{BlockEnv, CfgEnv, TxEnv},
|
||||||
context_interface::block::BlobExcessGasAndPrice,
|
context_interface::block::BlobExcessGasAndPrice,
|
||||||
primitives::hardfork::SpecId,
|
primitives::hardfork::SpecId,
|
||||||
Inspector,
|
|
||||||
};
|
};
|
||||||
use std::{borrow::Cow, convert::Infallible, sync::Arc};
|
use std::{borrow::Cow, convert::Infallible, sync::Arc};
|
||||||
|
|
||||||
@ -45,10 +45,10 @@ pub struct HlBlockAssembler {
|
|||||||
impl<F> BlockAssembler<F> for HlBlockAssembler
|
impl<F> BlockAssembler<F> for HlBlockAssembler
|
||||||
where
|
where
|
||||||
F: for<'a> BlockExecutorFactory<
|
F: for<'a> BlockExecutorFactory<
|
||||||
ExecutionCtx<'a> = HlBlockExecutionCtx<'a>,
|
ExecutionCtx<'a> = HlBlockExecutionCtx<'a>,
|
||||||
Transaction = TransactionSigned,
|
Transaction = TransactionSigned,
|
||||||
Receipt = Receipt,
|
Receipt = Receipt,
|
||||||
>,
|
>,
|
||||||
{
|
{
|
||||||
type Block = HlBlock;
|
type Block = HlBlock;
|
||||||
|
|
||||||
@ -240,9 +240,9 @@ where
|
|||||||
R: ReceiptBuilder<Transaction = TransactionSigned, Receipt: TxReceipt<Log = Log>>,
|
R: ReceiptBuilder<Transaction = TransactionSigned, Receipt: TxReceipt<Log = Log>>,
|
||||||
Spec: EthereumHardforks + HlHardforks + EthChainSpec + Hardforks + Clone,
|
Spec: EthereumHardforks + HlHardforks + EthChainSpec + Hardforks + Clone,
|
||||||
EvmF: EvmFactory<
|
EvmF: EvmFactory<
|
||||||
Tx: FromRecoveredTx<TransactionSigned> + FromTxWithEncoded<TransactionSigned>,
|
Tx: FromRecoveredTx<TransactionSigned> + FromTxWithEncoded<TransactionSigned>,
|
||||||
Precompiles = PrecompilesMap,
|
Precompiles = PrecompilesMap,
|
||||||
>,
|
>,
|
||||||
R::Transaction: From<TransactionSigned> + Clone,
|
R::Transaction: From<TransactionSigned> + Clone,
|
||||||
Self: 'static,
|
Self: 'static,
|
||||||
HlTxEnv<TxEnv>: IntoTxEnv<<EvmF as EvmFactory>::Tx>,
|
HlTxEnv<TxEnv>: IntoTxEnv<<EvmF as EvmFactory>::Tx>,
|
||||||
|
|||||||
@ -7,16 +7,16 @@ use crate::evm::{
|
|||||||
spec::HlSpecId,
|
spec::HlSpecId,
|
||||||
transaction::HlTxEnv,
|
transaction::HlTxEnv,
|
||||||
};
|
};
|
||||||
use reth_evm::{precompiles::PrecompilesMap, Database, EvmEnv, EvmFactory};
|
use reth_evm::{Database, EvmEnv, EvmFactory, precompiles::PrecompilesMap};
|
||||||
use reth_revm::Context;
|
use reth_revm::Context;
|
||||||
use revm::{
|
use revm::{
|
||||||
|
Inspector,
|
||||||
context::{
|
context::{
|
||||||
result::{EVMError, HaltReason},
|
|
||||||
TxEnv,
|
TxEnv,
|
||||||
|
result::{EVMError, HaltReason},
|
||||||
},
|
},
|
||||||
inspector::NoOpInspector,
|
inspector::NoOpInspector,
|
||||||
precompile::{PrecompileSpecId, Precompiles},
|
precompile::{PrecompileSpecId, Precompiles},
|
||||||
Inspector,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Factory producing [`HlEvm`].
|
/// Factory producing [`HlEvm`].
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
evm::{
|
evm::{
|
||||||
api::{ctx::HlContext, HlEvmInner},
|
api::{HlEvmInner, ctx::HlContext},
|
||||||
spec::HlSpecId,
|
spec::HlSpecId,
|
||||||
transaction::HlTxEnv,
|
transaction::HlTxEnv,
|
||||||
},
|
},
|
||||||
@ -10,18 +10,18 @@ use alloy_primitives::{Address, Bytes};
|
|||||||
use config::HlEvmConfig;
|
use config::HlEvmConfig;
|
||||||
use reth::{
|
use reth::{
|
||||||
api::FullNodeTypes,
|
api::FullNodeTypes,
|
||||||
builder::{components::ExecutorBuilder, BuilderContext},
|
builder::{BuilderContext, components::ExecutorBuilder},
|
||||||
};
|
};
|
||||||
use reth_evm::{Database, Evm, EvmEnv};
|
use reth_evm::{Database, Evm, EvmEnv};
|
||||||
use revm::{
|
use revm::{
|
||||||
context::{
|
|
||||||
result::{EVMError, ExecutionResult, HaltReason, Output, ResultAndState, SuccessReason},
|
|
||||||
BlockEnv, TxEnv,
|
|
||||||
},
|
|
||||||
handler::{instructions::EthInstructions, EthPrecompiles, PrecompileProvider},
|
|
||||||
interpreter::{interpreter::EthInterpreter, InterpreterResult},
|
|
||||||
state::EvmState,
|
|
||||||
Context, ExecuteEvm, InspectEvm, Inspector,
|
Context, ExecuteEvm, InspectEvm, Inspector,
|
||||||
|
context::{
|
||||||
|
BlockEnv, TxEnv,
|
||||||
|
result::{EVMError, ExecutionResult, HaltReason, Output, ResultAndState, SuccessReason},
|
||||||
|
},
|
||||||
|
handler::{EthPrecompiles, PrecompileProvider, instructions::EthInstructions},
|
||||||
|
interpreter::{InterpreterResult, interpreter::EthInterpreter},
|
||||||
|
state::EvmState,
|
||||||
};
|
};
|
||||||
use std::ops::{Deref, DerefMut};
|
use std::ops::{Deref, DerefMut};
|
||||||
|
|
||||||
@ -98,11 +98,7 @@ where
|
|||||||
&mut self,
|
&mut self,
|
||||||
tx: Self::Tx,
|
tx: Self::Tx,
|
||||||
) -> Result<ResultAndState<Self::HaltReason>, Self::Error> {
|
) -> Result<ResultAndState<Self::HaltReason>, Self::Error> {
|
||||||
if self.inspect {
|
if self.inspect { self.inner.inspect_tx(tx) } else { self.inner.transact(tx) }
|
||||||
self.inner.inspect_tx(tx)
|
|
||||||
} else {
|
|
||||||
self.inner.transact(tx)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn transact_system_call(
|
fn transact_system_call(
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
use alloy_primitives::{address, Address};
|
use alloy_primitives::{Address, address};
|
||||||
use reth_evm::block::BlockExecutionError;
|
use reth_evm::block::BlockExecutionError;
|
||||||
use revm::{primitives::HashMap, state::Account};
|
use revm::{primitives::HashMap, state::Account};
|
||||||
|
|
||||||
|
|||||||
@ -4,11 +4,11 @@ use crate::{
|
|||||||
pool::HlPoolBuilder,
|
pool::HlPoolBuilder,
|
||||||
primitives::{HlBlock, HlPrimitives},
|
primitives::{HlBlock, HlPrimitives},
|
||||||
rpc::{
|
rpc::{
|
||||||
|
HlEthApiBuilder,
|
||||||
engine_api::{
|
engine_api::{
|
||||||
builder::HlEngineApiBuilder, payload::HlPayloadTypes,
|
builder::HlEngineApiBuilder, payload::HlPayloadTypes,
|
||||||
validator::HlPayloadValidatorBuilder,
|
validator::HlPayloadValidatorBuilder,
|
||||||
},
|
},
|
||||||
HlEthApiBuilder,
|
|
||||||
},
|
},
|
||||||
storage::HlStorage,
|
storage::HlStorage,
|
||||||
},
|
},
|
||||||
@ -20,14 +20,14 @@ use network::HlNetworkBuilder;
|
|||||||
use reth::{
|
use reth::{
|
||||||
api::{FullNodeTypes, NodeTypes},
|
api::{FullNodeTypes, NodeTypes},
|
||||||
builder::{
|
builder::{
|
||||||
|
Node, NodeAdapter,
|
||||||
components::{ComponentsBuilder, NoopPayloadServiceBuilder},
|
components::{ComponentsBuilder, NoopPayloadServiceBuilder},
|
||||||
rpc::RpcAddOns,
|
rpc::RpcAddOns,
|
||||||
Node, NodeAdapter,
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
use reth_engine_primitives::ConsensusEngineHandle;
|
use reth_engine_primitives::ConsensusEngineHandle;
|
||||||
use std::{marker::PhantomData, sync::Arc};
|
use std::{marker::PhantomData, sync::Arc};
|
||||||
use tokio::sync::{oneshot, Mutex};
|
use tokio::sync::{Mutex, oneshot};
|
||||||
|
|
||||||
pub mod cli;
|
pub mod cli;
|
||||||
pub mod consensus;
|
pub mod consensus;
|
||||||
|
|||||||
@ -8,7 +8,7 @@ use reth_primitives::NodePrimitives;
|
|||||||
use service::{BlockMsg, ImportEvent, Outcome};
|
use service::{BlockMsg, ImportEvent, Outcome};
|
||||||
use std::{
|
use std::{
|
||||||
fmt,
|
fmt,
|
||||||
task::{ready, Context, Poll},
|
task::{Context, Poll, ready},
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::node::network::HlNewBlock;
|
use crate::node::network::HlNewBlock;
|
||||||
|
|||||||
@ -1,17 +1,17 @@
|
|||||||
use super::handle::ImportHandle;
|
use super::handle::ImportHandle;
|
||||||
use crate::{
|
use crate::{
|
||||||
|
HlBlock, HlBlockBody,
|
||||||
consensus::HlConsensus,
|
consensus::HlConsensus,
|
||||||
node::{
|
node::{
|
||||||
network::HlNewBlock,
|
network::HlNewBlock,
|
||||||
rpc::engine_api::payload::HlPayloadTypes,
|
rpc::engine_api::payload::HlPayloadTypes,
|
||||||
types::{BlockAndReceipts, EvmBlock},
|
types::{BlockAndReceipts, EvmBlock},
|
||||||
},
|
},
|
||||||
HlBlock, HlBlockBody,
|
|
||||||
};
|
};
|
||||||
use alloy_consensus::{BlockBody, Header};
|
use alloy_consensus::{BlockBody, Header};
|
||||||
use alloy_primitives::U128;
|
use alloy_primitives::U128;
|
||||||
use alloy_rpc_types::engine::{ForkchoiceState, PayloadStatusEnum};
|
use alloy_rpc_types::engine::{ForkchoiceState, PayloadStatusEnum};
|
||||||
use futures::{future::Either, stream::FuturesUnordered, StreamExt};
|
use futures::{StreamExt, future::Either, stream::FuturesUnordered};
|
||||||
use reth_engine_primitives::{ConsensusEngineHandle, EngineTypes};
|
use reth_engine_primitives::{ConsensusEngineHandle, EngineTypes};
|
||||||
use reth_eth_wire::NewBlock;
|
use reth_eth_wire::NewBlock;
|
||||||
use reth_network::{
|
use reth_network::{
|
||||||
|
|||||||
@ -1,20 +1,20 @@
|
|||||||
#![allow(clippy::owned_cow)]
|
#![allow(clippy::owned_cow)]
|
||||||
use crate::{
|
use crate::{
|
||||||
|
HlBlock,
|
||||||
consensus::HlConsensus,
|
consensus::HlConsensus,
|
||||||
node::{
|
node::{
|
||||||
network::block_import::{handle::ImportHandle, service::ImportService, HlBlockImport},
|
HlNode,
|
||||||
|
network::block_import::{HlBlockImport, handle::ImportHandle, service::ImportService},
|
||||||
primitives::HlPrimitives,
|
primitives::HlPrimitives,
|
||||||
rpc::engine_api::payload::HlPayloadTypes,
|
rpc::engine_api::payload::HlPayloadTypes,
|
||||||
types::ReadPrecompileCalls,
|
types::ReadPrecompileCalls,
|
||||||
HlNode,
|
|
||||||
},
|
},
|
||||||
pseudo_peer::{start_pseudo_peer, BlockSourceConfig},
|
pseudo_peer::{BlockSourceConfig, start_pseudo_peer},
|
||||||
HlBlock,
|
|
||||||
};
|
};
|
||||||
use alloy_rlp::{Decodable, Encodable};
|
use alloy_rlp::{Decodable, Encodable};
|
||||||
use reth::{
|
use reth::{
|
||||||
api::{FullNodeTypes, TxTy},
|
api::{FullNodeTypes, TxTy},
|
||||||
builder::{components::NetworkBuilder, BuilderContext},
|
builder::{BuilderContext, components::NetworkBuilder},
|
||||||
transaction_pool::{PoolTransaction, TransactionPool},
|
transaction_pool::{PoolTransaction, TransactionPool},
|
||||||
};
|
};
|
||||||
use reth_discv4::NodeRecord;
|
use reth_discv4::NodeRecord;
|
||||||
@ -26,7 +26,7 @@ use reth_network_api::PeersInfo;
|
|||||||
use reth_provider::StageCheckpointReader;
|
use reth_provider::StageCheckpointReader;
|
||||||
use reth_stages_types::StageId;
|
use reth_stages_types::StageId;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use tokio::sync::{mpsc, oneshot, Mutex};
|
use tokio::sync::{Mutex, mpsc, oneshot};
|
||||||
use tracing::info;
|
use tracing::info;
|
||||||
|
|
||||||
pub mod block_import;
|
pub mod block_import;
|
||||||
@ -38,8 +38,8 @@ pub struct HlNewBlock(pub NewBlock<HlBlock>);
|
|||||||
mod rlp {
|
mod rlp {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::{
|
use crate::{
|
||||||
node::primitives::{BlockBody, TransactionSigned},
|
|
||||||
HlBlockBody,
|
HlBlockBody,
|
||||||
|
node::primitives::{BlockBody, TransactionSigned},
|
||||||
};
|
};
|
||||||
use alloy_consensus::{BlobTransactionSidecar, Header};
|
use alloy_consensus::{BlobTransactionSidecar, Header};
|
||||||
use alloy_primitives::{Address, U128};
|
use alloy_primitives::{Address, U128};
|
||||||
|
|||||||
@ -6,12 +6,12 @@
|
|||||||
//! Ethereum transaction pool only supports TransactionSigned (EthereumTxEnvelope<TxEip4844>),
|
//! Ethereum transaction pool only supports TransactionSigned (EthereumTxEnvelope<TxEip4844>),
|
||||||
//! hence this placeholder for the transaction pool.
|
//! hence this placeholder for the transaction pool.
|
||||||
|
|
||||||
use crate::node::{primitives::TransactionSigned, HlNode};
|
use crate::node::{HlNode, primitives::TransactionSigned};
|
||||||
use alloy_consensus::{
|
use alloy_consensus::{
|
||||||
error::ValueError, EthereumTxEnvelope, Transaction as TransactionTrait, TxEip4844,
|
EthereumTxEnvelope, Transaction as TransactionTrait, TxEip4844, error::ValueError,
|
||||||
};
|
};
|
||||||
use alloy_eips::{eip7702::SignedAuthorization, Typed2718};
|
use alloy_eips::{Typed2718, eip7702::SignedAuthorization};
|
||||||
use alloy_primitives::{Address, Bytes, ChainId, TxHash, TxKind, B256, U256};
|
use alloy_primitives::{Address, B256, Bytes, ChainId, TxHash, TxKind, U256};
|
||||||
use alloy_rpc_types::AccessList;
|
use alloy_rpc_types::AccessList;
|
||||||
use reth::{
|
use reth::{
|
||||||
api::FullNodeTypes, builder::components::PoolBuilder, transaction_pool::PoolTransaction,
|
api::FullNodeTypes, builder::components::PoolBuilder, transaction_pool::PoolTransaction,
|
||||||
@ -19,7 +19,7 @@ use reth::{
|
|||||||
use reth_ethereum_primitives::PooledTransactionVariant;
|
use reth_ethereum_primitives::PooledTransactionVariant;
|
||||||
use reth_primitives::Recovered;
|
use reth_primitives::Recovered;
|
||||||
use reth_primitives_traits::InMemorySize;
|
use reth_primitives_traits::InMemorySize;
|
||||||
use reth_transaction_pool::{noop::NoopTransactionPool, EthPoolTransaction};
|
use reth_transaction_pool::{EthPoolTransaction, noop::NoopTransactionPool};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
pub struct HlPoolBuilder;
|
pub struct HlPoolBuilder;
|
||||||
|
|||||||
@ -1,19 +1,19 @@
|
|||||||
use core::fmt;
|
use core::fmt;
|
||||||
|
|
||||||
use super::{HlEthApi, HlRpcNodeCore};
|
use super::{HlEthApi, HlRpcNodeCore};
|
||||||
use crate::{node::evm::apply_precompiles, HlBlock};
|
use crate::{HlBlock, node::evm::apply_precompiles};
|
||||||
use alloy_evm::Evm;
|
|
||||||
use alloy_consensus::transaction::TxHashRef;
|
use alloy_consensus::transaction::TxHashRef;
|
||||||
|
use alloy_evm::Evm;
|
||||||
use alloy_primitives::B256;
|
use alloy_primitives::B256;
|
||||||
use reth::rpc::server_types::eth::EthApiError;
|
use reth::rpc::server_types::eth::EthApiError;
|
||||||
use reth_evm::{ConfigureEvm, Database, EvmEnvFor, HaltReasonFor, InspectorFor, SpecFor, TxEnvFor};
|
use reth_evm::{ConfigureEvm, Database, EvmEnvFor, HaltReasonFor, InspectorFor, SpecFor, TxEnvFor};
|
||||||
use reth_primitives::{NodePrimitives, Recovered};
|
use reth_primitives::{NodePrimitives, Recovered};
|
||||||
use reth_provider::{ProviderError, ProviderTx};
|
use reth_provider::{ProviderError, ProviderTx};
|
||||||
use reth_rpc_eth_api::{
|
use reth_rpc_eth_api::{
|
||||||
helpers::{Call, EthCall},
|
|
||||||
FromEvmError, RpcConvert, RpcNodeCore,
|
FromEvmError, RpcConvert, RpcNodeCore,
|
||||||
|
helpers::{Call, EthCall},
|
||||||
};
|
};
|
||||||
use revm::{context::result::ResultAndState, DatabaseCommit};
|
use revm::{DatabaseCommit, context::result::ResultAndState};
|
||||||
|
|
||||||
impl<N> HlRpcNodeCore for N where N: RpcNodeCore<Primitives: NodePrimitives<Block = HlBlock>> {}
|
impl<N> HlRpcNodeCore for N where N: RpcNodeCore<Primitives: NodePrimitives<Block = HlBlock>> {}
|
||||||
|
|
||||||
@ -22,11 +22,11 @@ where
|
|||||||
N: HlRpcNodeCore,
|
N: HlRpcNodeCore,
|
||||||
EthApiError: FromEvmError<N::Evm>,
|
EthApiError: FromEvmError<N::Evm>,
|
||||||
Rpc: RpcConvert<
|
Rpc: RpcConvert<
|
||||||
Primitives = N::Primitives,
|
Primitives = N::Primitives,
|
||||||
Error = EthApiError,
|
Error = EthApiError,
|
||||||
TxEnv = TxEnvFor<N::Evm>,
|
TxEnv = TxEnvFor<N::Evm>,
|
||||||
Spec = SpecFor<N::Evm>,
|
Spec = SpecFor<N::Evm>,
|
||||||
>,
|
>,
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,11 +35,11 @@ where
|
|||||||
N: HlRpcNodeCore,
|
N: HlRpcNodeCore,
|
||||||
EthApiError: FromEvmError<N::Evm>,
|
EthApiError: FromEvmError<N::Evm>,
|
||||||
Rpc: RpcConvert<
|
Rpc: RpcConvert<
|
||||||
Primitives = N::Primitives,
|
Primitives = N::Primitives,
|
||||||
Error = EthApiError,
|
Error = EthApiError,
|
||||||
TxEnv = TxEnvFor<N::Evm>,
|
TxEnv = TxEnvFor<N::Evm>,
|
||||||
Spec = SpecFor<N::Evm>,
|
Spec = SpecFor<N::Evm>,
|
||||||
>,
|
>,
|
||||||
{
|
{
|
||||||
#[inline]
|
#[inline]
|
||||||
fn call_gas_limit(&self) -> u64 {
|
fn call_gas_limit(&self) -> u64 {
|
||||||
|
|||||||
@ -9,7 +9,7 @@ use alloy_primitives::B256;
|
|||||||
use alloy_rpc_types_engine::PayloadError;
|
use alloy_rpc_types_engine::PayloadError;
|
||||||
use reth::{
|
use reth::{
|
||||||
api::{FullNodeComponents, NodeTypes},
|
api::{FullNodeComponents, NodeTypes},
|
||||||
builder::{rpc::PayloadValidatorBuilder, AddOnsContext},
|
builder::{AddOnsContext, rpc::PayloadValidatorBuilder},
|
||||||
};
|
};
|
||||||
use reth_engine_primitives::{ExecutionPayload, PayloadValidator};
|
use reth_engine_primitives::{ExecutionPayload, PayloadValidator};
|
||||||
use reth_payload_primitives::NewPayloadError;
|
use reth_payload_primitives::NewPayloadError;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
use super::{apply_precompiles, HlEthApi, HlRpcNodeCore};
|
use super::{HlEthApi, HlRpcNodeCore, apply_precompiles};
|
||||||
use alloy_evm::overrides::{apply_state_overrides, StateOverrideError};
|
use alloy_evm::overrides::{StateOverrideError, apply_state_overrides};
|
||||||
use alloy_network::TransactionBuilder;
|
use alloy_network::TransactionBuilder;
|
||||||
use alloy_primitives::{TxKind, U256};
|
use alloy_primitives::{TxKind, U256};
|
||||||
use alloy_rpc_types_eth::state::StateOverride;
|
use alloy_rpc_types_eth::state::StateOverride;
|
||||||
@ -9,19 +9,19 @@ use reth_evm::{ConfigureEvm, Evm, EvmEnvFor, SpecFor, TransactionEnv, TxEnvFor};
|
|||||||
use reth_revm::{database::StateProviderDatabase, db::CacheDB};
|
use reth_revm::{database::StateProviderDatabase, db::CacheDB};
|
||||||
use reth_rpc_convert::{RpcConvert, RpcTxReq};
|
use reth_rpc_convert::{RpcConvert, RpcTxReq};
|
||||||
use reth_rpc_eth_api::{
|
use reth_rpc_eth_api::{
|
||||||
helpers::{
|
|
||||||
estimate::{update_estimated_gas_range, EstimateCall},
|
|
||||||
Call,
|
|
||||||
},
|
|
||||||
AsEthApiError, IntoEthApiError, RpcNodeCore,
|
AsEthApiError, IntoEthApiError, RpcNodeCore,
|
||||||
|
helpers::{
|
||||||
|
Call,
|
||||||
|
estimate::{EstimateCall, update_estimated_gas_range},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
use reth_rpc_eth_types::{
|
use reth_rpc_eth_types::{
|
||||||
error::{api::FromEvmHalt, FromEvmError},
|
|
||||||
EthApiError, RevertError, RpcInvalidTransactionError,
|
EthApiError, RevertError, RpcInvalidTransactionError,
|
||||||
|
error::{FromEvmError, api::FromEvmHalt},
|
||||||
};
|
};
|
||||||
use reth_rpc_server_types::constants::gas_oracle::{CALL_STIPEND_GAS, ESTIMATE_GAS_ERROR_RATIO};
|
use reth_rpc_server_types::constants::gas_oracle::{CALL_STIPEND_GAS, ESTIMATE_GAS_ERROR_RATIO};
|
||||||
use reth_storage_api::StateProvider;
|
use reth_storage_api::StateProvider;
|
||||||
use revm::context_interface::{result::ExecutionResult, Transaction};
|
use revm::context_interface::{Transaction, result::ExecutionResult};
|
||||||
use tracing::trace;
|
use tracing::trace;
|
||||||
|
|
||||||
impl<N, Rpc> EstimateCall for HlEthApi<N, Rpc>
|
impl<N, Rpc> EstimateCall for HlEthApi<N, Rpc>
|
||||||
@ -30,11 +30,11 @@ where
|
|||||||
N: HlRpcNodeCore,
|
N: HlRpcNodeCore,
|
||||||
EthApiError: FromEvmError<N::Evm> + From<StateOverrideError<ProviderError>>,
|
EthApiError: FromEvmError<N::Evm> + From<StateOverrideError<ProviderError>>,
|
||||||
Rpc: RpcConvert<
|
Rpc: RpcConvert<
|
||||||
Primitives = N::Primitives,
|
Primitives = N::Primitives,
|
||||||
Error = EthApiError,
|
Error = EthApiError,
|
||||||
TxEnv = TxEnvFor<N::Evm>,
|
TxEnv = TxEnvFor<N::Evm>,
|
||||||
Spec = SpecFor<N::Evm>,
|
Spec = SpecFor<N::Evm>,
|
||||||
>,
|
>,
|
||||||
{
|
{
|
||||||
// Modified version that adds `apply_precompiles`; comments are stripped out.
|
// Modified version that adds `apply_precompiles`; comments are stripped out.
|
||||||
fn estimate_gas_with<S>(
|
fn estimate_gas_with<S>(
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
use alloy_eips::BlockId;
|
use alloy_eips::BlockId;
|
||||||
use jsonrpsee::proc_macros::rpc;
|
use jsonrpsee::proc_macros::rpc;
|
||||||
use jsonrpsee_core::{async_trait, RpcResult};
|
use jsonrpsee_core::{RpcResult, async_trait};
|
||||||
use reth_rpc_convert::RpcConvert;
|
use reth_rpc_convert::RpcConvert;
|
||||||
use reth_rpc_eth_types::EthApiError;
|
use reth_rpc_eth_types::EthApiError;
|
||||||
use tracing::trace;
|
use tracing::trace;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
use crate::node::spot_meta::SpotId;
|
use crate::node::spot_meta::SpotId;
|
||||||
use alloy_primitives::{address, Address};
|
use alloy_primitives::{Address, address};
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
/// Testnet-specific fix for #67
|
/// Testnet-specific fix for #67
|
||||||
|
|||||||
@ -1,22 +1,22 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
|
HlBlock, HlBlockBody, HlPrimitives,
|
||||||
node::{
|
node::{
|
||||||
primitives::tx_wrapper::{convert_to_eth_block_body, convert_to_hl_block_body},
|
primitives::tx_wrapper::{convert_to_eth_block_body, convert_to_hl_block_body},
|
||||||
types::HlExtras,
|
types::HlExtras,
|
||||||
},
|
},
|
||||||
HlBlock, HlBlockBody, HlPrimitives,
|
|
||||||
};
|
};
|
||||||
use alloy_consensus::BlockHeader;
|
use alloy_consensus::BlockHeader;
|
||||||
use alloy_primitives::Bytes;
|
use alloy_primitives::Bytes;
|
||||||
use reth_chainspec::EthereumHardforks;
|
use reth_chainspec::EthereumHardforks;
|
||||||
use reth_db::{
|
use reth_db::{
|
||||||
|
DbTxUnwindExt,
|
||||||
cursor::{DbCursorRO, DbCursorRW},
|
cursor::{DbCursorRO, DbCursorRW},
|
||||||
transaction::{DbTx, DbTxMut},
|
transaction::{DbTx, DbTxMut},
|
||||||
DbTxUnwindExt,
|
|
||||||
};
|
};
|
||||||
use reth_provider::{
|
use reth_provider::{
|
||||||
providers::{ChainStorage, NodeTypesForProvider},
|
|
||||||
BlockBodyReader, BlockBodyWriter, ChainSpecProvider, ChainStorageReader, ChainStorageWriter,
|
BlockBodyReader, BlockBodyWriter, ChainSpecProvider, ChainStorageReader, ChainStorageWriter,
|
||||||
DBProvider, DatabaseProvider, EthStorage, ProviderResult, ReadBodyInput, StorageLocation,
|
DBProvider, DatabaseProvider, EthStorage, ProviderResult, ReadBodyInput, StorageLocation,
|
||||||
|
providers::{ChainStorage, NodeTypesForProvider},
|
||||||
};
|
};
|
||||||
|
|
||||||
pub mod tables;
|
pub mod tables;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
use alloy_primitives::{BlockNumber, Bytes};
|
use alloy_primitives::{BlockNumber, Bytes};
|
||||||
use reth_db::{table::TableInfo, tables, TableSet, TableType, TableViewer};
|
use reth_db::{TableSet, TableType, TableViewer, table::TableInfo, tables};
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
|
||||||
tables! {
|
tables! {
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
//!
|
//!
|
||||||
//! Changes:
|
//! Changes:
|
||||||
//! - ReadPrecompileCalls supports RLP encoding / decoding
|
//! - ReadPrecompileCalls supports RLP encoding / decoding
|
||||||
use alloy_primitives::{Address, Bytes, Log, B256};
|
use alloy_primitives::{Address, B256, Bytes, Log};
|
||||||
use alloy_rlp::{Decodable, Encodable, RlpDecodable, RlpEncodable};
|
use alloy_rlp::{Decodable, Encodable, RlpDecodable, RlpEncodable};
|
||||||
use bytes::BufMut;
|
use bytes::BufMut;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|||||||
@ -10,12 +10,12 @@ use std::{
|
|||||||
use tracing::info;
|
use tracing::info;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
HlBlock, HlBlockBody,
|
||||||
node::{
|
node::{
|
||||||
primitives::TransactionSigned as TxSigned,
|
primitives::TransactionSigned as TxSigned,
|
||||||
spot_meta::{erc20_contract_to_spot_token, SpotId},
|
spot_meta::{SpotId, erc20_contract_to_spot_token},
|
||||||
types::{ReadPrecompileCalls, SystemTx},
|
types::{ReadPrecompileCalls, SystemTx},
|
||||||
},
|
},
|
||||||
HlBlock, HlBlockBody,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// A raw transaction.
|
/// A raw transaction.
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
use super::service::{BlockHashCache, BlockPoller};
|
use super::service::{BlockHashCache, BlockPoller};
|
||||||
use crate::{chainspec::HlChainSpec, node::network::HlNetworkPrimitives, HlPrimitives};
|
use crate::{HlPrimitives, chainspec::HlChainSpec, node::network::HlNetworkPrimitives};
|
||||||
use reth_network::{
|
use reth_network::{
|
||||||
config::{rng_secret_key, SecretKey},
|
|
||||||
NetworkConfig, NetworkManager, PeersConfig,
|
NetworkConfig, NetworkManager, PeersConfig,
|
||||||
|
config::{SecretKey, rng_secret_key},
|
||||||
};
|
};
|
||||||
use reth_network_peers::TrustedPeer;
|
use reth_network_peers::TrustedPeer;
|
||||||
use reth_provider::test_utils::NoopProvider;
|
use reth_provider::test_utils::NoopProvider;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
use super::{BlockSource, BlockSourceBoxed};
|
use super::{BlockSource, BlockSourceBoxed};
|
||||||
use crate::node::types::BlockAndReceipts;
|
use crate::node::types::BlockAndReceipts;
|
||||||
use futures::{future::BoxFuture, FutureExt};
|
use futures::{FutureExt, future::BoxFuture};
|
||||||
use reth_network::cache::LruMap;
|
use reth_network::cache::LruMap;
|
||||||
use std::sync::{Arc, RwLock};
|
use std::sync::{Arc, RwLock};
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
use super::{scan::Scanner, time_utils::TimeUtils, HOURLY_SUBDIR};
|
use super::{HOURLY_SUBDIR, scan::Scanner, time_utils::TimeUtils};
|
||||||
use crate::node::types::BlockAndReceipts;
|
use crate::node::types::BlockAndReceipts;
|
||||||
use std::{
|
use std::{
|
||||||
fs::File,
|
fs::File,
|
||||||
|
|||||||
@ -14,7 +14,7 @@ use self::{
|
|||||||
use super::{BlockSource, BlockSourceBoxed};
|
use super::{BlockSource, BlockSourceBoxed};
|
||||||
use crate::node::types::BlockAndReceipts;
|
use crate::node::types::BlockAndReceipts;
|
||||||
use futures::future::BoxFuture;
|
use futures::future::BoxFuture;
|
||||||
use reth_metrics::{metrics, metrics::Counter, Metrics};
|
use reth_metrics::{Metrics, metrics, metrics::Counter};
|
||||||
use std::{
|
use std::{
|
||||||
path::{Path, PathBuf},
|
path::{Path, PathBuf},
|
||||||
sync::Arc,
|
sync::Arc,
|
||||||
@ -75,8 +75,8 @@ impl BlockSource for HlNodeBlockSource {
|
|||||||
let too_soon = now - last_poll_time < args.fallback_threshold;
|
let too_soon = now - last_poll_time < args.fallback_threshold;
|
||||||
if more_recent && too_soon {
|
if more_recent && too_soon {
|
||||||
return Err(eyre::eyre!(
|
return Err(eyre::eyre!(
|
||||||
"Not found locally; limiting polling rate before fallback so that hl-node has chance to catch up"
|
"Not found locally; limiting polling rate before fallback so that hl-node has chance to catch up"
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
use super::*;
|
use super::*;
|
||||||
use crate::{
|
use crate::{
|
||||||
node::types::{reth_compat, ReadPrecompileCalls},
|
node::types::{ReadPrecompileCalls, reth_compat},
|
||||||
pseudo_peer::sources::{hl_node::scan::LocalBlockAndReceipts, LocalBlockSource},
|
pseudo_peer::sources::{LocalBlockSource, hl_node::scan::LocalBlockAndReceipts},
|
||||||
};
|
};
|
||||||
use alloy_consensus::{BlockBody, Header};
|
use alloy_consensus::{BlockBody, Header};
|
||||||
use alloy_primitives::{Address, Bloom, Bytes, B256, B64, U256};
|
use alloy_primitives::{Address, B64, B256, Bloom, Bytes, U256};
|
||||||
use std::{io::Write, time::Duration};
|
use std::{io::Write, time::Duration};
|
||||||
|
|
||||||
const DEFAULT_FALLBACK_THRESHOLD_FOR_TEST: Duration = Duration::from_millis(5000);
|
const DEFAULT_FALLBACK_THRESHOLD_FOR_TEST: Duration = Duration::from_millis(5000);
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use time::{macros::format_description, Date, OffsetDateTime, Time};
|
use time::{Date, OffsetDateTime, Time, macros::format_description};
|
||||||
|
|
||||||
pub struct TimeUtils;
|
pub struct TimeUtils;
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
use super::{utils, BlockSource};
|
use super::{BlockSource, utils};
|
||||||
use crate::node::types::BlockAndReceipts;
|
use crate::node::types::BlockAndReceipts;
|
||||||
use eyre::Context;
|
use eyre::Context;
|
||||||
use futures::{future::BoxFuture, FutureExt};
|
use futures::{FutureExt, future::BoxFuture};
|
||||||
use reth_metrics::{metrics, metrics::Counter, Metrics};
|
use reth_metrics::{Metrics, metrics, metrics::Counter};
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use tracing::info;
|
use tracing::info;
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
use super::{utils, BlockSource};
|
use super::{BlockSource, utils};
|
||||||
use crate::node::types::BlockAndReceipts;
|
use crate::node::types::BlockAndReceipts;
|
||||||
use aws_sdk_s3::types::RequestPayer;
|
use aws_sdk_s3::types::RequestPayer;
|
||||||
use futures::{future::BoxFuture, FutureExt};
|
use futures::{FutureExt, future::BoxFuture};
|
||||||
use reth_metrics::{metrics, metrics::Counter, Metrics};
|
use reth_metrics::{Metrics, metrics, metrics::Counter};
|
||||||
use std::{sync::Arc, time::Duration};
|
use std::{sync::Arc, time::Duration};
|
||||||
use tracing::info;
|
use tracing::info;
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
use std::borrow::Cow;
|
use std::borrow::Cow;
|
||||||
|
|
||||||
use reth_node_core::version::{try_init_version_metadata, RethCliVersionConsts};
|
use reth_node_core::version::{RethCliVersionConsts, try_init_version_metadata};
|
||||||
|
|
||||||
pub fn init_reth_hl_version() {
|
pub fn init_reth_hl_version() {
|
||||||
let cargo_pkg_version = env!("CARGO_PKG_VERSION").to_string();
|
let cargo_pkg_version = env!("CARGO_PKG_VERSION").to_string();
|
||||||
|
|||||||
Reference in New Issue
Block a user