diff --git a/src/interfaces/chain.h b/src/interfaces/chain.h index 6194d920fdf..e81d1888ac4 100644 --- a/src/interfaces/chain.h +++ b/src/interfaces/chain.h @@ -363,6 +363,9 @@ public: virtual bool updateRwSetting(const std::string& name, const SettingsUpdate& update_function) = 0; //! Replace a setting in /settings.json with a new value. + //! Null can be passed to erase the setting. + //! This method provides a simpler alternative to updateRwSetting when + //! atomically reading and updating the setting is not required. virtual bool overwriteRwSetting(const std::string& name, common::SettingsValue value, SettingsAction action = SettingsAction::WRITE) = 0; //! Delete a given setting in /settings.json. diff --git a/src/node/interfaces.cpp b/src/node/interfaces.cpp index 8e98434cb5a..f6d85f2b72a 100644 --- a/src/node/interfaces.cpp +++ b/src/node/interfaces.cpp @@ -834,7 +834,6 @@ public: } bool overwriteRwSetting(const std::string& name, common::SettingsValue value, interfaces::SettingsAction action) override { - if (value.isNull()) return deleteRwSettings(name, action); return updateRwSetting(name, [&](common::SettingsValue& settings) { settings = std::move(value); return action;