Skip to main content

breez_sdk_spark/
lib.rs

1// The spawn and reqwest rules in the root clippy.toml guard shipped code, not tests.
2#![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}