refactor(audit): batch 2 — remove dead scaffolding from the shipping binary
Two dead-code removals surfaced by the audit; no runtime behavior change.
1. Delete the lite-lifecycle "readiness" scaffold (~1,586 lines). The pure
dry-run evaluateLiteWalletServerLifecycleReadiness (whose own status text
says "wallet lifecycle execution is still disabled in this scaffold") had
zero callers; executeLiteWalletServerSelectionUi had zero callers; and
executeLiteWalletLifecycleUiRequest's only caller was a fallback in
settings_page reached only when app->liteWallet() is null. Deleted
lite_wallet_server_lifecycle_readiness.{h,cpp} and the readiness /
UI-execution machinery + enums + translation tables from both adapters,
keeping the genuinely-live helpers (liteConnectionSettingsFromAppSettings,
applyLiteConnectionSettingsToAppSettings, redactLiteServerSelectionValue,
and the LiteWalletLifecycleUiExecutionInput DTO the live create/open/
restore path still uses). The null-backend fallback now sets a plain
"Lite wallet backend unavailable" status. This is exactly the
readiness/scaffold pattern CLAUDE.md forbids regrowing.
2. Split the HushChat fixture/capture-manifest/seed-projection tooling
(~2,050 lines, incl. the libsodium seed-projection) out of
chat_protocol.cpp (1854 -> 284) and chat_protocol.h (586 -> 105) into a
new chat_fixture_tooling.{h,cpp} compiled ONLY into the HushChatFixtureCheck
dev tool — never into the app, lite, or test binaries (verified via nm).
The app keeps only the runtime slice (memo parsing + tx metadata
extraction) that network_refresh_service actually calls. Also moved the
decrypt-preflight/hex helpers, which likewise had no runtime caller.
Note: the HushChat split is on gated-off experimental code and should be
coordinated with the pending dormant-HushChat-content handling (commit
af06b8b) before the lite PR — done here as a pure mechanical split, no redesign.
Full-node + Lite + HushChatFixtureCheck build clean; ctest 1/1; hygiene clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,8 +2,6 @@
|
||||
|
||||
#include <algorithm>
|
||||
#include <cctype>
|
||||
#include <sstream>
|
||||
#include <utility>
|
||||
|
||||
namespace dragonx {
|
||||
namespace wallet {
|
||||
@@ -46,146 +44,6 @@ config::Settings::LiteServerSelectionPreferenceMode settingsModeFromWallet(
|
||||
return config::Settings::LiteServerSelectionPreferenceMode::Sticky;
|
||||
}
|
||||
|
||||
void addIssue(std::vector<LiteWalletServerSelectionUiExecutionIssueInfo>& issues,
|
||||
LiteWalletServerSelectionUiExecutionIssue issue,
|
||||
std::string message)
|
||||
{
|
||||
issues.push_back(LiteWalletServerSelectionUiExecutionIssueInfo{issue, std::move(message)});
|
||||
}
|
||||
|
||||
LiteWalletServerSelectionUiExecutionStatus statusFromLifecycle(
|
||||
LiteWalletServerLifecycleReadinessStatus status)
|
||||
{
|
||||
switch (status) {
|
||||
case LiteWalletServerLifecycleReadinessStatus::ReadyForFutureLifecycle:
|
||||
return LiteWalletServerSelectionUiExecutionStatus::ReadyForFutureLifecycle;
|
||||
case LiteWalletServerLifecycleReadinessStatus::WaitingForLiteBuild:
|
||||
return LiteWalletServerSelectionUiExecutionStatus::WaitingForLiteBuild;
|
||||
case LiteWalletServerLifecycleReadinessStatus::WaitingForBackendCapability:
|
||||
return LiteWalletServerSelectionUiExecutionStatus::WaitingForBackendCapability;
|
||||
case LiteWalletServerLifecycleReadinessStatus::WaitingForPersistenceIntent:
|
||||
return LiteWalletServerSelectionUiExecutionStatus::WaitingForSettings;
|
||||
case LiteWalletServerLifecycleReadinessStatus::WaitingForServerSelection:
|
||||
return LiteWalletServerSelectionUiExecutionStatus::WaitingForServerSelection;
|
||||
case LiteWalletServerLifecycleReadinessStatus::WaitingForDisplayStatus:
|
||||
return LiteWalletServerSelectionUiExecutionStatus::WaitingForDisplayStatus;
|
||||
case LiteWalletServerLifecycleReadinessStatus::WaitingForLifecycleUi:
|
||||
return LiteWalletServerSelectionUiExecutionStatus::WaitingForLifecycleUi;
|
||||
case LiteWalletServerLifecycleReadinessStatus::WaitingForPrivateDataRedaction:
|
||||
return LiteWalletServerSelectionUiExecutionStatus::WaitingForPrivateDataRedaction;
|
||||
case LiteWalletServerLifecycleReadinessStatus::WaitingForSyncPlannerFeed:
|
||||
return LiteWalletServerSelectionUiExecutionStatus::WaitingForSyncPlannerFeed;
|
||||
case LiteWalletServerLifecycleReadinessStatus::RuntimeExecutionDisabled:
|
||||
return LiteWalletServerSelectionUiExecutionStatus::RuntimeExecutionDisabled;
|
||||
}
|
||||
return LiteWalletServerSelectionUiExecutionStatus::WaitingForSettings;
|
||||
}
|
||||
|
||||
LiteWalletServerSelectionUiExecutionIssue issueFromLifecycle(
|
||||
LiteWalletServerLifecycleReadinessIssue issue)
|
||||
{
|
||||
switch (issue) {
|
||||
case LiteWalletServerLifecycleReadinessIssue::FullNodeBuild:
|
||||
return LiteWalletServerSelectionUiExecutionIssue::FullNodeBuild;
|
||||
case LiteWalletServerLifecycleReadinessIssue::LiteBackendCapabilityMissing:
|
||||
return LiteWalletServerSelectionUiExecutionIssue::LiteBackendCapabilityMissing;
|
||||
case LiteWalletServerLifecycleReadinessIssue::PersistedSettingsNotLoaded:
|
||||
case LiteWalletServerLifecycleReadinessIssue::PersistedServerSelectionIntentMissing:
|
||||
return LiteWalletServerSelectionUiExecutionIssue::SettingsNotLoaded;
|
||||
case LiteWalletServerLifecycleReadinessIssue::ServerSelectionMissing:
|
||||
return LiteWalletServerSelectionUiExecutionIssue::ServerSelectionMissing;
|
||||
case LiteWalletServerLifecycleReadinessIssue::ServerPersistenceOwnerMissing:
|
||||
return LiteWalletServerSelectionUiExecutionIssue::ServerPersistenceOwnerMissing;
|
||||
case LiteWalletServerLifecycleReadinessIssue::SelectedServerDisplayMissing:
|
||||
return LiteWalletServerSelectionUiExecutionIssue::SelectedServerDisplayMissing;
|
||||
case LiteWalletServerLifecycleReadinessIssue::LifecycleUiOwnerMissing:
|
||||
case LiteWalletServerLifecycleReadinessIssue::LifecycleOperationUnconfirmed:
|
||||
case LiteWalletServerLifecycleReadinessIssue::OpenWalletPathMissing:
|
||||
case LiteWalletServerLifecycleReadinessIssue::RestoreSeedMissing:
|
||||
return LiteWalletServerSelectionUiExecutionIssue::LifecycleUiOwnerMissing;
|
||||
case LiteWalletServerLifecycleReadinessIssue::PrivateDataRedactionMissing:
|
||||
return LiteWalletServerSelectionUiExecutionIssue::PrivateDataRedactionMissing;
|
||||
case LiteWalletServerLifecycleReadinessIssue::SyncPlannerFeedMissing:
|
||||
return LiteWalletServerSelectionUiExecutionIssue::SyncPlannerFeedMissing;
|
||||
case LiteWalletServerLifecycleReadinessIssue::RealLifecycleExecutionRequested:
|
||||
return LiteWalletServerSelectionUiExecutionIssue::WalletLifecycleExecutionRequested;
|
||||
}
|
||||
return LiteWalletServerSelectionUiExecutionIssue::SettingsNotLoaded;
|
||||
}
|
||||
|
||||
void copyLifecycleIssues(LiteWalletServerSelectionUiExecutionResult& result)
|
||||
{
|
||||
for (const auto& issue : result.lifecycleReadiness.issues) {
|
||||
addIssue(result.issues, issueFromLifecycle(issue.issue), issue.message);
|
||||
}
|
||||
}
|
||||
|
||||
LiteWalletServerSelectionUiExecutionResult stoppedResult(
|
||||
LiteWalletServerSelectionUiExecutionResult result,
|
||||
LiteWalletServerSelectionUiExecutionStatus status,
|
||||
LiteWalletServerSelectionUiExecutionIssue issue,
|
||||
const std::string& message)
|
||||
{
|
||||
result.status = status;
|
||||
result.error = message;
|
||||
result.ok = false;
|
||||
addIssue(result.issues, issue, message);
|
||||
return result;
|
||||
}
|
||||
|
||||
std::string buildDiagnosticSummary(const LiteWalletServerSelectionUiExecutionResult& result)
|
||||
{
|
||||
std::ostringstream out;
|
||||
out << "mode=" << liteServerSelectionModeName(result.connectionSettings.selectionMode)
|
||||
<< ";server=" << result.selectedServerUrlRedacted
|
||||
<< ";settings_written=" << (result.settingsWritten ? "true" : "false")
|
||||
<< ";network=false;bridge=false;lifecycle=false;sync=false;wallet_state=false";
|
||||
return out.str();
|
||||
}
|
||||
|
||||
LiteConnectionSettings settingsWithIntent(const LiteConnectionSettings& current,
|
||||
const LiteWalletServerSelectionUiIntent& intent)
|
||||
{
|
||||
LiteConnectionSettings settings = current;
|
||||
if (!intent.selectedServerIntentProvided) return settings;
|
||||
|
||||
settings.selectionMode = intent.selectionMode;
|
||||
if (!intent.chainName.empty()) settings.chainName = trimCopy(intent.chainName);
|
||||
if (intent.replaceServers) settings.servers = intent.servers;
|
||||
|
||||
switch (intent.selectionMode) {
|
||||
case LiteServerSelectionMode::Sticky:
|
||||
settings.stickyServerUrl = trimCopy(intent.selectedServerUrl);
|
||||
break;
|
||||
case LiteServerSelectionMode::Random:
|
||||
settings.randomSelectionSeed = intent.randomSelectionSeed;
|
||||
break;
|
||||
}
|
||||
return settings;
|
||||
}
|
||||
|
||||
LiteWalletServerLifecycleReadinessInput makeLifecycleInput(
|
||||
const LiteWalletServerSelectionUiExecutionInput& input,
|
||||
const LiteConnectionSettings& connectionSettings)
|
||||
{
|
||||
LiteWalletServerLifecycleReadinessInput lifecycle;
|
||||
lifecycle.capabilities = input.capabilities;
|
||||
lifecycle.settings = connectionSettings;
|
||||
lifecycle.operation = input.operation;
|
||||
lifecycle.persistence.settingsLoaded = input.persistence.settingsLoaded;
|
||||
lifecycle.persistence.havePersistedSelectionIntent =
|
||||
input.persistence.havePersistedSelectionIntent || input.intent.selectedServerIntentProvided;
|
||||
lifecycle.persistence.persistSelectedServer = input.persistence.persistSelectedServer;
|
||||
lifecycle.persistence.persistenceOwnerReady = input.persistence.persistenceOwnerReady;
|
||||
lifecycle.ui = input.ui;
|
||||
lifecycle.ui.realLifecycleExecutionRequested =
|
||||
lifecycle.ui.realLifecycleExecutionRequested || input.walletLifecycleExecutionRequested;
|
||||
lifecycle.createRequest = input.createRequest;
|
||||
lifecycle.openRequest = input.openRequest;
|
||||
lifecycle.restoreRequest = input.restoreRequest;
|
||||
return lifecycle;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
LiteConnectionSettings liteConnectionSettingsFromAppSettings(const config::Settings& settings)
|
||||
@@ -229,82 +87,6 @@ void applyLiteConnectionSettingsToAppSettings(config::Settings& settings,
|
||||
settings.setLiteServers(servers);
|
||||
}
|
||||
|
||||
const char* liteWalletServerSelectionUiExecutionStatusName(
|
||||
LiteWalletServerSelectionUiExecutionStatus status)
|
||||
{
|
||||
switch (status) {
|
||||
case LiteWalletServerSelectionUiExecutionStatus::ReadyForFutureLifecycle:
|
||||
return "ReadyForFutureLifecycle";
|
||||
case LiteWalletServerSelectionUiExecutionStatus::WaitingForLiteBuild:
|
||||
return "WaitingForLiteBuild";
|
||||
case LiteWalletServerSelectionUiExecutionStatus::WaitingForBackendCapability:
|
||||
return "WaitingForBackendCapability";
|
||||
case LiteWalletServerSelectionUiExecutionStatus::WaitingForSettings:
|
||||
return "WaitingForSettings";
|
||||
case LiteWalletServerSelectionUiExecutionStatus::WaitingForServerSelection:
|
||||
return "WaitingForServerSelection";
|
||||
case LiteWalletServerSelectionUiExecutionStatus::WaitingForPersistenceOwner:
|
||||
return "WaitingForPersistenceOwner";
|
||||
case LiteWalletServerSelectionUiExecutionStatus::WaitingForDisplayStatus:
|
||||
return "WaitingForDisplayStatus";
|
||||
case LiteWalletServerSelectionUiExecutionStatus::WaitingForLifecycleUi:
|
||||
return "WaitingForLifecycleUi";
|
||||
case LiteWalletServerSelectionUiExecutionStatus::WaitingForPrivateDataRedaction:
|
||||
return "WaitingForPrivateDataRedaction";
|
||||
case LiteWalletServerSelectionUiExecutionStatus::WaitingForSyncPlannerFeed:
|
||||
return "WaitingForSyncPlannerFeed";
|
||||
case LiteWalletServerSelectionUiExecutionStatus::SettingsSaveFailed:
|
||||
return "SettingsSaveFailed";
|
||||
case LiteWalletServerSelectionUiExecutionStatus::RuntimeExecutionDisabled:
|
||||
return "RuntimeExecutionDisabled";
|
||||
}
|
||||
return "WaitingForSettings";
|
||||
}
|
||||
|
||||
const char* liteWalletServerSelectionUiExecutionIssueName(
|
||||
LiteWalletServerSelectionUiExecutionIssue issue)
|
||||
{
|
||||
switch (issue) {
|
||||
case LiteWalletServerSelectionUiExecutionIssue::FullNodeBuild:
|
||||
return "FullNodeBuild";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::LiteBackendCapabilityMissing:
|
||||
return "LiteBackendCapabilityMissing";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::SettingsNotLoaded:
|
||||
return "SettingsNotLoaded";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::ServerSelectionMissing:
|
||||
return "ServerSelectionMissing";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::ServerPersistenceOwnerMissing:
|
||||
return "ServerPersistenceOwnerMissing";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::SelectedServerDisplayMissing:
|
||||
return "SelectedServerDisplayMissing";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::LifecycleUiOwnerMissing:
|
||||
return "LifecycleUiOwnerMissing";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::PrivateDataRedactionMissing:
|
||||
return "PrivateDataRedactionMissing";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::SyncPlannerFeedMissing:
|
||||
return "SyncPlannerFeedMissing";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::SettingsSaveFailed:
|
||||
return "SettingsSaveFailed";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::ServerConnectivityCheckRequested:
|
||||
return "ServerConnectivityCheckRequested";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::WalletLifecycleExecutionRequested:
|
||||
return "WalletLifecycleExecutionRequested";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::SyncRequested:
|
||||
return "SyncRequested";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::SyncStatusPollingRequested:
|
||||
return "SyncStatusPollingRequested";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::WorkerQueueRequested:
|
||||
return "WorkerQueueRequested";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::WalletStateMutationRequested:
|
||||
return "WalletStateMutationRequested";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::WalletFilePersistenceRequested:
|
||||
return "WalletFilePersistenceRequested";
|
||||
case LiteWalletServerSelectionUiExecutionIssue::SendImportExportRequested:
|
||||
return "SendImportExportRequested";
|
||||
}
|
||||
return "SettingsNotLoaded";
|
||||
}
|
||||
|
||||
std::string redactLiteServerSelectionValue(const std::string& value)
|
||||
{
|
||||
const std::string trimmed = trimCopy(value);
|
||||
@@ -314,138 +96,5 @@ std::string redactLiteServerSelectionValue(const std::string& value)
|
||||
return trimmed.substr(0, scheme + 3) + "<redacted>";
|
||||
}
|
||||
|
||||
LiteWalletServerSelectionUiExecutionResult executeLiteWalletServerSelectionUi(
|
||||
config::Settings& settings,
|
||||
const LiteWalletServerSelectionUiExecutionInput& input)
|
||||
{
|
||||
LiteWalletServerSelectionUiExecutionResult result;
|
||||
|
||||
auto stopForRuntime = [&](LiteWalletServerSelectionUiExecutionIssue issue,
|
||||
const std::string& message) {
|
||||
return stoppedResult(std::move(result),
|
||||
LiteWalletServerSelectionUiExecutionStatus::RuntimeExecutionDisabled,
|
||||
issue,
|
||||
message);
|
||||
};
|
||||
|
||||
if (input.serverConnectivityCheckRequested) {
|
||||
return stopForRuntime(LiteWalletServerSelectionUiExecutionIssue::ServerConnectivityCheckRequested,
|
||||
"lite server selection settings adapter cannot check server connectivity");
|
||||
}
|
||||
if (input.walletExistsCheckRequested) {
|
||||
return stopForRuntime(LiteWalletServerSelectionUiExecutionIssue::ServerConnectivityCheckRequested,
|
||||
"lite server selection settings adapter cannot check wallet existence");
|
||||
}
|
||||
if (input.walletLifecycleExecutionRequested || input.ui.realLifecycleExecutionRequested) {
|
||||
return stopForRuntime(LiteWalletServerSelectionUiExecutionIssue::WalletLifecycleExecutionRequested,
|
||||
"lite server selection settings adapter cannot execute wallet lifecycle actions");
|
||||
}
|
||||
if (input.syncStartRequested) {
|
||||
return stopForRuntime(LiteWalletServerSelectionUiExecutionIssue::SyncRequested,
|
||||
"lite server selection settings adapter cannot start sync");
|
||||
}
|
||||
if (input.syncStatusPollingRequested) {
|
||||
return stopForRuntime(LiteWalletServerSelectionUiExecutionIssue::SyncStatusPollingRequested,
|
||||
"lite server selection settings adapter cannot poll syncstatus");
|
||||
}
|
||||
if (input.workerQueueEnqueueRequested) {
|
||||
return stopForRuntime(LiteWalletServerSelectionUiExecutionIssue::WorkerQueueRequested,
|
||||
"lite server selection settings adapter cannot enqueue wallet workers");
|
||||
}
|
||||
if (input.walletStateMutationRequested) {
|
||||
return stopForRuntime(LiteWalletServerSelectionUiExecutionIssue::WalletStateMutationRequested,
|
||||
"lite server selection settings adapter cannot mutate WalletState");
|
||||
}
|
||||
if (input.walletFilePersistenceRequested) {
|
||||
return stopForRuntime(LiteWalletServerSelectionUiExecutionIssue::WalletFilePersistenceRequested,
|
||||
"lite server selection settings adapter cannot persist wallet files");
|
||||
}
|
||||
if (input.sendImportExportExecutionRequested) {
|
||||
return stopForRuntime(LiteWalletServerSelectionUiExecutionIssue::SendImportExportRequested,
|
||||
"lite server selection settings adapter cannot execute send/import/export flows");
|
||||
}
|
||||
|
||||
if (!input.persistence.settingsLoaded) {
|
||||
return stoppedResult(std::move(result),
|
||||
LiteWalletServerSelectionUiExecutionStatus::WaitingForSettings,
|
||||
LiteWalletServerSelectionUiExecutionIssue::SettingsNotLoaded,
|
||||
"lite server settings are not loaded");
|
||||
}
|
||||
|
||||
result.connectionSettings = settingsWithIntent(
|
||||
liteConnectionSettingsFromAppSettings(settings), input.intent);
|
||||
if (input.intent.selectedServerIntentProvided &&
|
||||
input.intent.selectionMode == LiteServerSelectionMode::Sticky &&
|
||||
!isLiteServerUrlUsable(trimCopy(input.intent.selectedServerUrl))) {
|
||||
result.selectedServerUrlRedacted = redactLiteServerSelectionValue(input.intent.selectedServerUrl);
|
||||
result.selectedServerRedacted = true;
|
||||
return stoppedResult(std::move(result),
|
||||
LiteWalletServerSelectionUiExecutionStatus::WaitingForServerSelection,
|
||||
LiteWalletServerSelectionUiExecutionIssue::ServerSelectionMissing,
|
||||
"lite server selection URL is not usable");
|
||||
}
|
||||
result.selectedServer = selectLiteServer(result.connectionSettings);
|
||||
result.selectedServerUrlRedacted = result.selectedServer.ok
|
||||
? redactLiteServerSelectionValue(result.selectedServer.server.url)
|
||||
: redactLiteServerSelectionValue(result.connectionSettings.stickyServerUrl);
|
||||
result.selectedServerRedacted = true;
|
||||
|
||||
if (!result.selectedServer.ok) {
|
||||
return stoppedResult(std::move(result),
|
||||
LiteWalletServerSelectionUiExecutionStatus::WaitingForServerSelection,
|
||||
LiteWalletServerSelectionUiExecutionIssue::ServerSelectionMissing,
|
||||
result.selectedServer.error.empty()
|
||||
? "lite server selection is missing"
|
||||
: result.selectedServer.error);
|
||||
}
|
||||
result.selectedServerIntentAccepted = true;
|
||||
|
||||
if ((input.persistence.persistSelectedServer || input.persistence.writeSettings) &&
|
||||
!input.persistence.persistenceOwnerReady) {
|
||||
return stoppedResult(std::move(result),
|
||||
LiteWalletServerSelectionUiExecutionStatus::WaitingForPersistenceOwner,
|
||||
LiteWalletServerSelectionUiExecutionIssue::ServerPersistenceOwnerMissing,
|
||||
"lite server settings persistence owner is not ready");
|
||||
}
|
||||
result.settingsPersistenceAccepted = true;
|
||||
|
||||
if (input.persistence.persistSelectedServer || input.persistence.writeSettings) {
|
||||
applyLiteConnectionSettingsToAppSettings(settings, result.connectionSettings);
|
||||
settings.setLitePersistSelectedServer(input.persistence.persistSelectedServer);
|
||||
result.settingsMutated = true;
|
||||
}
|
||||
|
||||
if (input.persistence.writeSettings) {
|
||||
result.noSettingsPersistence = false;
|
||||
const bool saved = input.persistence.settingsSavePath.empty()
|
||||
? settings.save()
|
||||
: settings.save(input.persistence.settingsSavePath);
|
||||
if (!saved) {
|
||||
return stoppedResult(std::move(result),
|
||||
LiteWalletServerSelectionUiExecutionStatus::SettingsSaveFailed,
|
||||
LiteWalletServerSelectionUiExecutionIssue::SettingsSaveFailed,
|
||||
"failed to save lite server settings");
|
||||
}
|
||||
result.settingsWritten = true;
|
||||
}
|
||||
|
||||
result.lifecycleInput = makeLifecycleInput(input, result.connectionSettings);
|
||||
result.lifecycleReadiness = evaluateLiteWalletServerLifecycleReadiness(result.lifecycleInput);
|
||||
result.lifecycleReadinessAccepted = result.lifecycleReadiness.ok;
|
||||
result.lifecycleReportCouldFeedSyncPlanners = result.lifecycleReadiness.lifecycleReportCouldFeedSyncPlanners;
|
||||
result.status = statusFromLifecycle(result.lifecycleReadiness.status);
|
||||
copyLifecycleIssues(result);
|
||||
result.diagnosticSummary = buildDiagnosticSummary(result);
|
||||
|
||||
if (input.requireLifecycleReadiness && !result.lifecycleReadiness.ok) {
|
||||
result.ok = false;
|
||||
result.error = result.lifecycleReadiness.error;
|
||||
return result;
|
||||
}
|
||||
|
||||
result.ok = true;
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace wallet
|
||||
} // namespace dragonx
|
||||
} // namespace dragonx
|
||||
|
||||
Reference in New Issue
Block a user