1#![cfg_attr(not(feature = "std"), no_std)]
4#![cfg_attr(not(test), warn(unused_crate_dependencies))]
5#![cfg_attr(docsrs, feature(doc_cfg), allow(unexpected_cfgs))]
6
7pub use alloy_consensus::Header;
8
9mod address;
10pub use address::{MasterId, TempoAddressExt, UserTag, is_tip20_prefix};
11pub mod ed25519;
12
13pub mod transaction;
14pub use transaction::{
15 AASigned, MAX_WEBAUTHN_SIGNATURE_LENGTH, P256_SIGNATURE_LENGTH, SECP256K1_SIGNATURE_LENGTH,
16 SignatureType, TEMPO_GAS_PRICE_SCALING_FACTOR, TEMPO_TX_TYPE_ID, TempoSignature,
17 TempoTransaction, TempoTxEnvelope, TempoTxType, derive_p256_address,
18};
19
20mod header;
21pub use header::{TempoConsensusContext, TempoHeader};
22
23pub mod subblock;
24pub use subblock::{
25 RecoveredSubBlock, SignedSubBlock, SubBlock, SubBlockMetadata, SubBlockVersion,
26};
27
28extern crate alloc;
29
30use once_cell as _;
31
32pub type Block = alloy_consensus::Block<TempoTxEnvelope, TempoHeader>;
34
35pub type BlockBody = alloy_consensus::BlockBody<TempoTxEnvelope, TempoHeader>;
37
38#[cfg(feature = "reth")]
39mod reth_compat;
40
41#[cfg(feature = "reth")]
44pub use reth_compat::TempoReceipt;
45#[cfg(not(feature = "reth"))]
46pub type TempoReceipt<L = alloy_primitives::Log> = alloy_consensus::EthereumReceipt<TempoTxType, L>;
47
48#[derive(Debug, Clone, Default, Eq, PartialEq)]
51#[non_exhaustive]
52pub struct TempoPrimitives;