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, NewRestChainServiceRequest, Outspend, RecommendedFees,
31 TxStatus, Utxo, 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, CrossChainReceiveInfo,
38 CrossChainRouteFilter, CrossChainRoutePair, DeliveryMethod, SparkAsset,
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, GetSparkStatusRequest, default_config, default_server_config, get_spark_status,
56 init_logging,
57};
58pub use sdk_builder::SdkBuilder;
59pub use sdk_context::{SdkContext, SdkContextConfig, new_shared_sdk_context};
60pub use session_store::{Session, SessionStore, SessionStoreAdapter, SessionStoreError};
61pub use spark_wallet::{
62 CombinedHeaderProvider, HeaderProvider, HeaderProviderError, PublicKey, account_master_key,
63 identity_master_key, identity_public_key,
64};
65
66#[cfg(feature = "postgres")]
67pub use persist::{
68 backend::postgres_storage,
69 postgres::{PoolQueueMode, PostgresStorageConfig, default_postgres_storage_config},
70};
71
72#[cfg(feature = "mysql")]
73pub use persist::{
74 backend::mysql_storage,
75 mysql::{MysqlForeignKeyMode, MysqlStorageConfig, default_mysql_storage_config},
76};
77
78#[cfg(feature = "sqlite")]
79pub use {
80 persist::{backend::default_storage, sqlite::SqliteStorage},
81 sdk::{connect, connect_with_signer, connect_with_signing_only_signer},
82};
83
84pub use sdk::{ExternalSigners, SigningOnlyExternalSigners, default_external_signers};
85
86#[cfg(feature = "test-utils")]
87pub use persist::tests as storage_tests;
88
89#[cfg(feature = "test-utils")]
90pub use spark_wallet::tree_store_tests;
91
92#[cfg(feature = "test-utils")]
93pub use spark_wallet::token_store_tests;
94
95#[cfg(feature = "uniffi")]
96uniffi::setup_scaffolding!();
97
98#[allow(clippy::doc_markdown)]
99pub(crate) mod built_info {
100 include!(concat!(env!("OUT_DIR"), "/built.rs"));
102}
103
104pub(crate) fn default_user_agent() -> String {
105 format!(
106 "{}/{}",
107 crate::built_info::PKG_NAME,
108 crate::built_info::GIT_VERSION.unwrap_or(crate::built_info::PKG_VERSION),
109 )
110}