pub mod addressbook;
#[cfg(feature = "engine")]
pub mod build;
pub mod hd;
pub mod identity;
pub mod review;
pub mod signer;
pub mod subscribe;
pub mod transport;
pub mod verify;
pub use addressbook::AddressBook;
pub use hd::{MasterKey, MasterKeySource};
pub use identity::{HdIdentity, IdentityProvider};
pub use review::{decode, HumanReadableSummary};
pub use signer::{IdentitySigner, LocalSigner};
pub use transport::{ControlTransport, IpcWalletClient};
pub use verify::{
analyze, derive_summary, is_protocol_sink_hash, summarize_egress, DecodedOutput, SpendEffect,
};
pub use crate::types::{filter_events, CatchUp};
#[cfg(feature = "engine")]
pub use subscribe::{LagSignal, Subscription};
use async_trait::async_trait;
use crate::types::{
Balance, CatRecord, CoinRecord, IdentityRef, SendCatRequest, SendXchRequest, SyncStatus,
TransactionRecord, UnsignedSpend, WalletResult,
};
#[async_trait]
pub trait WalletClient: Send + Sync {
async fn balance(&self, identity: &IdentityRef) -> WalletResult<Balance>;
async fn coins(&self, identity: &IdentityRef) -> WalletResult<Vec<CoinRecord>>;
async fn cats(&self, identity: &IdentityRef) -> WalletResult<Vec<CatRecord>>;
async fn history(&self, identity: &IdentityRef) -> WalletResult<Vec<TransactionRecord>>;
async fn sync_status(&self, identity: &IdentityRef) -> WalletResult<SyncStatus>;
async fn request_send_xch(&self, request: SendXchRequest) -> WalletResult<UnsignedSpend>;
async fn request_send_cat(&self, request: SendCatRequest) -> WalletResult<UnsignedSpend>;
}