fix: Windows identity, async address creation, mining UI, and chart artifacts
Windows identity: - Add VERSIONINFO resource (.rc) with ObsidianDragon file description - Embed application manifest for DPI awareness and shell identity - Patch libwinpthread/libpthread to remove competing VERSIONINFO - Set AppUserModelID and HWND property store to override Task Manager cache - Link patched pthread libs to eliminate "POSIX WinThreads" description Address creation (+New button): - Move z_getnewaddress/getnewaddress off UI thread to async worker - Inject new address into state immediately for instant UI selection - Trigger background refresh for balance updates Mining tab: - Add pool mining dropdown with saved URLs/workers and bookmarks - Add solo mining log panel from daemon output with chart/log toggle - Fix toggle button cursor (render after InputTextMultiline) - Auto-restart miner on pool config change - Migrate default pool URL to include stratum port Transactions: - Sort pending (0-conf) transactions to top of history - Fall back to timereceived when timestamp is missing Shutdown: - Replace blocking sleep_for calls with 100ms polling loops - Check shutting_down_ flag throughout daemon restart/bootstrap flows - Reduce daemon stop timeout from 30s to 10s Other: - Fix market chart fill artifact (single concave polygon vs per-segment quads) - Add bootstrap checksum verification state display - Rename daemon client identifier to ObsidianDragon
This commit is contained in:
@@ -512,7 +512,7 @@ std::string Bootstrap::computeSHA256(const std::string& filePath) {
|
||||
snprintf(msg, sizeof(msg), "Verifying SHA-256... %.0f%% (%s / %s)",
|
||||
pct, formatSize((double)processed).c_str(),
|
||||
formatSize((double)fileSize).c_str());
|
||||
setProgress(State::Downloading, msg, (double)processed, (double)fileSize);
|
||||
setProgress(State::Verifying, msg, (double)processed, (double)fileSize);
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
@@ -643,7 +643,7 @@ std::string Bootstrap::computeMD5(const std::string& filePath) {
|
||||
snprintf(msg, sizeof(msg), "Verifying MD5... %.0f%% (%s / %s)",
|
||||
pct, formatSize((double)processed).c_str(),
|
||||
formatSize((double)fileSize).c_str());
|
||||
setProgress(State::Downloading, msg, (double)processed, (double)fileSize);
|
||||
setProgress(State::Verifying, msg, (double)processed, (double)fileSize);
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
@@ -663,7 +663,7 @@ std::string Bootstrap::computeMD5(const std::string& filePath) {
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
bool Bootstrap::verifyChecksums(const std::string& zipPath, const std::string& baseUrl) {
|
||||
setProgress(State::Downloading, "Downloading checksums...");
|
||||
setProgress(State::Verifying, "Downloading checksums...");
|
||||
|
||||
std::string sha256Url = baseUrl + "/" + kZipName + ".sha256";
|
||||
std::string md5Url = baseUrl + "/" + kZipName + ".md5";
|
||||
@@ -684,7 +684,7 @@ bool Bootstrap::verifyChecksums(const std::string& zipPath, const std::string& b
|
||||
|
||||
// --- SHA-256 ---
|
||||
if (haveSHA256) {
|
||||
setProgress(State::Downloading, "Verifying SHA-256...");
|
||||
setProgress(State::Verifying, "Verifying SHA-256...");
|
||||
std::string expected = parseChecksumFile(sha256Content);
|
||||
std::string actual = computeSHA256(zipPath);
|
||||
|
||||
@@ -712,7 +712,7 @@ bool Bootstrap::verifyChecksums(const std::string& zipPath, const std::string& b
|
||||
|
||||
// --- MD5 ---
|
||||
if (haveMD5) {
|
||||
setProgress(State::Downloading, "Verifying MD5...");
|
||||
setProgress(State::Verifying, "Verifying MD5...");
|
||||
std::string expected = parseChecksumFile(md5Content);
|
||||
std::string actual = computeMD5(zipPath);
|
||||
|
||||
@@ -738,7 +738,7 @@ bool Bootstrap::verifyChecksums(const std::string& zipPath, const std::string& b
|
||||
DEBUG_LOGF("[Bootstrap] MD5 verified: %s\n", actual.c_str());
|
||||
}
|
||||
|
||||
setProgress(State::Downloading, "Checksums verified \xe2\x9c\x93");
|
||||
setProgress(State::Verifying, "Checksums verified \xe2\x9c\x93");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ public:
|
||||
enum class State {
|
||||
Idle,
|
||||
Downloading,
|
||||
Verifying,
|
||||
Extracting,
|
||||
Completed,
|
||||
Failed
|
||||
|
||||
Reference in New Issue
Block a user