Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds the RPC wallet syncing codes. This includes the
rpcwallet
library,keychain_tracker_rpc
command line app, andwallet_rpc
BDK wallet example.This works on the existing structure of
bdk_chain
and might require update after #895.Notes to the reviewers
This still has many rough ages.
The
RpcClient
currently initiates a legacy wallet, into which we import all the tracker addresses. This still causes the problem reported in RPC sync failure #859. The work-around for now added in the code is to ignore theresource unavailable error
and carry on. Looking for more suggestions. One future hope is, using the core's descriptor wallet and work with descriptor imports. But still might not fix this RPC issue.I added a new
Wallet
APIdump_spks
which is useful for getting all the existing spks from the tracker without rederiving them.Basic docs are added. If you see anything missing or inappropriate let me know.
What should be the approach of testing? Should we think of recreating the previous
blockchian tests
?Changelog notice
Checklists
All Submissions:
cargo fmt
andcargo clippy
before committing