1#![cfg_attr(test, allow(clippy::disallowed_methods))]
3
4#[cfg(feature = "uniffi")]
5pub mod bindings;
6mod chain;
7mod common;
8mod cross_chain;
9mod error;
10mod events;
11mod issuer;
12mod jwt_header_provider;
13mod lnurl;
14mod logger;
15mod models;
16#[cfg(feature = "passkey")]
17pub mod passkey;
18mod persist;
19mod realtime_sync;
20mod rewards;
21mod sdk;
22mod sdk_builder;
23mod sdk_context;
24mod session_store;
25pub mod signer;
26mod stable_balance;
27mod sync;
28pub mod token_conversion;
29#[cfg(feature = "turnkey")]
30pub mod turnkey;
31mod utils;
32
33pub use chain::{
34 BitcoinChainService, ChainServiceError, NewRestChainServiceRequest, Outspend, RecommendedFees,
35 TxStatus, Utxo, new_rest_chain_service,
36 rest_client::{ChainApiType, RestClientChainService},
37};
38pub use common::rest::{RestClient, RestResponse};
39pub use common::{fiat::*, models::*, sync_storage};
40pub use cross_chain::{
41 CrossChainAcceptedAsset, CrossChainFeeMode, CrossChainProvider, CrossChainProviderContext,
42 CrossChainReceiveInfo, CrossChainRouteFilter, CrossChainRouteLimits, CrossChainRoutePair,
43 DeliveryMethod, SparkAsset,
44};
45pub use error::{
46 CooperativeRecoveryError, DepositClaimError, SdkError, SignerError, TokenAllowanceErrorReason,
47};
48pub use events::{
49 AutoOptimizationEvent, EventEmitter, EventListener, SdkEvent, StableBalanceConversionKind,
50};
51pub use issuer::*;
52pub use logger::{DEFAULT_FILTER, event_instance_id, record_instance_id, sdk_log_filter};
53pub use models::*;
54pub use persist::{
55 ChainTransaction, ConversionFilter, LeafRecovery, PaymentMetadata, SetLnurlMetadataItem,
56 Storage, StorageError, StorageListPaymentsRequest, StoragePaymentDetailsFilter,
57 StoredCrossChainSwap, StoredWatchtowerExitOutput, UpdateDepositPayload, UpdateLeafRecovery,
58 UpdateWatchedAddressPayload, WatchedDepositAddress, WatchtowerExitRecovery,
59 backend::{
60 PrebuiltBackend, ResolvedStores, StorageBackend, custom_storage, default_session_store,
61 },
62 path::default_storage_path,
63};
64pub use sdk::{
65 BreezSdk, BridgeRoutePair, BridgeRoutePairSide, BridgeStatus, BridgingClient, BridgingConfig,
66 CreateBridgeRequest, CreateBridgeResponse, GetBridgeRoutesRequest, GetBridgeRoutesResponse,
67 GetBridgeStatusRequest, GetBridgeStatusResponse, GetSparkStatusRequest,
68 default_bridging_config, default_config, default_server_config, get_spark_status, init_logging,
69 new_bridging_client, parse_spark_config,
70};
71pub use sdk_builder::SdkBuilder;
72pub use sdk_context::{SdkContext, SdkContextConfig, new_shared_sdk_context};
73pub use session_store::{Session, SessionStore, SessionStoreAdapter, SessionStoreError};
74pub use spark_wallet::{
75 CombinedHeaderProvider, HeaderProvider, HeaderProviderError, PublicKey, account_master_key,
76 identity_master_key, identity_public_key,
77};
78
79#[cfg(any(feature = "postgres", feature = "db-storage-api"))]
80pub use persist::{
81 backend::postgres_storage,
82 postgres::{PoolQueueMode, PostgresStorageConfig, default_postgres_storage_config},
83};
84
85#[cfg(any(feature = "mysql", feature = "db-storage-api"))]
86pub use persist::{
87 backend::mysql_storage,
88 mysql::{MysqlForeignKeyMode, MysqlStorageConfig, default_mysql_storage_config},
89};
90
91#[cfg(feature = "sqlite")]
92pub use {
93 persist::{backend::default_storage, sqlite::SqliteStorage},
94 sdk::{connect, connect_with_signer, connect_with_signing_only_signer},
95};
96
97pub use sdk::{ExternalSigners, SigningOnlyExternalSigners, default_external_signers};
98
99#[cfg(feature = "test-utils")]
100pub use persist::tests as storage_tests;
101
102#[cfg(feature = "test-utils")]
103pub use spark_wallet::tree_store_tests;
104
105#[cfg(feature = "test-utils")]
106pub use spark_wallet::token_store_tests;
107
108#[cfg(feature = "uniffi")]
109uniffi::setup_scaffolding!();
110
111pub(crate) fn default_user_agent() -> String {
112 format!(
113 "{}/{}",
114 env!("CARGO_PKG_NAME"),
115 spark_wallet::GIT_VERSION.unwrap_or(env!("CARGO_PKG_VERSION")),
116 )
117}