op_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))]
8#![cfg_attr(not(feature = "std"), no_std)]
9
10extern crate alloc;
11
12#[cfg(feature = "alloy-compat")]
13mod alloy_compat;
14
15mod receipt;
16pub use receipt::{OpDepositReceipt, OpDepositReceiptWithBloom, OpReceiptEnvelope, OpTxReceipt};
17
18pub mod transaction;
19pub use transaction::{
20    DEPOSIT_TX_TYPE_ID, DepositTransaction, OpPooledTransaction, OpTransaction, OpTxEnvelope,
21    OpTxType, OpTypedTransaction, TxDeposit,
22};
23
24pub mod eip1559;
25pub use eip1559::{
26    EIP1559ParamError, decode_eip_1559_params, decode_holocene_extra_data,
27    decode_jovian_extra_data, encode_holocene_extra_data, encode_jovian_extra_data,
28};
29
30mod source;
31pub use source::*;
32
33mod block;
34pub use block::OpBlock;
35
36pub mod interop;
37
38#[cfg(feature = "serde")]
39pub use transaction::serde_deposit_tx_rpc;
40
41/// Bincode-compatible serde implementations for consensus types.
42///
43/// `bincode` crate doesn't work well with optionally serializable serde fields, but some of the
44/// consensus types require optional serialization for RPC compatibility. This module makes so that
45/// all fields are serialized.
46///
47/// Read more: <https://github.com/bincode-org/bincode/issues/326>
48#[cfg(all(feature = "serde", feature = "serde-bincode-compat"))]
49pub mod serde_bincode_compat {
50    pub use super::{
51        receipt::receipts::serde_bincode_compat::OpDepositReceipt,
52        transaction::{serde_bincode_compat as transaction, serde_bincode_compat::TxDeposit},
53    };
54}