refactor(audit): batch 8 — share the post-encrypt daemon-restart block
Extract App::restartDaemonAfterEncryption(taskName, announceRestartStatus) from the two verbatim copies in encryptWalletWithPassphrase and processDeferredEncryption. The two differed only in the async task name and whether they set connection_status_ = "restarting_after_encryption" first (the immediate encrypt path does; the deferred path does not) — both parameterized. The 20x100ms settle loop, cancel/shutdown guards, and stop/startEmbeddedDaemon sequence are preserved exactly. Deliberately NOT done: the audit's "decrypt 5-deep callback pyramid" finding. On inspection the nesting is load-bearing, not gratuitous — WalletSecurityWorkflow is unsynchronized main-thread-only state, and each step's worker->MainCb bounce is what keeps its mutations on the main thread (the UI reads snapshot()/importActive() every frame); collapsing the pipeline onto one worker/async task would race the UI, and the final restart+import stage requires an AsyncTaskManager::Token that worker_->post can't supply. Left byte-for-byte intact. Full-node + Lite build clean; ctest 1/1 (incl. WalletSecurity controller tests); hygiene clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -395,6 +395,12 @@ public:
|
||||
|
||||
// Wallet encryption helpers
|
||||
void encryptWalletWithPassphrase(const std::string& passphrase);
|
||||
// Post-encrypt daemon restart: the daemon shuts itself down after
|
||||
// encryptwallet, so restart it off the main thread. Shared by the
|
||||
// immediate and deferred encryption continuations. When
|
||||
// announceRestartStatus is true, connection_status_ is updated first so
|
||||
// the loading overlay explains the restart.
|
||||
void restartDaemonAfterEncryption(const char* taskName, bool announceRestartStatus);
|
||||
void unlockWallet(const std::string& passphrase, int timeout);
|
||||
void lockWallet();
|
||||
void changePassphrase(const std::string& oldPass, const std::string& newPass);
|
||||
|
||||
Reference in New Issue
Block a user