From f30fdc5ed162fe6c29a8897c098d456e7586e4ec Mon Sep 17 00:00:00 2001 From: DanS Date: Wed, 2 Sep 2026 04:15:29 -0500 Subject: [PATCH] feat(lite): add lite6 + lite7 to the default lite-wallet server list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ship https://lite6.dragonx.is and https://lite7.dragonx.is as default lightwalletd servers in both the Settings defaults and the connection-service fallback list. Existing installs (whose saved server list predates these) pick them up via a load-time merge that appends any missing default server — safe because servers are hidden, never deleted, so a removed server isn't resurrected. Consolidates the Settings default list into a single Settings::defaultLiteServers() source of truth. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/config/settings.cpp | 24 ++++++++++++++++++++++++ src/config/settings.h | 12 ++++-------- src/wallet/lite_connection_service.cpp | 4 +++- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/config/settings.cpp b/src/config/settings.cpp index 2274f28..e7973c2 100644 --- a/src/config/settings.cpp +++ b/src/config/settings.cpp @@ -108,6 +108,20 @@ void loadClamped(const json& j, const char* key, T& field, T lo, T hi) } // namespace +std::vector Settings::defaultLiteServers() +{ + return { + {"https://lite.dragonx.is", "DragonX Lite", true}, + {"https://lite1.dragonx.is", "DragonX Lite 1", true}, + {"https://lite2.dragonx.is", "DragonX Lite 2", true}, + {"https://lite3.dragonx.is", "DragonX Lite 3", true}, + {"https://lite4.dragonx.is", "DragonX Lite 4", true}, + {"https://lite5.dragonx.is", "DragonX Lite 5", true}, + {"https://lite6.dragonx.is", "DragonX Lite 6", true}, + {"https://lite7.dragonx.is", "DragonX Lite 7", true} + }; +} + std::string Settings::getDefaultPath() { // Single per-platform, per-variant config dir (util::Platform::getConfigDir handles the @@ -307,6 +321,16 @@ bool Settings::load(const std::string& path) } lite_servers_.push_back(preference); } + // Surface newly-shipped default servers (e.g. lite6/lite7) on an existing + // install whose saved list predates them. Servers are hidden (see + // lite_hidden_servers_), never deleted, so appending a missing default won't + // resurrect one the user intentionally removed. + for (const auto& def : defaultLiteServers()) { + bool present = false; + for (const auto& s : lite_servers_) + if (s.url == def.url) { present = true; break; } + if (!present) lite_servers_.push_back(def); + } } if (lite.contains("rollout_override") && lite["rollout_override"].is_string()) { const auto v = lite["rollout_override"].get(); diff --git a/src/config/settings.h b/src/config/settings.h index 5b2b0a9..e9bdd88 100644 --- a/src/config/settings.h +++ b/src/config/settings.h @@ -439,6 +439,9 @@ public: void setLitePersistSelectedServer(bool persist) { lite_persist_selected_server_ = persist; } const std::vector& getLiteServers() const { return lite_servers_; } void setLiteServers(const std::vector& servers) { lite_servers_ = servers; } + // Servers shipped as defaults. Also merged into an existing install's saved list on load + // (see Settings::load), so upgrades surface newly-added servers (e.g. lite6/lite7). + static std::vector defaultLiteServers(); // User-defined portfolio entries (Market tab). "All funds" is implicit, not stored here. const std::vector& getPortfolioEntries() const { return portfolio_entries_; } @@ -655,14 +658,7 @@ private: bool lite_persist_selected_server_ = true; std::string lite_rollout_override_ = "auto"; // auto|force_on|force_off std::string lite_install_id_; // random local-only id; rollout-bucket source - std::vector lite_servers_ = { - {"https://lite.dragonx.is", "DragonX Lite", true}, - {"https://lite1.dragonx.is", "DragonX Lite 1", true}, - {"https://lite2.dragonx.is", "DragonX Lite 2", true}, - {"https://lite3.dragonx.is", "DragonX Lite 3", true}, - {"https://lite4.dragonx.is", "DragonX Lite 4", true}, - {"https://lite5.dragonx.is", "DragonX Lite 5", true} - }; + std::vector lite_servers_ = defaultLiteServers(); std::set lite_hidden_servers_; // server URLs hidden from the Network tab std::vector portfolio_entries_; // Market tab custom portfolio groups diff --git a/src/wallet/lite_connection_service.cpp b/src/wallet/lite_connection_service.cpp index 1c444de..3adf578 100644 --- a/src/wallet/lite_connection_service.cpp +++ b/src/wallet/lite_connection_service.cpp @@ -66,7 +66,9 @@ std::vector defaultDragonXLiteServers() {"https://lite2.dragonx.is", "DragonX Lite 2", true}, {"https://lite3.dragonx.is", "DragonX Lite 3", true}, {"https://lite4.dragonx.is", "DragonX Lite 4", true}, - {"https://lite5.dragonx.is", "DragonX Lite 5", true} + {"https://lite5.dragonx.is", "DragonX Lite 5", true}, + {"https://lite6.dragonx.is", "DragonX Lite 6", true}, + {"https://lite7.dragonx.is", "DragonX Lite 7", true} }; }