Files
ObsidianDragon/src/resources/embedded_resources.h
dan_s 4a841fd032 daemon version check, idle mining control, bootstrap mirror, import key paste, and cleanup
- Add startup binary version checking for dragonxd/xmrig
- Display daemon version in UI
- Add idle mining thread count adjustment
- Add bootstrap mirror option (bootstrap2.dragonx.is) in setup wizard
- Add paste button to import private key dialog with address validation
- Add z-address generation UI feedback (loading indicator)
- Add option to delete blockchain data while preserving wallet.dat
- Add font scale slider hotkey tooltip (Ctrl+Plus/Ctrl+Minus)
- Fix Windows RPC auth: trim \r from config values, add .cookie fallback
- Fix connection status message during block index loading
- Improve application shutdown to prevent lingering background process
2026-03-17 14:57:12 -05:00

90 lines
2.7 KiB
C++

#pragma once
#include <string>
#include <cstdint>
namespace dragonx {
namespace resources {
// Embedded resource data (generated at build time)
struct EmbeddedResource {
const uint8_t* data;
size_t size;
const char* filename;
};
// Check if embedded resources are available
bool hasEmbeddedResources();
// Get embedded resource by name
// Returns nullptr if not found or not embedded
const EmbeddedResource* getEmbeddedResource(const std::string& name);
// Extract all embedded resources to appropriate locations
// Returns true if all resources extracted successfully
bool extractEmbeddedResources();
// Check if params need to be extracted (not already present)
bool needsParamsExtraction();
// Get the params directory path
std::string getParamsDirectory();
// Resource names
constexpr const char* RESOURCE_SAPLING_SPEND = "sapling-spend.params";
constexpr const char* RESOURCE_SAPLING_OUTPUT = "sapling-output.params";
constexpr const char* RESOURCE_ASMAP = "asmap.dat";
constexpr const char* RESOURCE_DRAGONXD = "dragonxd.exe";
constexpr const char* RESOURCE_DRAGONX_CLI = "dragonx-cli.exe";
constexpr const char* RESOURCE_DRAGONX_TX = "dragonx-tx.exe";
constexpr const char* RESOURCE_XMRIG = "xmrig.exe";
constexpr const char* RESOURCE_DARK_GRADIENT = "dark_gradient.png";
constexpr const char* RESOURCE_LOGO = "logo_ObsidianDragon_dark.png";
// Embedded theme overlay info (for iterating bundled themes)
struct EmbeddedTheme {
const uint8_t* data;
size_t size;
const char* filename; // e.g. "dark.toml"
};
// Get array of embedded overlay themes (nullptr-terminated)
const EmbeddedTheme* getEmbeddedThemes();
// Extract bundled overlay themes to the given directory
// Returns number of themes extracted
int extractBundledThemes(const std::string& destDir);
// Update stale bundled theme files in the given directory.
// Compares on-disk file size to embedded size; overwrites on mismatch.
// Returns number of themes updated.
int updateBundledThemes(const std::string& dir);
// Check if daemon needs to be extracted
bool needsDaemonExtraction();
// Get daemon binary directory (<exe_dir>/dragonx/)
std::string getDaemonDirectory();
// Check if daemon is available (embedded or in app directory)
bool hasDaemonAvailable();
// Get daemon executable path (extracts if needed)
std::string getDaemonPath();
// Check if xmrig needs to be extracted
bool needsXmrigExtraction();
// Check if xmrig is available (embedded or in app directory)
bool hasXmrigAvailable();
// Force re-extract xmrig binary from embedded resources
// (bypasses exists-check; use when Defender deletes the file)
bool forceExtractXmrig();
// Get xmrig executable path (extracts if needed)
std::string getXmrigPath();
} // namespace resources
} // namespace dragonx