Skip to content

Commit d9ac9db

Browse files
committed
tests, gui: Use descriptors watchonly wallet for watchonly test
1 parent 9a4c92e commit d9ac9db

File tree

1 file changed

+15
-23
lines changed

1 file changed

+15
-23
lines changed

src/qt/test/wallettests.cpp

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -189,36 +189,28 @@ void SyncUpWallet(const std::shared_ptr<CWallet>& wallet, interfaces::Node& node
189189
QVERIFY(result.last_failed_block.IsNull());
190190
}
191191

192-
std::shared_ptr<CWallet> SetupLegacyWatchOnlyWallet(interfaces::Node& node, TestChain100Setup& test)
193-
{
194-
std::shared_ptr<CWallet> wallet = std::make_shared<CWallet>(node.context()->chain.get(), "", CreateMockableWalletDatabase());
195-
wallet->LoadWallet();
196-
{
197-
LOCK(wallet->cs_wallet);
198-
wallet->SetWalletFlag(WALLET_FLAG_DISABLE_PRIVATE_KEYS);
199-
wallet->SetupLegacyScriptPubKeyMan();
200-
// Add watched key
201-
CPubKey pubKey = test.coinbaseKey.GetPubKey();
202-
bool import_keys = wallet->ImportPubKeys({{pubKey.GetID(), false}}, {{pubKey.GetID(), pubKey}} , /*key_origins=*/{}, /*add_keypool=*/false, /*timestamp=*/1);
203-
assert(import_keys);
204-
wallet->SetLastBlockProcessed(105, WITH_LOCK(node.context()->chainman->GetMutex(), return node.context()->chainman->ActiveChain().Tip()->GetBlockHash()));
205-
}
206-
SyncUpWallet(wallet, node);
207-
return wallet;
208-
}
209-
210-
std::shared_ptr<CWallet> SetupDescriptorsWallet(interfaces::Node& node, TestChain100Setup& test)
192+
std::shared_ptr<CWallet> SetupDescriptorsWallet(interfaces::Node& node, TestChain100Setup& test, bool watch_only = false)
211193
{
212194
std::shared_ptr<CWallet> wallet = std::make_shared<CWallet>(node.context()->chain.get(), "", CreateMockableWalletDatabase());
213195
wallet->LoadWallet();
214196
LOCK(wallet->cs_wallet);
215197
wallet->SetWalletFlag(WALLET_FLAG_DESCRIPTORS);
216-
wallet->SetupDescriptorScriptPubKeyMans();
198+
if (watch_only) {
199+
wallet->SetWalletFlag(WALLET_FLAG_DISABLE_PRIVATE_KEYS);
200+
} else {
201+
wallet->SetupDescriptorScriptPubKeyMans();
202+
}
217203

218204
// Add the coinbase key
219205
FlatSigningProvider provider;
220206
std::string error;
221-
auto descs = Parse("combo(" + EncodeSecret(test.coinbaseKey) + ")", provider, error, /* require_checksum=*/ false);
207+
std::string key_str;
208+
if (watch_only) {
209+
key_str = HexStr(test.coinbaseKey.GetPubKey());
210+
} else {
211+
key_str = EncodeSecret(test.coinbaseKey);
212+
}
213+
auto descs = Parse("combo(" + key_str + ")", provider, error, /* require_checksum=*/ false);
222214
assert(!descs.empty());
223215
assert(descs.size() == 1);
224216
auto& desc = descs.at(0);
@@ -397,7 +389,7 @@ void TestGUI(interfaces::Node& node, const std::shared_ptr<CWallet>& wallet)
397389

398390
void TestGUIWatchOnly(interfaces::Node& node, TestChain100Setup& test)
399391
{
400-
const std::shared_ptr<CWallet>& wallet = SetupLegacyWatchOnlyWallet(node, test);
392+
const std::shared_ptr<CWallet>& wallet = SetupDescriptorsWallet(node, test, /*watch_only=*/true);
401393

402394
// Create widgets and init models
403395
std::unique_ptr<const PlatformStyle> platformStyle(PlatformStyle::instantiate("other"));
@@ -409,7 +401,7 @@ void TestGUIWatchOnly(interfaces::Node& node, TestChain100Setup& test)
409401
// Update walletModel cached balance which will trigger an update for the 'labelBalance' QLabel.
410402
walletModel.pollBalanceChanged();
411403
// Check balance in send dialog
412-
CompareBalance(walletModel, walletModel.wallet().getBalances().watch_only_balance,
404+
CompareBalance(walletModel, walletModel.wallet().getBalances().balance,
413405
sendCoinsDialog.findChild<QLabel*>("labelBalance"));
414406

415407
// Set change address

0 commit comments

Comments
 (0)