mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 06:49:38 -04:00
Merge bitcoin/bitcoin#32281: bench: Fix WalletMigration benchmark
7912cd4125
bench: Fix WalletMigration benchmark (pablomartin4btc) Pull request description: The keys and scripts created for the Legacy Wallet needed to be persisted in order for the migration to work properly. Fixes #32277. ACKs for top commit: achow101: ACK7912cd4125
davidgumberg: Tested ACK7912cd4125
furszy: utACK7912cd4125
Tree-SHA512: fe7b8e0a80d4d030ad3fd6446717ee09a260ab2bd6140bc817bdca52d233e3af8a8fed2d754743ca2ba022f7d2c8615a36b5070991d12942c13835e8f72e359f
This commit is contained in:
commit
7a3afe6787
1 changed files with 3 additions and 0 deletions
|
@ -32,6 +32,7 @@ static void WalletMigration(benchmark::Bench& bench)
|
|||
std::unique_ptr<CWallet> wallet = std::make_unique<CWallet>(test_setup->m_node.chain.get(), "", CreateMockableWalletDatabase());
|
||||
wallet->chainStateFlushed(ChainstateRole::NORMAL, CBlockLocator{});
|
||||
LegacyDataSPKM* legacy_spkm = wallet->GetOrCreateLegacyDataSPKM();
|
||||
WalletBatch batch{wallet->GetDatabase()};
|
||||
|
||||
// Add watch-only addresses
|
||||
std::vector<CScript> scripts_watch_only;
|
||||
|
@ -42,6 +43,7 @@ static void WalletMigration(benchmark::Bench& bench)
|
|||
const CScript& script = scripts_watch_only.emplace_back(GetScriptForDestination(dest));
|
||||
assert(legacy_spkm->LoadWatchOnly(script));
|
||||
assert(wallet->SetAddressBook(dest, strprintf("watch_%d", w), /*purpose=*/std::nullopt));
|
||||
batch.WriteWatchOnly(script, CKeyMetadata());
|
||||
}
|
||||
|
||||
// Generate transactions and local addresses
|
||||
|
@ -58,6 +60,7 @@ static void WalletMigration(benchmark::Bench& bench)
|
|||
mtx.vout.emplace_back(COIN, scripts_watch_only.at(j % NUM_WATCH_ONLY_ADDR));
|
||||
mtx.vin.resize(2);
|
||||
wallet->AddToWallet(MakeTransactionRef(mtx), TxStateInactive{}, /*update_wtx=*/nullptr, /*fFlushOnClose=*/false, /*rescanning_old_block=*/true);
|
||||
batch.WriteKey(pubkey, key.GetPrivKey(), CKeyMetadata());
|
||||
}
|
||||
|
||||
bench.epochs(/*numEpochs=*/1).run([&context, &wallet] {
|
||||
|
|
Loading…
Add table
Reference in a new issue