Merge #13506: Qt: load wallet in UI after possible init aborts

3a03d2a33f Qt: load wallet in UI after possible init aborts (Jonas Schnelli)

Pull request description:

  Bug was introduced in #13063 (80b4910f7d87983f50047074c3c2397b0a5c4e92) where #13097 made possible to get "hit" by that bug. Reported by @ken2812221 (https://github.com/bitcoin/bitcoin/pull/13097#issuecomment-398445833).

  Dynamically loading a wallet informs the UI (and therefore makes the instance accessible) about the new wallet before all possible error cases where handled.

  Easy to reproduce by starting `bitcoin-qt --regtest --nowallet -usehd=0` then in the console enter `loadwallet wallet.dat`.

  This PR will make sure only correctly initialised (loaded) wallets will appear in the UI.

Tree-SHA512: 3139545e852d53b117182b579f45259c198d1c25c1a6fa4e0108f942d45f6fe2691e6bfcbbae2e18c33ad0174a520f379c17867b1eb87f950d830a5f519fec4f
This commit is contained in:
MarcoFalke 2018-06-20 10:15:01 -04:00 committed by pasta
parent 06d3d775d1
commit 5d483106f8
No known key found for this signature in database
GPG Key ID: 52527BEDABE87984

View File

@ -5323,6 +5323,8 @@ CWallet* CWallet::CreateWalletFromFile(const std::string& name, const fs::path&
} }
} }
uiInterface.LoadWallet(walletInstance);
// Register with the validation interface. It's ok to do this after rescan since we're still holding cs_main. // Register with the validation interface. It's ok to do this after rescan since we're still holding cs_main.
RegisterValidationInterface(temp_wallet.release()); RegisterValidationInterface(temp_wallet.release());