Update BDK version to 0.12.0#41
Conversation
Updating the BDK version creates some breaking change. One of such change probably requires modification of BDK to expose a new function to fetch scriptpubkey from a txid. Used ureq version of esplora to remove async related complexities.
|
|
||
| [dependencies] | ||
| bdk = { version = "^0.7", default-features = false, features = ["all-keys"]} | ||
| bdk = { version = "0.10.0", default-features = false, features = ["all-keys"]} |
There was a problem hiding this comment.
I wasn't able to connect to the blockstream esplora server via https (and http redirects to https) because bdk disables ureq default features. @tcharding was disabling the tls feature intentional?
@rajarshimaitra If having the ureq tls feature disabled by default is intentional I think it makes sense to add a ureq-tls = [ "ureq/tls" ] feature to bdk so we can enable it from the bdk-cli project (or for others who need it).
There was a problem hiding this comment.
Good Idea. Better to enable tls in ureq if we use it. IMO connecting https will be quite a generic requirement. Will open a PR if we all agree the same.
We don't need another feature flag for this, just add tls in ureq's feature list.
There was a problem hiding this comment.
True, maybe best of have tls feature enabled by default in bdk, but first I'd like to get @tcharding's input since he originally added the ureq dependency and may have an argument for leaving tls off by default.
There was a problem hiding this comment.
I have no problem with enabling TLS by default. As for why I disabled it, I can't remember exactly why, I probably just disabled default features during a debugging session and never turned TLS back on. Thanks for checking in with me and thanks for giving it the thought to realize we should enable it by default!
| repl = ["regex", "rustyline"] | ||
| electrum = ["bdk/electrum"] | ||
| esplora = ["bdk/esplora"] | ||
| esplora = ["bdk/use-esplora-ureq"] |
There was a problem hiding this comment.
I'm trying to use this to test bitcoindevkit/bdk#429: to get bdk-cli to work in the browser we need a way to enable bdk/use-esplora-reqwest. I would suggest maybe adding another feature esplora-reqwest that we can use from wasm32
There was a problem hiding this comment.
Or maybe even better: async-esplora
There was a problem hiding this comment.
I think this PR may be blocked until @tcharding and @LLFourn work out things out with bitcoindevkit/bdk#433.
There was a problem hiding this comment.
Yes. I am not really sure how big the httpclient fix would be. If it takes much longer, can we consider merging bitcoindevkit/bdk#430 in the mean time? #36 is also pending on this one.
And I think that will fix @afilini 's issue too.
There was a problem hiding this comment.
In the meantime I made this branch just to test the playground: https://github.com/afilini/bdk-cli/tree/update-with-reqwest
|
Added esplora-reqwest into bdk-cli. @notmandatory we have to use @afilini please check if this meets your requirement, or something more to be done? To use request compile with |
88621be to
dbf3a1f
Compare
|
When |
|
@notmandatory just FYI, the rest of the open PRs builds on top of this. So this needs to go first before they can be merged.. :) |
|
I just made the |
BDK v0.10.0 adds a stop_gap parameter to electrum config.
Esplora ureq version requires having new cli args.
Adds esplora-reqwest capability from bdk. Allows to use async https connections with esplora from bdk-cli.
Recent update in BDK esplora backend allows it to connect with SOCKS5 proxy. This change adds proxy option to esplora configuration. Updates Proxy_Opts feature guard to enable it for esplora feature.
dbf3a1f to
f9a9606
Compare
|
Rebased with bdk v0.12. FYI, I am not updating #42 and #36 right now. For simplicity of merging this needs to be merged first. Then the rest two can be rebased on top of updated master. I think that will simplify the review process as all these PRs are interdependent. This one is the biggest change among all other as it handles all the update from bdk v0.10 to v0.12. So keeping this one separate from review of the rest. |
notmandatory
left a comment
There was a problem hiding this comment.
re-ACK f9a9606
I manually tested and works fine as long as correct esplora server URL is used. Either README needs to be updated, defaults need to be changed for testnet or maybe something else. Will merge this now so other PRs can proceed and we can fix the esplora server URL issue in a subsequent PR.
Description
This PR updates the upstream BDK version to latest release (
v0.10.0).Notes to the reviewers
The latest release of BDK includes some breaking changes, some of which are handled here. A previously available function in BDK,
maintain_single_recipient()is changed intoallow_shrinking()which requires a scriptpubkey to be specified. So far I couldn't find any public API in BDK using which a scriptpubkey (or the transaction) can be retrieved from the wallet given a TxID. Marked the code with aTODO. It probably needs some additional API in BDK. Made an issue (bitcoindevkit/bdk#427) to track this.BDK
esplorablockchain module has been divided into two typesusing-ureqandusing-reqwest.reqwestis an async feature in BDK, which producesFuturerelated errors inbdk-cli(#36 (comment)). Trying to solve that error creates more complexity (async related weridness). Thus decided to scrapreqwestand go with blockingureqversion, which I think is adequate for the usecases ofbdk-cli.Updated electrum cli args.
Checklists
All Submissions:
cargo fmtandcargo clippybefore committingNew Features:
CHANGELOG.mdBugfixes: