logo
Expand description

Blockchain backends

This module provides the implementation of a few commonly-used backends like Electrum, Esplora and Compact Filters/Neutrino, along with a generalized trait Blockchain that can be implemented to build customized backends.

Re-exports

pub use any::AnyBlockchain;
pub use any::AnyBlockchainConfig;
pub use self::electrum::ElectrumBlockchain;
pub use self::electrum::ElectrumBlockchainConfig;
pub use self::rpc::RpcBlockchain;
pub use self::rpc::RpcConfig;
pub use self::compact_filters::CompactFiltersBlockchain;

Modules

Runtime-checked blockchain types

compact_filterscompact_filters

Compact Filters

electrumelectrum

Electrum

esploraesplora

Esplora

rpcrpc

Rpc Blockchain

Structs

Structure that implements the logic to sync with Esplora

Type that implements Progress and logs at level INFO every update received

Type that implements Progress and drops every update received

Enums

Capabilities that can be supported by a Blockchain backend

Traits

Trait that defines the actions that must be supported by a blockchain backend

Trait for a factory of blockchains that share the underlying connection or configuration

Trait for Blockchain types that can be created given a configuration

Trait for getting block hash by block height

Trait for getting the current height of the blockchain.

Trait for getting a transaction by txid

Trait for types that can receive and process progress updates during WalletSync::wallet_sync and WalletSync::wallet_setup

Trait for blockchains that don’t contain any state

Trait for blockchains that can sync by updating the database directly.

Functions

Create a new instance of LogProgress

Create a new instance of NoopProgress

Shortcut to create a channel (pair of Sender and Receiver) that can transport ProgressData

Type Definitions

Data sent with a progress update over a channel