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.