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    CrossChainAcceptedAsset, CrossChainFeeMode, CrossChainProvider, CrossChainProviderContext,
38    CrossChainReceiveInfo, CrossChainRouteFilter, CrossChainRouteLimits, CrossChainRoutePair,
39    DeliveryMethod, SparkAsset,
40};
41pub use error::{DepositClaimError, SdkError, SignerError};
42pub use events::{AutoOptimizationEvent, EventEmitter, EventListener, SdkEvent};
43pub use issuer::*;
44pub use logger::DEFAULT_FILTER;
45pub use models::*;
46pub use persist::{
47    ConversionFilter, PaymentMetadata, SetLnurlMetadataItem, Storage, StorageError,
48    StorageListPaymentsRequest, StoragePaymentDetailsFilter, StoredCrossChainSwap,
49    UpdateDepositPayload, UpdateWatchedAddressPayload, WatchedDepositAddress,
50    backend::{
51        PrebuiltBackend, ResolvedStores, StorageBackend, custom_storage, default_session_store,
52    },
53    path::default_storage_path,
54};
55pub use sdk::{
56    BreezSdk, GetSparkStatusRequest, default_config, default_server_config, get_spark_status,
57    init_logging,
58};
59pub use sdk_builder::SdkBuilder;
60pub use sdk_context::{SdkContext, SdkContextConfig, new_shared_sdk_context};
61pub use session_store::{Session, SessionStore, SessionStoreAdapter, SessionStoreError};
62pub use spark_wallet::{
63    CombinedHeaderProvider, HeaderProvider, HeaderProviderError, PublicKey, account_master_key,
64    identity_master_key, identity_public_key,
65};
66
67#[cfg(feature = "postgres")]
68pub use persist::{
69    backend::postgres_storage,
70    postgres::{PoolQueueMode, PostgresStorageConfig, default_postgres_storage_config},
71};
72
73#[cfg(feature = "mysql")]
74pub use persist::{
75    backend::mysql_storage,
76    mysql::{MysqlForeignKeyMode, MysqlStorageConfig, default_mysql_storage_config},
77};
78
79#[cfg(feature = "sqlite")]
80pub use {
81    persist::{backend::default_storage, sqlite::SqliteStorage},
82    sdk::{connect, connect_with_signer, connect_with_signing_only_signer},
83};
84
85pub use sdk::{ExternalSigners, SigningOnlyExternalSigners, default_external_signers};
86
87#[cfg(feature = "test-utils")]
88pub use persist::tests as storage_tests;
89
90#[cfg(feature = "test-utils")]
91pub use spark_wallet::tree_store_tests;
92
93#[cfg(feature = "test-utils")]
94pub use spark_wallet::token_store_tests;
95
96#[cfg(feature = "uniffi")]
97uniffi::setup_scaffolding!();
98
99#[allow(clippy::doc_markdown)]
100pub(crate) mod built_info {
101    // The file has been placed there by the build script.
102    include!(concat!(env!("OUT_DIR"), "/built.rs"));
103}
104
105pub(crate) fn default_user_agent() -> String {
106    format!(
107        "{}/{}",
108        crate::built_info::PKG_NAME,
109        crate::built_info::GIT_VERSION.unwrap_or(crate::built_info::PKG_VERSION),
110    )
111}