Expand description

Provides utilities for syncing LDK via the transaction-based Confirm interface.

The provided synchronization clients need to be registered with a ChainMonitor via the Filter interface. Then, the respective fn sync needs to be called with the Confirm implementations to be synchronized, i.e., usually instances of ChannelManager and ChainMonitor.

§Features and Backend Support

  • esplora-blocking enables syncing against an Esplora backend based on a blocking client.
  • esplora-async enables syncing against an Esplora backend based on an async client.
  • esplora-async-https enables the async Esplora client with support for HTTPS.

§Version Compatibility

Currently this crate is compatible with LDK version 0.0.114 and above using channels which were created on LDK version 0.0.113 and above.

§Usage Example:

let tx_sync = Arc::new(EsploraSyncClient::new(
	esplora_server_url,
	Arc::clone(&some_logger),
));

let chain_monitor = Arc::new(ChainMonitor::new(
	Some(Arc::clone(&tx_sync)),
	Arc::clone(&some_broadcaster),
	Arc::clone(&some_logger),
	Arc::clone(&some_fee_estimator),
	Arc::clone(&some_persister),
));

let channel_manager = Arc::new(ChannelManager::new(
	Arc::clone(&some_fee_estimator),
	Arc::clone(&chain_monitor),
	Arc::clone(&some_broadcaster),
	Arc::clone(&some_router),
	Arc::clone(&some_logger),
	Arc::clone(&some_entropy_source),
	Arc::clone(&some_node_signer),
	Arc::clone(&some_signer_provider),
	user_config,
	chain_params,
));

let confirmables = vec![
	&*channel_manager as &(dyn Confirm + Sync + Send),
	&*chain_monitor as &(dyn Confirm + Sync + Send),
];

tx_sync.sync(confirmables).unwrap();

Structs§

Enums§

  • TxSyncErroresplora-blocking or esplora-async or electrum
    An error that possibly needs to be handled by the user.