This meta-issue tracks the actions required to have full wallet load/create/unload at runtime.
- Add locking to the global
vpwallets
to ensure no concurrency races when adding to the vector. This is sufficient thread safety forloadwallet
andcreatewallet
, but notunloadwallet
(#13017 and #13028). - Add
loadwallet
RPC. Initially, this won’t update the available wallets in the GUI (#10740) - Hook up the
loadwallet
RPC toCClientUIInterface::LoadWallet()
so newly loaded wallets are available in the GUI (#13097) - Add
createwallet
RPC. Initially, this won’t update the available wallets in the GUI (#13058) - Update
vpwallets
to be shared pointers (or similar) so that wallets can be freed safely (#13063). - Add
unloadwallet
RPC. Initially, this won’t update the available wallets in the GUI (#13111) - Hook up the
unloadwallet
RPC to a newCClientUIInterface::UnloadWallet()
function so unloaded wallets are removed from the GUI (#13111) - Add an “open wallet” command in bitcoin-qt (#15153 and #15204)
- Add a “close wallet” command in bitcoin-qt (#15195)
- Add a “create wallet” command in bitcoin-qt (#15450)