monero_interface/
lib.rs

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/// An error from the interface.
32#[derive(Clone, PartialEq, Eq, Debug, thiserror::Error)]
33pub enum InterfaceError {
34  /// An internal error.
35  #[error("internal error ({0})")]
36  InternalError(String),
37  /// An error with the interface.
38  #[error("interface error ({0})")]
39  InterfaceError(String),
40  /// The interface is invalid per the expected protocol and should be disconnected from.
41  #[error("invalid node ({0})")]
42  InvalidInterface(String),
43}
44
45/// A prelude of recommended imports to glob import.
46pub 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}