Enum bdk::blockchain::any::AnyBlockchainConfig[][src]

pub enum AnyBlockchainConfig {
    Electrum(ElectrumBlockchainConfig),
    Esplora(EsploraBlockchainConfig),
    CompactFilters(CompactFiltersBlockchainConfig),
}

Type that can contain any of the blockchain configurations defined by the library

This allows storing a single configuration that can be loaded into an AnyBlockchain instance. Wallets that plan to offer users the ability to switch blockchain backend at runtime will find this particularly useful.

This type can be serialized from a JSON object like:

use bdk::blockchain::{electrum::ElectrumBlockchainConfig, AnyBlockchainConfig};
let config: AnyBlockchainConfig = serde_json::from_str(
    r#"{
   "type" : "electrum",
   "url" : "ssl://electrum.blockstream.info:50002",
   "retry": 2
}"#,
)
.unwrap();
assert_eq!(
    config,
    AnyBlockchainConfig::Electrum(ElectrumBlockchainConfig {
        url: "ssl://electrum.blockstream.info:50002".into(),
        retry: 2,
        socks5: None,
        timeout: None
    })
);

Variants

This is supported on crate feature electrum only.

Electrum client

This is supported on crate feature esplora only.

Esplora client

This is supported on crate feature compact_filters only.

Compact filters client

Trait Implementations

impl Clone for AnyBlockchainConfig[src]

impl Debug for AnyBlockchainConfig[src]

impl<'de> Deserialize<'de> for AnyBlockchainConfig[src]

impl From<CompactFiltersBlockchainConfig> for AnyBlockchainConfig[src]

impl From<ElectrumBlockchainConfig> for AnyBlockchainConfig[src]

impl From<EsploraBlockchainConfig> for AnyBlockchainConfig[src]

impl PartialEq<AnyBlockchainConfig> for AnyBlockchainConfig[src]

impl Serialize for AnyBlockchainConfig[src]

impl StructuralPartialEq for AnyBlockchainConfig[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,