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