@@ -189,36 +189,28 @@ void SyncUpWallet(const std::shared_ptr<CWallet>& wallet, interfaces::Node& node
189
189
QVERIFY (result.last_failed_block .IsNull ());
190
190
}
191
191
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 )
211
193
{
212
194
std::shared_ptr<CWallet> wallet = std::make_shared<CWallet>(node.context ()->chain .get (), " " , CreateMockableWalletDatabase ());
213
195
wallet->LoadWallet ();
214
196
LOCK (wallet->cs_wallet );
215
197
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
+ }
217
203
218
204
// Add the coinbase key
219
205
FlatSigningProvider provider;
220
206
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 );
222
214
assert (!descs.empty ());
223
215
assert (descs.size () == 1 );
224
216
auto & desc = descs.at (0 );
@@ -397,7 +389,7 @@ void TestGUI(interfaces::Node& node, const std::shared_ptr<CWallet>& wallet)
397
389
398
390
void TestGUIWatchOnly (interfaces::Node& node, TestChain100Setup& test)
399
391
{
400
- const std::shared_ptr<CWallet>& wallet = SetupLegacyWatchOnlyWallet (node, test);
392
+ const std::shared_ptr<CWallet>& wallet = SetupDescriptorsWallet (node, test, /* watch_only= */ true );
401
393
402
394
// Create widgets and init models
403
395
std::unique_ptr<const PlatformStyle> platformStyle (PlatformStyle::instantiate (" other" ));
@@ -409,7 +401,7 @@ void TestGUIWatchOnly(interfaces::Node& node, TestChain100Setup& test)
409
401
// Update walletModel cached balance which will trigger an update for the 'labelBalance' QLabel.
410
402
walletModel.pollBalanceChanged ();
411
403
// Check balance in send dialog
412
- CompareBalance (walletModel, walletModel.wallet ().getBalances ().watch_only_balance ,
404
+ CompareBalance (walletModel, walletModel.wallet ().getBalances ().balance ,
413
405
sendCoinsDialog.findChild <QLabel*>(" labelBalance" ));
414
406
415
407
// Set change address
0 commit comments