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