Skip to content

0.6.1 fails to build #610

@TheBlueMatt

Description

@TheBlueMatt

Clean checkout, clean build dir, but 0.6.1 seems to not build currently:

error[E0599]: the method `populate_tx_cache` exists for struct `Arc<BdkElectrumClient<Client>>`, but its trait bounds were not satisfied
   --> /root/ldk-node/src/chain/electrum.rs:158:23
    |
158 |         bdk_electrum_client.populate_tx_cache(cached_txs);
    |                             ^^^^^^^^^^^^^^^^^ method cannot be called on `Arc<BdkElectrumClient<Client>>` due to unsatisfied trait bounds
    |
   ::: /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/electrum-client-0.23.1/src/client.rs:32:1
    |
32  | pub struct Client {
    | ----------------- doesn't satisfy `_: ElectrumApi` or `electrum_client::Client: Deref`
    |
    = note: the following trait bounds were not satisfied:
            `electrum_client::Client: Deref`
            which is required by `electrum_client::Client: bdk_electrum::electrum_client::ElectrumApi`

error[E0599]: the method `sync` exists for struct `Arc<BdkElectrumClient<Client>>`, but its trait bounds were not satisfied
   --> /root/ldk-node/src/chain/electrum.rs:161:24
    |
161 |             bdk_electrum_client.sync(request, BDK_ELECTRUM_CLIENT_BATCH_SIZE, true)
    |                                 ^^^^ method cannot be called on `Arc<BdkElectrumClient<Client>>` due to unsatisfied trait bounds
    |
   ::: /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/electrum-client-0.23.1/src/client.rs:32:1
    |
32  | pub struct Client {
    | ----------------- doesn't satisfy `_: ElectrumApi` or `electrum_client::Client: Deref`
    |
    = note: the following trait bounds were not satisfied:
            `electrum_client::Client: Deref`
            which is required by `electrum_client::Client: bdk_electrum::electrum_client::ElectrumApi`

error[E0599]: the method `populate_tx_cache` exists for struct `Arc<BdkElectrumClient<Client>>`, but its trait bounds were not satisfied
   --> /root/ldk-node/src/chain/electrum.rs:124:23
    |
124 |         bdk_electrum_client.populate_tx_cache(cached_txs);
    |                             ^^^^^^^^^^^^^^^^^ method cannot be called on `Arc<BdkElectrumClient<Client>>` due to unsatisfied trait bounds
    |
   ::: /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/electrum-client-0.23.1/src/client.rs:32:1
    |
32  | pub struct Client {
    | ----------------- doesn't satisfy `_: ElectrumApi` or `electrum_client::Client: Deref`
    |
    = note: the following trait bounds were not satisfied:
            `electrum_client::Client: Deref`
            which is required by `electrum_client::Client: bdk_electrum::electrum_client::ElectrumApi`

error[E0599]: the method `full_scan` exists for struct `Arc<BdkElectrumClient<Client>>`, but its trait bounds were not satisfied
   --> /root/ldk-node/src/chain/electrum.rs:127:24
    |
127 |             bdk_electrum_client.full_scan(
    |             --------------------^^^^^^^^^ method cannot be called on `Arc<BdkElectrumClient<Client>>` due to unsatisfied trait bounds
    |
   ::: /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/electrum-client-0.23.1/src/client.rs:32:1
    |
32  | pub struct Client {
    | ----------------- doesn't satisfy `_: ElectrumApi` or `electrum_client::Client: Deref`
    |
    = note: the following trait bounds were not satisfied:
            `electrum_client::Client: Deref`
            which is required by `electrum_client::Client: bdk_electrum::electrum_client::ElectrumApi`

error[E0277]: the trait bound `electrum_client::Client: bdk_electrum::electrum_client::ElectrumApi` is not satisfied
   --> /root/ldk-node/src/chain/electrum.rs:75:61
    |
75  |         let bdk_electrum_client = Arc::new(BdkElectrumClient::new(electrum_client_2));
    |                                            ---------------------- ^^^^^^^^^^^^^^^^^ the trait `Deref` is not implemented for `electrum_client::Client`
    |                                            |
    |                                            required by a bound introduced by this call
    |
note: there are multiple different versions of crate `electrum_client` in the dependency graph
   --> /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/electrum-client-0.24.0/src/api.rs:186:1
    |
186 | pub trait ElectrumApi {
    | ^^^^^^^^^^^^^^^^^^^^^ this is the required trait
    |
   ::: /root/ldk-node/src/chain/electrum.rs:21:5
    |
21  | use lightning_transaction_sync::ElectrumSyncClient;
    |     -------------------------- one version of crate `electrum_client` used here, as a dependency of crate `lightning_transaction_sync`
...
29  | use bdk_electrum::BdkElectrumClient;
    |     ------------ one version of crate `electrum_client` used here, as a dependency of crate `bdk_electrum`
    |
   ::: /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/electrum-client-0.23.1/src/client.rs:32:1
    |
32  | pub struct Client {
    | ----------------- this type doesn't implement the required trait
    |
   ::: /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/electrum-client-0.24.0/src/client.rs:32:1
    |
32  | pub struct Client {
    | ----------------- this type implements the required trait
    |
   ::: /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/electrum-client-0.21.0/src/socks/writev.rs:4:1
    |
4   | pub trait WritevExt {
    | ------------------- this is the found trait
    = note: two types coming from two different versions of the same crate are different types even if they look the same
    = help: you can use `cargo tree` to explore your dependency tree
    = note: required for `electrum_client::Client` to implement `bdk_electrum::electrum_client::ElectrumApi`
note: required by a bound in `BdkElectrumClient::<E>::new`
   --> /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bdk_electrum-0.23.1/src/bdk_electrum_client.rs:29:9
    |
29  | impl<E: ElectrumApi> BdkElectrumClient<E> {
    |         ^^^^^^^^^^^ required by this bound in `BdkElectrumClient::<E>::new`
30  |     /// Creates a new bdk client from a [`electrum_client::ElectrumApi`]
31  |     pub fn new(client: E) -> Self {
    |            --- required by a bound in this associated function

Some errors have detailed explanations: E0277, E0599.
For more information about an error, try `rustc --explain E0277`.
error: could not compile `ldk-node` (lib) due to 5 previous errors

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions