push
github
Merge bitcoindevkit/bdk#1514: refactor(wallet)!: rework persistence, changeset, and construction 64eb57634 chore(wallet): Fix ChangeSet::merge (LLFourn) 8875c92ec chore(wallet): Fix descriptor mismatch error keychain (LLFourn) 2cf07d686 refactor(chain,wallet)!: move rusqlite things into it's own file (志宇) 93f9b83e2 chore(chain): rm unused `sqlite` types (志宇) 892b97d44 feat(chain,wallet)!: Change persist-traits to be "safer" (志宇) 3aed4cf17 test(wallet): ensure checks work when loading wallet (志宇) af4ee0fa4 refactor(wallet)!: Make `bdk_wallet::ChangeSet` non-exhaustive (志宇) 22d02ed3d feat!: improve wallet building methods (志宇) eb73f0659 refactor!: move `WalletChangeSet` to `bdk_wallet` and fix import paths (志宇) 6b4300195 feat!: Rework sqlite, changesets, persistence and wallet-construction (志宇) Pull request description: Closes #1496 Closes #1498 Closes #1500 ### Description Rework sqlite: Instead of only supported one schema (defined in `bdk_sqlite`), we have a schema per changeset type for more flexiblity. * rm `bdk_sqlite` crate (as we don't need `bdk_sqlite::Store` anymore). * add `sqlite` feature on `bdk_chain` which adds methods on each changeset type for initializing tables, loading the changeset and writing. Rework changesets: Some callers may want to use `KeychainTxOutIndex` where `K` may change per descriptor on every run. So we only want to persist the last revealed indices by `DescriptorId` (which uniquely-ish identifies the descriptor). * rm `keychain_added` field from `keychain_txout`'s changeset. * Add `keychain_added` to `CombinedChangeSet` (which is renamed to `WalletChangeSet`). Rework persistence: add... (continued)
817 of 1088 new or added lines in 12 files covered. (75.09%)
33 existing lines in 7 files now uncovered.10946 of 13369 relevant lines covered (81.88%)
16192.73 hits per line