fix(wallet): apply loaded changeset to indexed_graph
This commit is contained in:
parent
b5612f269a
commit
f4863c6314
@ -517,7 +517,9 @@ impl<D> Wallet<D> {
|
|||||||
create_signers(&mut index, &secp, descriptor, change_descriptor, network)
|
create_signers(&mut index, &secp, descriptor, change_descriptor, network)
|
||||||
.map_err(LoadError::Descriptor)?;
|
.map_err(LoadError::Descriptor)?;
|
||||||
|
|
||||||
let indexed_graph = IndexedTxGraph::new(index);
|
let mut indexed_graph = IndexedTxGraph::new(index);
|
||||||
|
indexed_graph.apply_changeset(changeset.indexed_tx_graph);
|
||||||
|
|
||||||
let persist = Persist::new(db);
|
let persist = Persist::new(db);
|
||||||
|
|
||||||
Ok(Wallet {
|
Ok(Wallet {
|
||||||
|
@ -71,19 +71,26 @@ fn load_recovers_wallet() {
|
|||||||
let file_path = temp_dir.path().join("store.db");
|
let file_path = temp_dir.path().join("store.db");
|
||||||
|
|
||||||
// create new wallet
|
// create new wallet
|
||||||
let wallet_keychains = {
|
let wallet_spk_index = {
|
||||||
let db = bdk_file_store::Store::create_new(DB_MAGIC, &file_path).expect("must create db");
|
let db = bdk_file_store::Store::create_new(DB_MAGIC, &file_path).expect("must create db");
|
||||||
let wallet =
|
let mut wallet = Wallet::new(get_test_tr_single_sig_xprv(), None, db, Network::Testnet)
|
||||||
Wallet::new(get_test_wpkh(), None, db, Network::Testnet).expect("must init wallet");
|
.expect("must init wallet");
|
||||||
wallet.keychains().clone()
|
|
||||||
|
wallet.try_get_address(New).unwrap();
|
||||||
|
wallet.spk_index().clone()
|
||||||
};
|
};
|
||||||
|
|
||||||
// recover wallet
|
// recover wallet
|
||||||
{
|
{
|
||||||
let db = bdk_file_store::Store::open(DB_MAGIC, &file_path).expect("must recover db");
|
let db = bdk_file_store::Store::open(DB_MAGIC, &file_path).expect("must recover db");
|
||||||
let wallet = Wallet::load(get_test_wpkh(), None, db).expect("must recover wallet");
|
let wallet =
|
||||||
|
Wallet::load(get_test_tr_single_sig_xprv(), None, db).expect("must recover wallet");
|
||||||
assert_eq!(wallet.network(), Network::Testnet);
|
assert_eq!(wallet.network(), Network::Testnet);
|
||||||
assert_eq!(wallet.spk_index().keychains(), &wallet_keychains);
|
assert_eq!(wallet.spk_index().keychains(), wallet_spk_index.keychains());
|
||||||
|
assert_eq!(
|
||||||
|
wallet.spk_index().last_revealed_indices(),
|
||||||
|
wallet_spk_index.last_revealed_indices()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user