Added validate_domain in electrum option#223
Added validate_domain in electrum option#223Rahamath-unnisa wants to merge 1 commit intobitcoindevkit:masterfrom
Conversation
|
@Rahamath-unnisa pls mention in PR description that this resolves #134. |
src/commands.rs
Outdated
|
|
||
| #![allow(clippy::large_enum_variant)] | ||
|
|
||
| #[allow(clippy::large_enum_variant)] |
There was a problem hiding this comment.
ig this is not required.
src/handlers.rs
Outdated
| //! | ||
| //! This module describes all the command handling logic used by bdk-cli. | ||
|
|
||
| use crate::debug; |
There was a problem hiding this comment.
ig this is not needed either.
| }, | ||
| /// Syncs with the chosen blockchain server. | ||
| Sync, | ||
| /// Broadcasts a transaction to the network. Takes either a raw transaction or a PSBT to extract. |
There was a problem hiding this comment.
This doc comment should not be removed.
src/handlers.rs
Outdated
| .populate_tx_cache(wallet.tx_graph().full_txs().map(|tx_node| tx_node.tx)); | ||
|
|
||
| let update = client.sync(request, batch_size, false)?; | ||
| let update = client.sync(request, batch_size, validate_domain)?; |
|
Hi @110CodingP, |
d18f668 to
31a3fbf
Compare
tvpeter
left a comment
There was a problem hiding this comment.
Hi @Rahamath-unnisa,
Thank you for the eagerness to contribute, but please understand the project fully before attempting to do so as it is easier to make progress that way.
Thank you.
Cargo.toml
Outdated
| shlex = { version = "1.3.0", optional = true } | ||
| tracing = "0.1.41" | ||
| tracing-subscriber = "0.3.20" | ||
| electrum-client = "0.24.0" |
There was a problem hiding this comment.
bdk_electrum is built on this crate, so no need pulling it here.
src/commands.rs
Outdated
| #[cfg(feature = "electrum")] | ||
| #[arg(env = "ELECTRUM_BATCH_SIZE", short = 'b', long, default_value = "10")] | ||
| pub batch_size: usize, | ||
| ///Electrum validate domain option. |
There was a problem hiding this comment.
this comment is not needed
src/commands.rs
Outdated
| ///Electrum validate domain option. | ||
| #[cfg(feature = "electrum")] | ||
| #[arg(env="VALIDATE_DOMAIN",long = "validate-domain", action = clap::ArgAction::Set, default_value_t = true)] | ||
| pub validate_domain: bool, |
There was a problem hiding this comment.
a user do not need to specifically indicate whether the domain should be validated
There was a problem hiding this comment.
sorry if I misunderstood but doesn't the issue want us to provide validate_domain as an option? Because otherwise config.validate_domain is true by default anyways.
va-an
left a comment
There was a problem hiding this comment.
Could you rebase and squash the commits into one, please?
818a744 to
c697136
Compare
|
Hi @tvpeter, @110CodingP, @va-an, I’ve updated the PR based on your feedback:
Please review again. Thanks! |
va-an
left a comment
There was a problem hiding this comment.
Make sure you've done the rebase correctly.
Also, I'll repeat my request to squash into a single commit.
There was a problem hiding this comment.
What's the idea behind these changes?
Moreover, because of these changes, Cargo.toml has become invalid:
-> % just pre-push
error: failed to parse manifest at `/home/vaan/src/bitcoindevkit/bdk-cli-tmp/Cargo.toml`
Caused by:
feature `_payjoin-dependencies` includes `payjoin` which is neither a dependency nor another feature
error: Recipe `pre-push` failed on line 29 with exit code 101
src/handlers.rs
Outdated
| <<<<<<< HEAD | ||
| <<<<<<< HEAD | ||
| ======= |
There was a problem hiding this comment.
| <<<<<<< HEAD | |
| <<<<<<< HEAD | |
| ======= |
src/handlers.rs
Outdated
| >>>>>>> 7931dbd (Added validate_domain in electrum option) | ||
| ======= | ||
| >>>>>>> a2f5954 (Clean up commands.rs and handlers.rs per review comments) |
There was a problem hiding this comment.
| >>>>>>> 7931dbd (Added validate_domain in electrum option) | |
| ======= | |
| >>>>>>> a2f5954 (Clean up commands.rs and handlers.rs per review comments) |
src/utils.rs
Outdated
| use std::fmt::Display; | ||
| use std::path::{Path, PathBuf}; | ||
| use std::str::FromStr; | ||
| >>>>>>> 80e132f (Added validate-domain option config in utils.rs and made changes required to that.) |
There was a problem hiding this comment.
| >>>>>>> 80e132f (Added validate-domain option config in utils.rs and made changes required to that.) |
va-an
left a comment
There was a problem hiding this comment.
Also, please fill out the PR template provided in this repo - it includes checklists that help catch issues like, you know, the code not actually compiling.
1fc13e4 to
546948e
Compare
|
Hi @va-an, Thanks for your feedback. I’ve now:
Please review again. Thanks! |
tvpeter
left a comment
There was a problem hiding this comment.
hi @Rahamath-unnisa, thank you for continuing to work on this issue. Below are some of the observations I have on this PR:
- I have noticed that the primary change in this PR is changing the
electrum_client::Client::new(url)toelectrum_client::Client::from_config(url, config)where theconfigis still default.
Looking at the electrum_client code, there seems to be no functional difference between the two approaches, as thenewinternally returns thefrom_configwith the same defaults. - Secondly, my initial thoughts about the issue was that, maybe it was meant to handle the parsing and validation of the supplied url string. If this was the intent of the issue, I think it is best it were moved to the electrum_client codebase.
- lastly, as I commented earlier, adding another flag will rather complicate the user experience by having too many flags to accompany each (sub)command.
Therefore, I am of the opinion that, this PR should either be closed or moved to the electrum_client codebase. I will wait to hear others' opinions before deciding the best course of action.
Thank you so much for your effort.
|
@tvpeter I would prefer to close this. The code still doesn't compile, the PR template wasn't used despite being asked, and most of the changes are unrelated to the issue. If the use case is still relevant, it can be revisited as a fresh PR. |
Description:
This PR adds the validate_domain option to the Electrum client in bdk-cli.
This resolves #134 .
Changes included:
Added --validate-domain flag in command.rs.
Updated Electrum client handling in handlers.rs and utils.rs to respect the flag.
Verified functionality locally using:
RUST_LOG=debug,rusqlite=info,rustls=info cargo run --features electrum -- wallet --client-type electrum --database-type sqlite --url ssl://electrum.blockstream.info:60002 --validate-domain true --ext-descriptor "wpkh(.../*)" sync
Motivation:
Allows users to enable or disable domain validation for Electrum servers, useful for self-hosted/custom servers while preserving security by default.
Checklist:
Tested locally with Electrum client
No unrelated changes included