Skip to main content

breez_sdk_spark/
lib.rs

1#[cfg(feature = "uniffi")]
2pub mod bindings;
3mod chain;
4mod common;
5mod cross_chain;
6mod error;
7mod events;
8mod issuer;
9mod jwt_header_provider;
10mod lnurl;
11mod logger;
12mod models;
13#[cfg(feature = "passkey")]
14pub mod passkey;
15mod persist;
16mod realtime_sync;
17mod sdk;
18mod sdk_builder;
19mod sdk_context;
20mod session_store;
21pub mod signer;
22mod stable_balance;
23mod sync;
24pub mod token_conversion;
25#[cfg(feature = "turnkey")]
26pub mod turnkey;
27mod utils;
28
29pub use chain::{
30    BitcoinChainService, ChainServiceError, RecommendedFees, TxStatus, Utxo,
31    new_rest_chain_service,
32    rest_client::{ChainApiType, RestClientChainService},
33};
34pub use common::rest::{RestClient, RestResponse};
35pub use common::{fiat::*, models::*, sync_storage};
36pub use cross_chain::{
37    CrossChainFeeMode, CrossChainProvider, CrossChainProviderContext, CrossChainRouteFilter,
38    CrossChainRoutePair, SourceAsset,
39};
40pub use error::{DepositClaimError, SdkError, SignerError};
41pub use events::{AutoOptimizationEvent, EventEmitter, EventListener, SdkEvent};
42pub use issuer::*;
43pub use logger::DEFAULT_FILTER;
44pub use models::*;
45pub use persist::{
46    ConversionFilter, PaymentMetadata, SetLnurlMetadataItem, Storage, StorageError,
47    StorageListPaymentsRequest, StoragePaymentDetailsFilter, StoredCrossChainSwap,
48    UpdateDepositPayload,
49    backend::{
50        PrebuiltBackend, ResolvedStores, StorageBackend, custom_storage, default_session_store,
51    },
52    path::default_storage_path,
53};
54pub use sdk::{
55    BreezSdk, default_config, default_server_config, get_spark_status, init_logging, parse_input,
56};
57pub use sdk_builder::SdkBuilder;
58pub use sdk_context::{SdkContext, SdkContextConfig, new_shared_sdk_context};
59pub use session_store::{Session, SessionStore, SessionStoreAdapter, SessionStoreError};
60pub use spark_wallet::{
61    CombinedHeaderProvider, HeaderProvider, HeaderProviderError, PublicKey, account_master_key,
62    identity_master_key, identity_public_key,
63};
64
65#[cfg(feature = "postgres")]
66pub use persist::{
67    backend::postgres_storage,
68    postgres::{PoolQueueMode, PostgresStorageConfig, default_postgres_storage_config},
69};
70
71#[cfg(feature = "mysql")]
72pub use persist::{
73    backend::mysql_storage,
74    mysql::{MysqlForeignKeyMode, MysqlStorageConfig, default_mysql_storage_config},
75};
76
77#[cfg(feature = "sqlite")]
78pub use {
79    persist::{backend::default_storage, sqlite::SqliteStorage},
80    sdk::{connect, connect_with_signer, connect_with_signing_only_signer},
81};
82
83pub use sdk::{ExternalSigners, SigningOnlyExternalSigners, default_external_signers};
84
85#[cfg(feature = "test-utils")]
86pub use persist::tests as storage_tests;
87
88#[cfg(feature = "test-utils")]
89pub use spark_wallet::tree_store_tests;
90
91#[cfg(feature = "test-utils")]
92pub use spark_wallet::token_store_tests;
93
94#[cfg(feature = "uniffi")]
95uniffi::setup_scaffolding!();
96
97#[allow(clippy::doc_markdown)]
98pub(crate) mod built_info {
99    // The file has been placed there by the build script.
100    include!(concat!(env!("OUT_DIR"), "/built.rs"));
101}
102
103pub(crate) fn default_user_agent() -> String {
104    format!(
105        "{}/{}",
106        crate::built_info::PKG_NAME,
107        crate::built_info::GIT_VERSION.unwrap_or(crate::built_info::PKG_VERSION),
108    )
109}