Skip to main content

breez_sdk_spark/
lib.rs

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    // The file has been placed there by the build script.
92    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}