alloy_consensus/
lib.rs

1#![doc = include_str!("../README.md")]
2#![doc(
3    html_logo_url = "https://raw.githubusercontent.com/alloy-rs/core/main/assets/alloy.jpg",
4    html_favicon_url = "https://raw.githubusercontent.com/alloy-rs/core/main/assets/favicon.ico"
5)]
6#![cfg_attr(not(test), warn(unused_crate_dependencies))]
7#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
8#![cfg_attr(not(feature = "std"), no_std)]
9
10extern crate alloc;
11
12#[cfg(feature = "arbitrary")]
13use rand as _;
14
15use once_cell as _;
16
17pub use alloy_trie::TrieAccount;
18
19#[deprecated(since = "0.7.3", note = "use TrieAccount instead")]
20pub use alloy_trie::TrieAccount as Account;
21
22mod block;
23pub use block::{Block, BlockBody, BlockHeader, EthBlock, Header};
24
25pub mod constants;
26pub use constants::{EMPTY_OMMER_ROOT_HASH, EMPTY_ROOT_HASH};
27
28mod receipt;
29pub use receipt::{
30    Eip2718EncodableReceipt, Eip658Value, Receipt, ReceiptEnvelope, ReceiptWithBloom, Receipts,
31    RlpDecodableReceipt, RlpEncodableReceipt, TxReceipt,
32};
33
34pub mod conditional;
35pub mod proofs;
36
37pub mod transaction;
38#[cfg(feature = "kzg")]
39pub use transaction::BlobTransactionValidationError;
40pub use transaction::{
41    EthereumTypedTransaction, SignableTransaction, Transaction, TxEip1559, TxEip2930, TxEip4844,
42    TxEip4844Variant, TxEip4844WithSidecar, TxEip7702, TxEnvelope, TxLegacy, TxType,
43    TypedTransaction,
44};
45
46pub use alloy_eips::{
47    eip4844::{
48        builder::{SidecarBuilder, SidecarCoder, SimpleCoder},
49        utils, Blob, BlobTransactionSidecar, Bytes48,
50    },
51    Typed2718,
52};
53
54#[cfg(feature = "kzg")]
55pub use alloy_eips::eip4844::env_settings::EnvKzgSettings;
56
57pub use alloy_primitives::{Sealable, Sealed};
58
59mod signed;
60pub use signed::Signed;
61
62pub mod error;
63
64/// Bincode-compatible serde implementations for consensus types.
65///
66/// `bincode` crate doesn't work well with optionally serializable serde fields, but some of the
67/// consensus types require optional serialization for RPC compatibility. This module makes so that
68/// all fields are serialized.
69///
70/// Read more: <https://github.com/bincode-org/bincode/issues/326>
71#[cfg(all(feature = "serde", feature = "serde-bincode-compat"))]
72pub mod serde_bincode_compat {
73    pub use super::{
74        block::serde_bincode_compat::*,
75        receipt::serde_bincode_compat::*,
76        transaction::{serde_bincode_compat as transaction, serde_bincode_compat::*},
77    };
78}