This is a massive refactoring PR that changes the whole structure of the crate. Previously it was written like a library
to be used to create the bdk-cli app. But eventually the crate itself became the app. This PR attempts to remove the remaining
lib like patterns in the code, and make it a pure binary crate.
This makes the code more modular and makes it look like a typical binary rust crate.
There was no real good way to structure the change into separate commits, so I made one single big one.. The best way to review is to look at the final structure of the code itself, not the change set.
The crate has following modules now
main : The main app runtime
commands: Includes all the structopt commands used by bdk-cli.
handlers: Include all the command handlers used buy the app.
utils: Include all the utility and helper functions
Backend : Defines the backend node process, and its related methods. (This will be filled more with #92).
Apart from the structure changes there are few other changes that took place
Almost all of the previous doc comments are removed. As they were written to use bdk-cli as a lib. Instead new structopts "comments" are added to describe the app functionality better. As a result the app --help commands are more elaborate and descriptive now. I have also removed few redundant description messages used before, that would mess up the help comments. And as a by product it solves https://github.com/bitcoindevkit/bdk-cli/issues/93.
bdk is updated to v0.19.0
bdk-reserves is updated with current version pointing to bdk v0.19.0.
Default database is now sqlite.
Overall I think I managed not to break anything.
Currently this change will remove most of the previous documentation on the crate. But those aren't useful to context of bdk-cli after this change.. My proposal would be reproduce the README instructions itself in doc.rs landing page.
We also need to update the README to reflect these changes.. I will open that up in a separate PR.
I also haven't updated changelog yet.. Not sure yet how to describe the change in short.. Will do that once this is almost finalized..
292dd1e6bdc3c5d061d90028934026d4c60aaf24 Fix repl mode command parsing (Steve Myers) 073f1c339be3057bb1d88ef1e925d5fd09611c98 Update with review comments (rajarshimaitra) 4e8f8303df6a4b80be50cc15c9297f2e411bf672 revert author list change (rajarshimaitra) b09c405327ce8d004d6c96116422322662528829 Remove base64 dependency (rajarshimaitra) 1e70ff911cfde7677b377c21b3c787eb73b4531e Refactor everything (rajarshimaitra)
Pull request description:
Description
This is a massive refactoring PR that changes the whole structure of the crate. Previously it was written like a library to be used to create the bdk-cli app. But eventually the crate itself became the app. This PR attempts to remove the remaining lib like patterns in the code, and make it a pure binary crate.
This makes the code more modular and makes it look like a typical binary rust crate.
There was no real good way to structure the change into separate commits, so I made one single big one.. The best way to review is to look at the final structure of the code itself, not the change set.
The crate has following modules now
main
: The main app runtimecommands
: Includes all the structopt commands used by bdk-cli.handlers
: Include all the command handlers used buy the app.utils
: Include all the utility and helper functionsBackend
: Defines the backend node process, and its related methods. (This will be filled more with #92).Apart from the structure changes there are few other changes that took place
Almost all of the previous doc comments are removed. As they were written to use bdk-cli as a lib. Instead new structopts "comments" are added to describe the app functionality better. As a result the app
--help
commands are more elaborate and descriptive now. I have also removed few redundant description messages used before, that would mess up the help comments. And as a by product it solves https://github.com/bitcoindevkit/bdk-cli/issues/93.bdk is updated to v0.19.0
bdk-reserves is updated with current version pointing to bdk v0.19.0.
Default database is now sqlite.
Overall I think I managed not to break anything.
Currently this change will remove most of the previous documentation on the crate. But those aren't useful to context of bdk-cli after this change.. My proposal would be reproduce the README instructions itself in doc.rs landing page.
We also need to update the README to reflect these changes.. I will open that up in a separate PR.
I also haven't updated changelog yet.. Not sure yet how to describe the change in short.. Will do that once this is almost finalized..
Notes to the reviewers
Checklists
All Submissions:
cargo fmt
andcargo clippy
before committingNew Features:
CHANGELOG.md
ACKs for top commit: notmandatory: ACK 292dd1e6bdc3c5d061d90028934026d4c60aaf24
Tree-SHA512: 895d8088bf93a481fd776e2ac5fe85926f13b7b4535f17b9edd3c0363a89dc3689e28c6e13dbcac3970bc00e3ff206f402e94406f3b3688c9e4a7f9d31b20e40
Description
Notes to the reviewers
Checklists
All Submissions:
cargo fmt
andcargo clippy
before committingNew Features:
CHANGELOG.md
Bugfixes: