diff --git a/src/interfaces/chain.h b/src/interfaces/chain.h index 8aac48446aae08..15ec220c2afb3f 100644 --- a/src/interfaces/chain.h +++ b/src/interfaces/chain.h @@ -361,10 +361,10 @@ class Chain virtual bool updateRwSetting(const std::string& name, const SettingsUpdate& update_function) = 0; //! Replace a setting in /settings.json with a new value. - virtual bool overwriteRwSetting(const std::string& name, common::SettingsValue value, bool write = true) = 0; + virtual bool overwriteRwSetting(const std::string& name, common::SettingsValue value, SettingsAction action = SettingsAction::WRITE) = 0; //! Delete a given setting in /settings.json. - virtual bool deleteRwSettings(const std::string& name, bool write = true) = 0; + virtual bool deleteRwSettings(const std::string& name, SettingsAction action = SettingsAction::WRITE) = 0; //! Synchronously send transactionAddedToMempool notifications about all //! current mempool transactions to the specified handler and return after diff --git a/src/node/interfaces.cpp b/src/node/interfaces.cpp index 44a2cb93f20232..97d674ee06a46a 100644 --- a/src/node/interfaces.cpp +++ b/src/node/interfaces.cpp @@ -826,22 +826,22 @@ class ChainImpl : public Chain }); if (!action) return false; // Now dump value to disk if requested - return *action == interfaces::SettingsAction::SKIP_WRITE || args().WriteSettingsFile(); + return *action != interfaces::SettingsAction::WRITE || args().WriteSettingsFile(); } - bool overwriteRwSetting(const std::string& name, common::SettingsValue value, bool write) override + bool overwriteRwSetting(const std::string& name, common::SettingsValue value, interfaces::SettingsAction action) override { - if (value.isNull()) return deleteRwSettings(name, write); + if (value.isNull()) return deleteRwSettings(name, action); return updateRwSetting(name, [&](common::SettingsValue& settings) { settings = std::move(value); - return write ? interfaces::SettingsAction::WRITE : interfaces::SettingsAction::SKIP_WRITE; + return action; }); } - bool deleteRwSettings(const std::string& name, bool write) override + bool deleteRwSettings(const std::string& name, interfaces::SettingsAction action) override { args().LockSettings([&](common::Settings& settings) { settings.rw_settings.erase(name); }); - return !write || args().WriteSettingsFile(); + return action != interfaces::SettingsAction::WRITE || args().WriteSettingsFile(); } void requestMempoolTransactions(Notifications& notifications) override { diff --git a/src/wallet/load.cpp b/src/wallet/load.cpp index 1149ce0a476e32..6285cb4db82ae0 100644 --- a/src/wallet/load.cpp +++ b/src/wallet/load.cpp @@ -69,7 +69,7 @@ bool VerifyWallets(WalletContext& context) // Pass write=false because no need to write file and probably // better not to. If unnamed wallet needs to be added next startup // and the setting is empty, this code will just run again. - chain.overwriteRwSetting("wallet", std::move(wallets), /*write=*/false); + chain.overwriteRwSetting("wallet", std::move(wallets), interfaces::SettingsAction::SKIP_WRITE); } }