1pub mod activity_monitor;
8pub mod adaptive_fees;
9pub mod address_utils;
10pub mod advanced_rbf;
11pub mod atomic_swap;
12pub mod audit;
13pub mod batch_optimizer;
14pub mod bip21;
15pub mod bip324;
16pub mod bip329;
17pub mod bip47;
18pub mod btc_utils;
19pub mod cache;
20pub mod chain_privacy;
21pub mod client;
22pub mod coin_control;
23pub mod coin_selection_advanced;
24pub mod coin_selection_privacy;
25pub mod coinjoin;
26pub mod compact_filters;
27pub mod confirmation;
28pub mod connection_pool;
29pub mod descriptor;
30pub mod dlc;
31pub mod error;
32pub mod fee_bumping;
33pub mod frost;
34pub mod gap_limit;
35pub mod hd_wallet;
36pub mod health;
37pub mod hwi;
38pub mod key_management;
39pub mod lightning;
40pub mod lightning_v2;
41pub mod matcher;
42pub mod mempool;
43pub mod mempool_analytics;
44pub mod mempool_space;
45pub mod metrics;
46pub mod miniscript_support;
47pub mod monitor;
48pub mod multisig;
49pub mod musig2;
50pub mod network_privacy;
51pub mod notifications;
52pub mod p2p;
53pub mod package_relay;
54pub mod payjoin;
55pub mod privacy_metrics;
56pub mod psbt;
57pub mod psbt_analysis;
58pub mod psbt_workflows;
59pub mod rbf;
60pub mod regtest_utils;
61pub mod rsk;
62pub mod script_analyzer;
63pub mod script_optimizer;
64pub mod seed_recovery;
65pub mod signet;
66pub mod silent_payments;
67pub mod slip39;
68pub mod stacks;
69pub mod structured_logging;
70pub mod submarine_swaps;
71pub mod taproot;
72pub mod tapscript_utils;
73#[cfg(test)]
74pub mod testing;
75pub mod testnet4;
76pub mod timelock;
77pub mod transaction_history;
78pub mod transaction_manager;
79pub mod tx_limits;
80pub mod tx_parser;
81pub mod utxo;
82pub mod utxo_optimizer;
83pub mod utxo_privacy;
84pub mod wallet;
85pub mod wallet_recovery;
86pub mod zmq;
87
88pub use activity_monitor::{
89 ActivityMonitor, ActivityMonitorConfig, ActivityType, SuspiciousActivity, TransactionRecord,
90};
91pub use adaptive_fees::{
92 AdaptiveFeeManager, BudgetStrategy, MultiTxFeeStrategy, PlannedTransaction, TimeBasedStrategy,
93 TransactionUrgency, TxFeeAllocation,
94};
95pub use address_utils::{
96 AddressBatchAnalyzer, AddressBatchStatistics, AddressComparator, AddressInfo, AddressType,
97};
98pub use advanced_rbf::{
99 AdvancedRbfManager, BatchRbfOperation, BatchRbfResult, ConsolidatedPayment,
100 ConsolidationSavings, RbfRecommendation, RecommendationReason, RecommendationUrgency,
101};
102pub use atomic_swap::{
103 AtomicSwap, AtomicSwapConfig, AtomicSwapManager, SwapRole, SwapStatus, SwapStep,
104};
105pub use audit::{
106 AuditEvent, AuditEventBuilder, AuditEventType, AuditLogger, AuditQueryCriteria, AuditSeverity,
107 AuditStorage, FileAuditStorage, InMemoryAuditStorage,
108};
109pub use batch_optimizer::{
110 BatchEfficiency, BatchOptimizer, BatchStrategy, BatchWithdrawal, OptimizedBatch,
111};
112pub use bip21::{BitcoinUri, BitcoinUriBuilder, QrCodeHelper};
113pub use bip47::{
114 NotificationTransaction, PaymentChannel, PaymentCode, PaymentCodeManager, PaymentCodeVersion,
115};
116pub use bip324::{ConnectionState, SessionKeys, V2Transport, V2TransportConfig, V2TransportStats};
117pub use bip329::{LabelManager, LabelRecord, LabelType};
118pub use btc_utils::{
119 DUST_THRESHOLD, P2PKH_INPUT_VSIZE, P2PKH_OUTPUT_VSIZE, P2SH_OUTPUT_VSIZE,
120 P2SH_P2WPKH_INPUT_VSIZE, P2TR_INPUT_VSIZE, P2TR_OUTPUT_VSIZE, P2WPKH_INPUT_VSIZE,
121 P2WPKH_OUTPUT_VSIZE, TX_OVERHEAD_VSIZE, amount_to_satoshis, btc_to_satoshis,
122 calculate_batch_fee, calculate_batch_savings, calculate_change, calculate_effective_value,
123 calculate_fee_from_rate, calculate_fee_percentage, calculate_fee_rate,
124 estimate_p2tr_keypath_witness_size, estimate_p2wpkh_witness_size,
125 estimate_simple_transaction_vsize, estimate_transaction_vsize, is_dust, is_op_return,
126 is_valid_amount, mbtc_to_satoshis, round_for_privacy, satoshis_to_btc, satoshis_to_mbtc,
127 script_size, vsize_to_weight, weight_to_vsize,
128};
129pub use cache::{
130 BlockHeader, BlockHeaderCache, CacheConfig, CacheManager, CacheStats, OverallCacheStats,
131 TransactionCache, UtxoCache,
132};
133pub use chain_privacy::{
134 AmountObfuscation, BroadcastPriority, ChangeOutputGenerator, ChangeStrategy,
135 FingerprintingAnalyzer, FingerprintingIssue, PendingBroadcast, StructureRandomization,
136 TimingCoordinator, TimingObfuscation, TransactionPrivacyEnhancer,
137};
138pub use client::{BitcoinClient, BitcoinNetwork, ReconnectConfig};
139pub use coin_control::{
140 CoinControl, ManualSelection, PrivacyPreferences, PrivacySelection, UtxoLabel,
141};
142pub use coin_selection_advanced::{
143 KnapsackSelector, SelectionConfig, SelectionResult, SimulatedAnnealingSelector,
144};
145pub use coin_selection_privacy::{
146 PrivacyCoinSelector, PrivacyConcerns, PrivacyScore, PrivateSelection,
147};
148pub use coinjoin::{
149 CoinJoinClient, CoinJoinCoordinator, CoinJoinSession, Participant, ParticipantInput,
150 SessionConfig, SessionState,
151};
152pub use compact_filters::{
153 CompactFilter, CompactFilterConfig, CompactFilterManager, FilterHeader, FilterStatistics,
154 FilterType, FilterVerifier,
155};
156pub use confirmation::{
157 ConfirmationEvent, ConfirmationLevel, ConfirmationStats, ConfirmationTracker, NotificationType,
158 TrackedOrder,
159};
160pub use connection_pool::{ConnectionPool, PoolConfig, PoolStats, PooledConnectionGuard};
161pub use descriptor::{
162 DescriptorConfig, DescriptorRange, DescriptorType, DescriptorWallet, OutputDescriptor,
163};
164pub use dlc::{
165 CetBuilder, ContractOutcome, DlcContract, DlcManager, DlcStatus, Oracle, OracleAnnouncement,
166 OracleAttestation,
167};
168pub use error::BitcoinError;
169pub use fee_bumping::{
170 AutoFeeBumper, BumpPriority, BumpStrategy, CpfpBuilder, FeeBudgetManager, FeeBumpResult,
171 FeeBumpingPolicy, TrackedTransaction,
172};
173pub use frost::{
174 FrostConfig, FrostCoordinator, FrostSigner, KeyGenOutput, NonceCommitment, SecretShare,
175 SignatureShare, lagrange_coefficient,
176};
177pub use gap_limit::{
178 AddressDiscovery, AddressUsage, DiscoveryResult, GapLimitConfig, GapLimitStats, GapLimitTracker,
179};
180pub use hd_wallet::{
181 AddressBook, AddressInfo as HdAddressInfo, CachedAddress, HdWallet, HdWalletConfig, derivation,
182};
183pub use health::{
184 ComponentHealth, DependencyHealth, HealthCheckConfig, HealthCheckManager, HealthReport,
185 HealthStatus, ResourceUtilization,
186};
187pub use hwi::{
188 AirGappedSigner, HardwareDevice, HardwareWalletManager, HardwareWalletType, HwiConfig,
189};
190pub use key_management::{
191 Guardian, KeyRotationConfig, KeyRotationManager, RecoveryKey, RecoveryProgress, RecoveryShare,
192 RotatedKey, SocialRecoveryConfig, SocialRecoveryManager, TimeDelayedRecoveryConfig,
193 TimeDelayedRecoveryManager,
194};
195pub use lightning::{
196 Channel, ChannelBalance, ChannelPoint, Invoice, InvoiceRequest, InvoiceStatus,
197 InvoiceSubscription, InvoiceUpdate, LightningHealth, LightningPaymentManager,
198 LightningProvider, LndClient, NodeInfo, OpenChannelRequest, OrderPaymentStatus, Payment,
199 PaymentStatus as LightningPaymentStatus, RouteHop,
200};
201pub use matcher::{MatchGroups, MatchResult, MatchStatus, OrderMatch, TransactionMatcher};
202pub use mempool::{
203 AddressWatcher, MempoolEvent, MempoolMonitor, MempoolMonitorConfig, MempoolStats,
204 MempoolTransaction, RemovalReason, ReorgInfo, ReorgTracker, UnconfirmedPayment,
205};
206pub use mempool_space::{
207 FeeMarketAnalysis, FeeMarketCondition, FeeRecommendation, HistoricalFeeData,
208 MempoolSpaceClient, MempoolSpaceConfig, MempoolSpaceStats,
209};
210pub use metrics::{
211 BitcoinMetrics, InMemoryMetricsBackend, MetricType, MetricsBackend, MetricsStats, MetricsTimer,
212 NoOpMetricsBackend,
213};
214pub use miniscript_support::{
215 HashType, MiniscriptCompiler, MiniscriptDescriptor, MiniscriptPolicy, MiniscriptScriptType,
216 PolicyAnalysis, PolicyTemplateBuilder, TimelockType,
217};
218pub use monitor::{
219 MonitorConfig, PaymentDetails, PaymentEvent, PaymentMonitor, PaymentMonitorTask, PaymentStatus,
220 PendingOrder, create_shutdown_signal,
221};
222pub use multisig::{
223 ColdWalletInfo, CustodyManager, MultisigAddress, MultisigConfig, MultisigInput, MultisigOutput,
224 MultisigSignature, MultisigTransaction, MultisigTxBuilder, MultisigTxStatus, MultisigWallet,
225 SignatureCoordinator,
226};
227pub use musig2::{
228 AdaptorSignature, AdaptorSignatureManager, AggregatedNonce, MuSig2Coordinator,
229 MuSig2KeyAggregator, MuSig2Nonce, MuSig2Signer, PartialSignature,
230};
231pub use network_privacy::{
232 BroadcastResult, DandelionBroadcaster, DandelionStats, NetworkPrivacyConfig,
233 NetworkPrivacyManager, PeerConnection, PrivatePeerManager, TorConnectionStats, TorProxyManager,
234};
235pub use notifications::{
236 AdminNotification, AdminNotificationService, NotificationCategory, NotificationMetadata,
237 NotificationPriority, NotificationStats,
238};
239pub use p2p::{P2pClient, P2pConfig, P2pEvent, P2pStats, PeerInfo, PeerManager};
240pub use package_relay::{CpfpHelper, PackageRelayManager, PackageStats, TransactionPackage};
241pub use payjoin::{
242 PayJoinCoordinator, PayJoinParams, PayJoinProposal, PayJoinReceiver, PayJoinResponse,
243 PayJoinRole, PayJoinSender, PayJoinUriBuilder, PayJoinVersion, ReceiverContribution,
244 ReceiverUtxo,
245};
246pub use privacy_metrics::{
247 AddressClusterAnalyzer, ClusterAnalysis, HealthStatus as WalletHealthStatus, PrivacyAnalyzer,
248 PrivacyHeuristic, PrivacyIssue as TransactionPrivacyIssue,
249 PrivacyScore as TransactionPrivacyScore, TransactionInput as PrivacyTransactionInput,
250 TransactionOutput as PrivacyTransactionOutput, TransactionPrivacyAnalysis,
251 WalletPrivacyAnalyzer, WalletPrivacyHealth,
252};
253pub use psbt::{
254 FeeEstimation, PsbtBuilder, PsbtManager, PsbtResult, SignedTransaction, TxOutput, UtxoInput,
255 WithdrawalRequest, WithdrawalResult, WithdrawalStatus,
256};
257pub use psbt_analysis::{
258 FeeVerification, InputAnalysis, OutputAnalysis, PsbtAnalysis, PsbtAnalyzer, SecurityIssue,
259 ValidationWarning, verify_psbt_fees,
260};
261pub use psbt_workflows::{
262 PsbtTemplate, PsbtVersion, PsbtWorkflow, PsbtWorkflowManager, SignatureRecord, SignerRole,
263 SigningStatus, WorkflowState,
264};
265pub use rbf::{
266 RbfConfig, RbfEvent, RbfReplacement, RbfStatus, RbfTracker, RbfTransactionBuilder,
267 TrackedRbfTransaction,
268};
269pub use regtest_utils::{RegtestConfig, RegtestHelper, ReorgInfo as RegtestReorgInfo};
270pub use rsk::{
271 DeploymentStatus as RskDeploymentStatus, PegConfig, PegInTransaction, PegManager, PegOperation,
272 PegOutTransaction, PegStatus, RskAddress, RskClient, RskContractDeployment,
273 RskDeploymentResult, RskNetwork, RskTransactionReceipt,
274};
275pub use script_analyzer::{
276 ScriptAnalysis, ScriptAnalyzer, ScriptDisassembler, ScriptTemplateBuilder,
277 ScriptType as AnalyzerScriptType,
278};
279pub use script_optimizer::{
280 OptimizationConfig, OptimizationEstimate, OptimizationResult, OptimizationType, ScriptOptimizer,
281};
282pub use seed_recovery::{
283 Mnemonic, MnemonicGenerator, MnemonicLanguage, MnemonicStats, MnemonicValidator, SeedXor,
284 WordCount,
285};
286pub use signet::{ChallengeParser, SignetClient, SignetConfig, SignetFaucet, SignetFaucets};
287pub use silent_payments::{
288 DetectedOutput, SilentPaymentAddress, SilentPaymentScanner, SilentPaymentSender,
289 SilentPaymentWallet,
290};
291pub use stacks::{
292 BridgeConfig as StacksBridgeConfig, BridgeOperation as StacksBridgeOperation,
293 BridgeStatus as StacksBridgeStatus, BridgeTransaction as StacksBridgeTransaction,
294 ClarityContract, ContractDeploymentManager, ContractId, DeploymentRequest, DeploymentResult,
295 DeploymentStatus as StacksDeploymentStatus, StacksAddress, StacksClient, StacksNetwork,
296 StacksTransaction, TokenBridge as StacksTokenBridge,
297};
298pub use structured_logging::{
299 CorrelationId, PerformanceSpan, RequestResponseLogger, RpcLogContext,
300};
301pub use submarine_swaps::{
302 SubmarineSwap, SubmarineSwapConfig, SubmarineSwapService, SubmarineSwapStatistics,
303 SubmarineSwapStatus, SwapDirection,
304};
305pub use taproot::{
306 TaprootAddress, TaprootConfig, TaprootKeyPair, TaprootManager, TaprootScriptLeaf,
307 TaprootScriptTree, TaprootSpendPath, TaprootTxBuilder,
308};
309pub use tapscript_utils::{
310 MerkleProof, ScriptPathOptimizer, TapscriptLeaf, TapscriptNode, TapscriptTreeBuilder,
311};
312pub use testnet4::{FaucetInfo, Testnet4Client, Testnet4Config, Testnet4Params};
313pub use timelock::{
314 HtlcConfig, HtlcContract, HtlcManager, HtlcScriptBuilder, HtlcStatus, TimeLockType,
315 TimelockTxBuilder,
316};
317pub use transaction_history::{
318 AddressReuseReport, HistoricalTransaction, PaginatedResult, PaginationOptions, SortField,
319 SortOrder, TransactionFilter, TransactionHistory, TransactionSummary, TransactionType,
320};
321pub use transaction_manager::{
322 TransactionManager, TransactionManagerConfig, TransactionStats, TransactionValidation,
323};
324pub use tx_limits::{
325 LimitConfig, LimitEnforcer, LimitPeriod, LimitViolation, TransactionLimit, UsageRecord,
326};
327pub use tx_parser::{
328 ConfirmationStatus, ParsedInput, ParsedOutput, ParsedTransaction, ScriptType, SenderConfidence,
329 SenderInfo, TransactionAnalysis, TransactionParser,
330};
331pub use utxo::{
332 ConsolidationConfig, ConsolidationPlan, SelectionStrategy, Utxo, UtxoManager, UtxoSelection,
333};
334pub use utxo_privacy::{
335 ConsolidationPrivacyAnalyzer, ConsolidationPrivacyReport, PrivacyIssue, PrivacyRecommendation,
336 ToxicChangeDetector, UtxoCluster, UtxoPrivacyAnalysis,
337};
338pub use wallet::WalletManager;
339pub use wallet_recovery::{
340 DerivationStandard, DiscoveredAddress, RecoveryConfig, RecoveryResult, RecoveryStats,
341 WalletRecovery,
342};