1#![cfg_attr(docsrs, feature(doc_cfg))]
2#![doc = include_str!("../README.md")]
3#![cfg_attr(not(feature = "std"), no_std)]
4
5use core::fmt::Debug;
6
7extern crate alloc;
8use alloc::string::String;
9
10mod provides_blockchain_meta;
11pub use provides_blockchain_meta::*;
12
13mod provides_transactions;
14pub use provides_transactions::*;
15
16pub(crate) mod provides_blockchain;
17pub use provides_blockchain::{ProvidesUnvalidatedBlockchain, ProvidesBlockchain};
18
19mod provides_outputs;
20pub use provides_outputs::*;
21
22mod provides_scannable_blocks;
23pub use provides_scannable_blocks::*;
24
25mod provides_decoys;
26pub use provides_decoys::*;
27
28mod provides_fee_rates;
29pub use provides_fee_rates::*;
30
31#[derive(Clone, PartialEq, Eq, Debug, thiserror::Error)]
33pub enum InterfaceError {
34 #[error("internal error ({0})")]
36 InternalError(String),
37 #[error("interface error ({0})")]
39 InterfaceError(String),
40 #[error("invalid node ({0})")]
42 InvalidInterface(String),
43}
44
45pub mod prelude {
47 pub use crate::{
48 InterfaceError, ProvidesBlockchainMeta, TransactionsError, ProvidesTransactions,
49 PublishTransactionError, PublishTransaction, ProvidesBlockchain, ProvidesOutputs,
50 ScannableBlock, ExpandToScannableBlock, ProvidesScannableBlocks, EvaluateUnlocked,
51 ProvidesDecoys, FeePriority, FeeRate, FeeError, ProvidesFeeRates,
52 };
53}