#![doc = include_str!("../README.md")]
#![doc(
html_logo_url = "https://raw.githubusercontent.com/alloy-rs/core/main/assets/alloy.jpg",
html_favicon_url = "https://raw.githubusercontent.com/alloy-rs/core/main/assets/favicon.ico"
)]
#![cfg_attr(not(test), warn(unused_crate_dependencies))]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(not(feature = "std"), no_std)]
#[doc(hidden)]
pub use alloy_core as core;
#[doc(inline)]
pub use self::core::primitives;
#[doc(no_inline)]
pub use primitives::{hex, uint};
#[cfg(feature = "dyn-abi")]
#[doc(inline)]
pub use self::core::dyn_abi;
#[cfg(feature = "json-abi")]
#[doc(inline)]
pub use self::core::json_abi;
#[cfg(feature = "sol-types")]
#[doc(inline)]
pub use self::core::sol_types;
#[cfg(all(doc, feature = "sol-types"))]
#[doc(no_inline)]
pub use sol_types::sol;
#[cfg(feature = "rlp")]
#[doc(inline)]
pub use self::core::rlp;
#[cfg(all(not(doc), feature = "sol-types"))] #[macro_export]
macro_rules! sol {
($($t:tt)*) => {
$crate::sol_types::sol! {
#![sol(alloy_sol_types = $crate::sol_types, alloy_contract = $crate::contract)]
$($t)*
}
};
}
#[cfg(feature = "contract")]
#[doc(inline)]
pub use alloy_contract as contract;
#[cfg(feature = "consensus")]
#[doc(inline)]
pub use alloy_consensus as consensus;
#[cfg(feature = "eips")]
#[doc(inline)]
pub use alloy_eips as eips;
#[cfg(feature = "ens")]
#[doc(inline)]
pub use alloy_ens as ens;
#[cfg(feature = "network")]
#[doc(inline)]
pub use alloy_network as network;
#[cfg(feature = "genesis")]
#[doc(inline)]
pub use alloy_genesis as genesis;
#[cfg(feature = "node-bindings")]
#[cfg_attr(docsrs, doc(cfg(feature = "node-bindings")))]
#[doc(inline)]
pub use alloy_node_bindings as node_bindings;
#[cfg(feature = "providers")]
pub mod providers {
#[doc(inline)]
pub use alloy_provider::*;
}
#[doc = "\n"] #[cfg_attr(feature = "providers", doc = "[`providers`]: crate::providers")]
#[cfg_attr(
not(feature = "providers"),
doc = "[`providers`]: https://github.com/alloy-rs/alloy/tree/main/crates/provider"
)]
#[cfg(feature = "pubsub")]
pub mod pubsub {
#[doc(inline)]
pub use alloy_pubsub::*;
}
#[cfg(feature = "rpc")]
pub mod rpc {
#[cfg(feature = "rpc-client")]
#[doc(inline)]
pub use alloy_rpc_client as client;
#[cfg(feature = "json-rpc")]
#[doc(inline)]
pub use alloy_json_rpc as json_rpc;
#[cfg(feature = "rpc-types")]
#[doc(inline)]
pub use alloy_rpc_types as types;
}
#[cfg(feature = "serde")]
#[doc(inline)]
pub use alloy_serde as serde;
#[cfg(feature = "signers")]
pub mod signers {
#[doc(inline)]
pub use alloy_signer::*;
#[cfg(feature = "signer-aws")]
#[doc(inline)]
pub use alloy_signer_aws as aws;
#[cfg(feature = "signer-gcp")]
#[doc(inline)]
pub use alloy_signer_gcp as gcp;
#[cfg(feature = "signer-ledger")]
#[doc(inline)]
pub use alloy_signer_ledger as ledger;
#[cfg(feature = "signer-local")]
#[doc(inline)]
pub use alloy_signer_local as local;
#[cfg(feature = "signer-trezor")]
#[doc(inline)]
pub use alloy_signer_trezor as trezor;
#[cfg(feature = "signer-turnkey")]
#[doc(inline)]
pub use alloy_signer_turnkey as turnkey;
}
#[doc = "\n"] #[cfg_attr(feature = "providers", doc = "[`providers`]: crate::providers")]
#[cfg_attr(
not(feature = "providers"),
doc = "[`providers`]: https://github.com/alloy-rs/alloy/tree/main/crates/provider"
)]
#[cfg(feature = "transports")]
pub mod transports {
#[doc(inline)]
pub use alloy_transport::*;
#[cfg(feature = "transport-http")]
#[doc(inline)]
pub use alloy_transport_http as http;
#[cfg(feature = "transport-ipc")]
#[doc(inline)]
pub use alloy_transport_ipc as ipc;
#[cfg(feature = "transport-ws")]
#[doc(inline)]
pub use alloy_transport_ws as ws;
}
#[cfg(feature = "trie")]
pub use alloy_trie as trie;