mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
fix: Convert header type for eth_subscribe
Due to custom header usage, only `eth_subscribe` method was returning the new header format in raw format, while other part were using RpcConvert to convert headers. Make `eth_subscribe` newHeads to return the `inner` field (original eth header) instead.
This commit is contained in:
17
src/main.rs
17
src/main.rs
@ -1,12 +1,16 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use clap::Parser;
|
||||
use reth::builder::{NodeBuilder, NodeHandle, WithLaunchContext};
|
||||
use reth::{
|
||||
builder::{NodeBuilder, NodeHandle, WithLaunchContext},
|
||||
rpc::{api::EthPubSubApiServer, eth::RpcNodeCore},
|
||||
};
|
||||
use reth_db::DatabaseEnv;
|
||||
use reth_hl::{
|
||||
addons::{
|
||||
call_forwarder::{self, CallForwarderApiServer},
|
||||
hl_node_compliance::install_hl_node_compliance,
|
||||
subscribe_fixup::SubscribeFixup,
|
||||
tx_forwarder::{self, EthForwarderApiServer},
|
||||
},
|
||||
chainspec::{HlChainSpec, parser::HlChainSpecParser},
|
||||
@ -69,6 +73,17 @@ fn main() -> eyre::Result<()> {
|
||||
info!("eth_getProof is disabled by default");
|
||||
}
|
||||
|
||||
// This is a temporary workaround to fix the issue with custom headers
|
||||
// affects `eth_subscribe[type=newHeads]`
|
||||
ctx.modules.replace_configured(
|
||||
SubscribeFixup::new(
|
||||
Arc::new(ctx.registry.eth_handlers().pubsub.clone()),
|
||||
Arc::new(ctx.registry.eth_api().provider().clone()),
|
||||
Box::new(ctx.node().task_executor.clone()),
|
||||
)
|
||||
.into_rpc(),
|
||||
)?;
|
||||
|
||||
ctx.modules.merge_configured(
|
||||
HlBlockPrecompileExt::new(ctx.registry.eth_api().clone()).into_rpc(),
|
||||
)?;
|
||||
|
||||
Reference in New Issue
Block a user