1#[cfg(feature = "uniffi")]
2pub mod bindings;
3mod chain;
4mod common;
5mod error;
6mod events;
7mod issuer;
8mod jwt_header_provider;
9mod lnurl;
10mod logger;
11mod models;
12#[cfg(feature = "passkey")]
13pub mod passkey;
14mod persist;
15mod realtime_sync;
16mod sdk;
17mod sdk_builder;
18mod sdk_context;
19mod session_manager;
20pub mod signer;
21mod stable_balance;
22mod sync;
23pub mod token_conversion;
24mod utils;
25
26pub use chain::{
27 BitcoinChainService, ChainServiceError, RecommendedFees, TxStatus, Utxo,
28 new_rest_chain_service,
29 rest_client::{ChainApiType, RestClientChainService},
30};
31pub use common::rest::{RestClient, RestResponse};
32pub use common::{fiat::*, models::*, sync_storage};
33pub use error::{DepositClaimError, SdkError, SignerError};
34pub use events::{EventEmitter, EventListener, OptimizationEvent, SdkEvent};
35pub use issuer::*;
36pub use models::*;
37pub use persist::{
38 PaymentMetadata, SetLnurlMetadataItem, Storage, StorageError, StorageListPaymentsRequest,
39 StoragePaymentDetailsFilter, UpdateDepositPayload, path::default_storage_path,
40};
41pub use sdk::{
42 BreezSdk, default_config, default_server_config, get_spark_status, init_logging, parse_input,
43};
44pub use sdk_builder::SdkBuilder;
45pub use sdk_context::{SdkContext, SdkContextConfig, new_shared_sdk_context};
46pub use session_manager::{Session, SessionManager, SessionManagerError};
47pub use spark_wallet::{
48 CombinedHeaderProvider, HeaderProvider, HeaderProviderError, KeySet, PublicKey,
49};
50
51#[cfg(all(
52 feature = "postgres",
53 not(all(target_family = "wasm", target_os = "unknown"))
54))]
55pub use persist::postgres::{
56 PoolQueueMode, PostgresConnectionPool, PostgresStorageConfig, create_postgres_connection_pool,
57 default_postgres_storage_config,
58};
59
60#[cfg(all(
61 feature = "mysql",
62 not(all(target_family = "wasm", target_os = "unknown"))
63))]
64pub use persist::mysql::{
65 MysqlConnectionPool, MysqlForeignKeyMode, MysqlStorageConfig, create_mysql_connection_pool,
66 default_mysql_storage_config,
67};
68
69#[cfg(not(all(target_family = "wasm", target_os = "unknown")))]
70pub use {
71 persist::sqlite::SqliteStorage,
72 sdk::{connect, connect_with_signer},
73};
74
75pub use sdk::default_external_signer;
76
77#[cfg(feature = "test-utils")]
78pub use persist::tests as storage_tests;
79
80#[cfg(feature = "test-utils")]
81pub use spark_wallet::tree_store_tests;
82
83#[cfg(feature = "test-utils")]
84pub use spark_wallet::token_store_tests;
85
86#[cfg(feature = "uniffi")]
87uniffi::setup_scaffolding!();
88
89#[allow(clippy::doc_markdown)]
90pub(crate) mod built_info {
91 include!(concat!(env!("OUT_DIR"), "/built.rs"));
93}
94
95pub(crate) fn default_user_agent() -> String {
96 format!(
97 "{}/{}",
98 crate::built_info::PKG_NAME,
99 crate::built_info::GIT_VERSION.unwrap_or(crate::built_info::PKG_VERSION),
100 )
101}