mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
Feature gate jsonrpsee related crates and check features powerset for reth-rpc-types (#10141)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
1
Makefile
1
Makefile
@ -473,4 +473,5 @@ check-features:
|
|||||||
--package reth-codecs \
|
--package reth-codecs \
|
||||||
--package reth-primitives-traits \
|
--package reth-primitives-traits \
|
||||||
--package reth-primitives \
|
--package reth-primitives \
|
||||||
|
--package reth-rpc-types \
|
||||||
--feature-powerset
|
--feature-powerset
|
||||||
@ -15,15 +15,15 @@ workspace = true
|
|||||||
|
|
||||||
# ethereum
|
# ethereum
|
||||||
alloy-primitives = { workspace = true, features = ["rand", "rlp", "serde"] }
|
alloy-primitives = { workspace = true, features = ["rand", "rlp", "serde"] }
|
||||||
alloy-rpc-types = { workspace = true, features = ["jsonrpsee-types"] }
|
alloy-rpc-types.workspace = true
|
||||||
alloy-rpc-types-admin.workspace = true
|
alloy-rpc-types-admin.workspace = true
|
||||||
alloy-rpc-types-anvil.workspace = true
|
alloy-rpc-types-anvil.workspace = true
|
||||||
alloy-rpc-types-beacon.workspace = true
|
alloy-rpc-types-beacon = { workspace = true, optional = true }
|
||||||
alloy-rpc-types-mev.workspace = true
|
alloy-rpc-types-mev.workspace = true
|
||||||
alloy-rpc-types-trace.workspace = true
|
alloy-rpc-types-trace.workspace = true
|
||||||
alloy-rpc-types-txpool.workspace = true
|
alloy-rpc-types-txpool.workspace = true
|
||||||
alloy-serde.workspace = true
|
alloy-serde.workspace = true
|
||||||
alloy-rpc-types-engine = { workspace = true, features = ["jsonrpsee-types"] }
|
alloy-rpc-types-engine = { workspace = true, features = ["jsonrpsee-types"], optional = true }
|
||||||
|
|
||||||
# misc
|
# misc
|
||||||
jsonrpsee-types = { workspace = true, optional = true }
|
jsonrpsee-types = { workspace = true, optional = true }
|
||||||
@ -39,4 +39,11 @@ serde_json.workspace = true
|
|||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["jsonrpsee-types"]
|
default = ["jsonrpsee-types"]
|
||||||
|
jsonrpsee-types = [
|
||||||
|
"dep:jsonrpsee-types",
|
||||||
|
"dep:alloy-rpc-types-beacon",
|
||||||
|
"dep:alloy-rpc-types-engine",
|
||||||
|
"alloy-rpc-types/jsonrpsee-types",
|
||||||
|
"alloy-rpc-types-engine/jsonrpsee-types"
|
||||||
|
]
|
||||||
arbitrary = ["alloy-primitives/arbitrary", "alloy-rpc-types/arbitrary"]
|
arbitrary = ["alloy-primitives/arbitrary", "alloy-rpc-types/arbitrary"]
|
||||||
|
|||||||
@ -1,15 +1,15 @@
|
|||||||
//! Implementation specific Errors for the `eth_` namespace.
|
//! Implementation specific Errors for the `eth_` namespace.
|
||||||
|
|
||||||
use jsonrpsee_types::ErrorObject;
|
|
||||||
|
|
||||||
/// A trait to convert an error to an RPC error.
|
/// A trait to convert an error to an RPC error.
|
||||||
|
#[cfg(feature = "jsonrpsee-types")]
|
||||||
pub trait ToRpcError: std::error::Error + Send + Sync + 'static {
|
pub trait ToRpcError: std::error::Error + Send + Sync + 'static {
|
||||||
/// Converts the error to a JSON-RPC error object.
|
/// Converts the error to a JSON-RPC error object.
|
||||||
fn to_rpc_error(&self) -> ErrorObject<'static>;
|
fn to_rpc_error(&self) -> jsonrpsee_types::ErrorObject<'static>;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ToRpcError for ErrorObject<'static> {
|
#[cfg(feature = "jsonrpsee-types")]
|
||||||
fn to_rpc_error(&self) -> ErrorObject<'static> {
|
impl ToRpcError for jsonrpsee_types::ErrorObject<'static> {
|
||||||
|
fn to_rpc_error(&self) -> jsonrpsee_types::ErrorObject<'static> {
|
||||||
self.clone()
|
self.clone()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,4 +4,5 @@ pub(crate) mod error;
|
|||||||
pub mod transaction;
|
pub mod transaction;
|
||||||
|
|
||||||
// re-export
|
// re-export
|
||||||
|
#[cfg(feature = "jsonrpsee-types")]
|
||||||
pub use alloy_rpc_types_engine as engine;
|
pub use alloy_rpc_types_engine as engine;
|
||||||
|
|||||||
@ -40,17 +40,20 @@ pub use alloy_rpc_types_anvil as anvil;
|
|||||||
pub use alloy_rpc_types_mev as mev;
|
pub use alloy_rpc_types_mev as mev;
|
||||||
|
|
||||||
// re-export beacon
|
// re-export beacon
|
||||||
|
#[cfg(feature = "jsonrpsee-types")]
|
||||||
pub use alloy_rpc_types_beacon as beacon;
|
pub use alloy_rpc_types_beacon as beacon;
|
||||||
|
|
||||||
// re-export txpool
|
// re-export txpool
|
||||||
pub use alloy_rpc_types_txpool as txpool;
|
pub use alloy_rpc_types_txpool as txpool;
|
||||||
|
|
||||||
// Ethereum specific rpc types related to typed transaction requests and the engine API.
|
// Ethereum specific rpc types related to typed transaction requests and the engine API.
|
||||||
|
#[cfg(feature = "jsonrpsee-types")]
|
||||||
|
pub use eth::error::ToRpcError;
|
||||||
|
pub use eth::transaction::{self, TransactionRequest, TypedTransactionRequest};
|
||||||
|
#[cfg(feature = "jsonrpsee-types")]
|
||||||
pub use eth::{
|
pub use eth::{
|
||||||
engine,
|
engine,
|
||||||
engine::{
|
engine::{
|
||||||
ExecutionPayload, ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3, PayloadError,
|
ExecutionPayload, ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3, PayloadError,
|
||||||
},
|
},
|
||||||
error::ToRpcError,
|
|
||||||
transaction::{self, TransactionRequest, TypedTransactionRequest},
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user