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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions