Steve Myers [Sun, 9 Jan 2022 21:57:11 +0000 (22:57 +0100)]
Fix repl and wallet help docs
This fixes the help docs for the repl and wallet subcommands. The repl subcommand was showing the proxy options docs instead, and the wallet subcommand was showing the description from the WalletSubCommand enum.
This is a workaround for structopt issue #333, #391, #418.
see https://github.com/TeXitoi/structopt/issues/333#issuecomment-712265332
if no wallet name was provided, use one derived from the descriptor
### Notes to the reviewers
Is there a better place to use wallet_name_from_descriptor so that the generated name shows up in the unit tests instead of the placeholder?
### Checklists
#### All Submissions:
* [x] I've signed all my commits
* [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
* [x] I ran `cargo fmt` and `cargo clippy` before committing
Steve Myers [Fri, 10 Dec 2021 04:21:30 +0000 (20:21 -0800)]
Limit rustyline version to >=9.0.0, <9.1.0
This is required because rustyline 9.1.0 uses rust edition 2021 which
this project has not yet adopted. See:
https://github.com/kkawakam/rustyline/pull/570
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
<!-- Describe the purpose of this PR, what's being adding and/or fixed -->
bdk-cli had lots of ugly unwraps through out the code. All the unwraps inside the library (except tests) were removed and errors were propagated with `bdk::Error` type.
<!-- In this section you can include notes directed to the reviewers, like explaining why some parts
of the PR were done in a specific way -->
### Checklists
#### All Submissions:
* [x] I've signed all my commits
* [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
* [x] I ran `cargo fmt` and `cargo clippy` before committing
There was an inconsistency in `rpc` tests. The `RpcOpts` was missing from the wallet struct. This wasn't caught before because we didn't have `rpc` tests in CI. Fixed that too.
Also removed redundant wallet options from feature gated tests.
### Checklists
#### All Submissions:
* [x] I've signed all my commits
* [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
* [x] I ran `cargo fmt` and `cargo clippy` before committing
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
To match with existing codecov of BDK, Tarpaulin based codecov in bdk-cli is changed to grcov.
### Notes to the reviewers
<!-- In this section you can include notes directed to the reviewers, like explaining why some parts
of the PR were done in a specific way -->
### Checklists
#### All Submissions:
* [x] I've signed all my commits
* [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
* [x] I ran `cargo fmt` and `cargo clippy` before committing
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### adding the commands for proof-of-reserves using the separate repository
<!-- Describe the purpose of this PR, what's being adding and/or fixed -->
### Notes to the reviewers
<!-- In this section you can include notes directed to the reviewers, like explaining why some parts
of the PR were done in a specific way -->
### Checklists
#### All Submissions:
* [x] I've signed all my commits
* [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
* [x] I ran `cargo fmt` and `cargo clippy` before committing
#### New Features:
* [x] I've added tests for the new feature
* [ ] I've added docs for the new feature
* [x] I've updated `CHANGELOG.md`
#### Bugfixes:
* [ ] This pull request breaks the existing API
* [ ] I've added tests to reproduce the issue which are now passing
* [ ] I'm linking the issue being fixed by this PR
<!-- In this section you can include notes directed to the reviewers, like explaining why some parts
of the PR were done in a specific way -->
### Checklists
#### All Submissions:
* [x] I've signed all my commits
* [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
* [x] I ran `cargo fmt` and `cargo clippy` before committing
Update MSRV to the current stable, 1.56.1 and update the `cargo.lock` file. Also removed the `rust-toolchain` file.
### Notes to the reviewers
I removed the `rust-toolchain` file because I don't think we need to lock users into a particular version (or force them to override it), and this file seem to primarily be used for projects using a specific nightly release, see: https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file.
I also had to pin the `fd-lock` dependency because of a recent update to that crate to use the [`rustdoc::missing_doc_code_examples` feature which is only supported by `nightly`](https://doc.rust-lang.org/rustdoc/lints.html#missing_doc_code_examples) :disappointed: .
### Checklists
#### All Submissions:
* [x] I've signed all my commits
* [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
* [x] I ran `cargo fmt` and `cargo clippy` before committing
Steve Myers [Thu, 7 Oct 2021 23:06:59 +0000 (16:06 -0700)]
Add '--shrink' option to wallet bump_fee command
Replace `wallet bump_fee` command `--send_all` with new
`--shrink ADDRESS` option to reduce the output amount for the
specified address to increase RBF transaction fee.
codeShark149 [Tue, 25 May 2021 09:24:21 +0000 (14:54 +0530)]
Refactor Proxy configuration
This PR makes the following changes:
- Proxy configuration is moved into a separate `ProxyOpt` structure
inside `WalletOpts`. `ProxyOpts` are only enabled for
`compact_filters` and `electrum` features.
- `--node` config can now take `vec<String>` and make `conn_count`
number of connections to each node.
codeShark149 [Sat, 22 May 2021 16:34:17 +0000 (22:04 +0530)]
Add <wallet-name> to data directory
This will append the wallet name provided via configuration flag to
bdk-cli into the data directory. So the current structure of datadir
is `~/.bdk-bitcoin/compact_filters/<wallet-name>.
This will let bdk-cli keep multiple wallet directories simultaneously.
codeShark149 [Sat, 8 May 2021 12:07:16 +0000 (17:37 +0530)]
Adds compact filter configuration
This adds a compact filter configuration to connect the wallet with a Bitcoin core node serving compact filters. Esplora and Compact filter configs are first parsed, and fall back to default electrum config if none of them are provided.