From 84a6489c6b4d0e0a3dbd32bf1842c2d2bf3f7cbb Mon Sep 17 00:00:00 2001 From: Khushboo Mehta Date: Thu, 23 Apr 2026 03:31:09 +0200 Subject: [PATCH] adapt to logos-blockchain-module using module-builder --- flake.lock | 103 +++++++++++++++++++------------------- flake.nix | 28 ----------- src/BlockchainBackend.cpp | 35 +++++++++---- 3 files changed, 76 insertions(+), 90 deletions(-) diff --git a/flake.lock b/flake.lock index 0c47a03..b0450e9 100644 --- a/flake.lock +++ b/flake.lock @@ -28,11 +28,11 @@ ] }, "locked": { - "lastModified": 1775208008, - "narHash": "sha256-64W2mRx7zGorHSUw6QmBcVRm/YErEgpKEuwNf0ouJjo=", + "lastModified": 1776444181, + "narHash": "sha256-CajsXT9ANFl32BH7AJHR/+LP9cIu7/IGDxKkDH6GBB8=", "owner": "logos-blockchain", "repo": "logos-blockchain-module", - "rev": "a574eb61bfcf102fdf3fce74820735abde40fc1a", + "rev": "4e10aaf01adbd153bcb30be2bc6f84ff9c732978", "type": "github" }, "original": { @@ -49,17 +49,17 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1772549761, - "narHash": "sha256-NRwUEv7Uf/Tge8y4sDZ/par+iM2/ZqxFEINpiyIqUL8=", + "lastModified": 1776426251, + "narHash": "sha256-PItVsNZloFDyW0O/N0AIDImmhy/ok+T4771dcm/zXrc=", "owner": "logos-blockchain", "repo": "logos-blockchain", - "rev": "1e0fcb1c4bc92149dfab09c1c08115662d8b2c23", + "rev": "86e3e86f78bc3a7219b1f1d169f31854dbb7344b", "type": "github" }, "original": { "owner": "logos-blockchain", - "ref": "0.2.1", "repo": "logos-blockchain", + "rev": "86e3e86f78bc3a7219b1f1d169f31854dbb7344b", "type": "github" } }, @@ -230,11 +230,11 @@ ] }, "locked": { - "lastModified": 1774988975, - "narHash": "sha256-wJ7Bv3TL754bZcTL2qilI0JahiVag7fLDzw8Y6Qz0pk=", + "lastModified": 1776359718, + "narHash": "sha256-G2+MbYPictF9V9864KndteaEJzd8iUMktSzCphETabw=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "d633575677a3d19a8bf1d5ff687398dace532938", + "rev": "04b75c84b821662c9ae8f69967d4dd508e6d9e17", "type": "github" }, "original": { @@ -316,11 +316,11 @@ ] }, "locked": { - "lastModified": 1776101366, - "narHash": "sha256-HxkzOs2xv0grkNAJMBLXKDjVl8Z+z3YFn+sC4eFKy/8=", + "lastModified": 1776778717, + "narHash": "sha256-HTtNO9I++CSwd64T0jpsPn+mixeZnebFxHKE4840mPY=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "1468180b2567f4c59346bb94f74951e76341f5c5", + "rev": "f7c855b110e493c293e81f473757cf17ee772514", "type": "github" }, "original": { @@ -419,11 +419,11 @@ ] }, "locked": { - "lastModified": 1774958555, - "narHash": "sha256-9FMXR+YesH0JnR3DBv3BG1jtdTDWkPwMx+kIhuBpxZ4=", + "lastModified": 1776359718, + "narHash": "sha256-G2+MbYPictF9V9864KndteaEJzd8iUMktSzCphETabw=", "owner": "logos-co", "repo": "logos-cpp-sdk", - "rev": "38006e72400ee96a9d75e8feb102b474f80d3da5", + "rev": "04b75c84b821662c9ae8f69967d4dd508e6d9e17", "type": "github" }, "original": { @@ -599,11 +599,11 @@ "process-stats": "process-stats" }, "locked": { - "lastModified": 1774967221, - "narHash": "sha256-i/8S4ldt0ikyjWrwp428Y7a7MRCIsS4R7pED0MFM52o=", + "lastModified": 1776379599, + "narHash": "sha256-F2udDQNt9LMsvVTJ+lEh7kFGWI1WYe1xUcReJAakdLY=", "owner": "logos-co", "repo": "logos-liblogos", - "rev": "da6ba7210e5145bfa5cb40590a2ac7e5dbbfd30d", + "rev": "e96b05b657a7871be85842e559c2635eef5c31a1", "type": "github" }, "original": { @@ -793,11 +793,11 @@ ] }, "locked": { - "lastModified": 1776372591, - "narHash": "sha256-uuY3FvSbWF11DR7JO9jyMDV25fLJoxT9TpDW7l/BngM=", + "lastModified": 1776779106, + "narHash": "sha256-KVeDeO8WzS0JgjUWojooRKOljqsrgTaEAixJjrUF1BU=", "owner": "logos-co", "repo": "logos-module-builder", - "rev": "e14aaa89f9ef652daf201cfaf3d06817ac8a440e", + "rev": "4987fed5b7a9300f8c2e40f5a2a60c35d453686c", "type": "github" }, "original": { @@ -845,11 +845,11 @@ ] }, "locked": { - "lastModified": 1774633164, - "narHash": "sha256-TobXeKMS1RWYKo30ujYJNnrDVhu4U1JFdtL31yIOu8c=", + "lastModified": 1776369033, + "narHash": "sha256-ehePoUEd/u3Ng0TvCmjocXYJWWH6P61PA7tNpgV59lo=", "owner": "logos-co", "repo": "logos-module", - "rev": "8ed727449a4a6713a8c819c213b0d5d25f575580", + "rev": "194778491ef4dd36967ac40cc2fec6b8a8b1d660", "type": "github" }, "original": { @@ -2050,11 +2050,11 @@ "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1773955630, - "narHash": "sha256-KqzMoWYIVp2xMgphs7v02T/BE54RKMFxpdC2duhJKG0=", + "lastModified": 1774455309, + "narHash": "sha256-3AN7aFnArdysrbQQ2UskWzjNSFADb4hDCsnx69Fa0ng=", "owner": "logos-co", "repo": "logos-nix", - "rev": "0e9e6d66ab8eb34f59e45ed448f7dc29130feb88", + "rev": "e637a1f5e871244d1c2df1e3c52a067f2eb406f2", "type": "github" }, "original": { @@ -2094,11 +2094,11 @@ ] }, "locked": { - "lastModified": 1773965173, - "narHash": "sha256-toDnGXUthRcQm7vcEYzb2bLI7FE1tbfzH8Ie2Cnb9mk=", + "lastModified": 1775835037, + "narHash": "sha256-Cti0DhkzyLQs98BSzcHWMLtGXpa3n+R+5upfSw6vKdQ=", "owner": "logos-co", "repo": "logos-package", - "rev": "9e3730d5c0e3ec955761c05b50e3a6047ee4030b", + "rev": "ff93a0df15ceab255f27687d22d962ea2737efbe", "type": "github" }, "original": { @@ -2122,11 +2122,11 @@ ] }, "locked": { - "lastModified": 1774635434, - "narHash": "sha256-9LRXf/Wy500rNO9IhDSH+PSuadS3TguNFCbcbI4YYZU=", + "lastModified": 1776374462, + "narHash": "sha256-HMkuqSLdScAWTwXEWjhqx9Yk82GiPzPIfRaHTvjG730=", "owner": "logos-co", "repo": "logos-package-manager", - "rev": "e5c25989861f4487c3dc8c7b3bc0062bcbc3221f", + "rev": "9101875bc103214855bc6217834e22e66802ed86", "type": "github" }, "original": { @@ -2483,11 +2483,11 @@ ] }, "locked": { - "lastModified": 1776372380, - "narHash": "sha256-kleKGfcRgtIjeltogH0NCFrp5QwetlXsHJxOTllP13E=", + "lastModified": 1776431432, + "narHash": "sha256-eO1nnUS33OUkdU36I27OJ0wVcFxRFkJDVuRYT6WKzy8=", "owner": "logos-co", "repo": "logos-standalone-app", - "rev": "5e122402898c1d896cc6b72db04c6277697a2f2f", + "rev": "09461edcaa1c617f813120124655c37f803e3a17", "type": "github" }, "original": { @@ -2540,11 +2540,11 @@ ] }, "locked": { - "lastModified": 1776372308, + "lastModified": 1776431382, "narHash": "sha256-21SqqdOuHBLUGcYxGvjtC4iKp+wLGEQOKn64qLVl/+0=", "owner": "logos-co", "repo": "logos-view-module-runtime", - "rev": "5dc32e0131e9abf0a86c085119aa082d56486d9e", + "rev": "d611d697bf4ff48405d71f6ea29b8103d7969b22", "type": "github" }, "original": { @@ -2567,11 +2567,11 @@ ] }, "locked": { - "lastModified": 1773961597, - "narHash": "sha256-UEUlp3VRXBcj2YlOMTQdeW3qjyGJl2V3+GMf8IXwSWA=", + "lastModified": 1774455478, + "narHash": "sha256-S8IMfdDc+2Wwri0krLDsIUwSqmwanmvHAJWHOFo8ykk=", "owner": "logos-co", "repo": "nix-bundle-appimage", - "rev": "7343f6df1ebab357f51f23dff0af9d7e468638cb", + "rev": "2428125a4a1b34ad9119efa97edb98676283e3da", "type": "github" }, "original": { @@ -2768,11 +2768,11 @@ ] }, "locked": { - "lastModified": 1773961179, - "narHash": "sha256-bpaTvz//R8WFP5xnnDLv3a9l7unDmBwJjCewx3wCjzM=", + "lastModified": 1774455641, + "narHash": "sha256-HrVJguPxhIoZMCH+x8Wooa0tE6slUhgNOU6P89t2uQc=", "owner": "logos-co", "repo": "nix-bundle-dir", - "rev": "cd214dbf15487d80967389847ae2210468be6ebf", + "rev": "3d155cab09051703a0b02ff2de166a53c30cbca8", "type": "github" }, "original": { @@ -4246,11 +4246,11 @@ ] }, "locked": { - "lastModified": 1774455550, - "narHash": "sha256-T30DJXAMb+hezgnmlZe9qqa9LL5oolvuAdF5fIVz8A0=", + "lastModified": 1775744159, + "narHash": "sha256-hTVAnDREBQOVHML6KU3K7Ge0CRBqnFIg7uYL7qDnD8o=", "owner": "logos-co", "repo": "process-stats", - "rev": "8213ad456b4ac074a214f24fc2b378b1bdbb0234", + "rev": "33ace1270f90c89b3565e803139c0970fcd1ce8f", "type": "github" }, "original": { @@ -4301,16 +4301,17 @@ ] }, "locked": { - "lastModified": 1771556776, - "narHash": "sha256-zKprqMQDl3xVfhSSYvgru1IGXjFdxryWk+KqK0I20Xk=", + "lastModified": 1772775058, + "narHash": "sha256-i+I9RYN8kYb9/9kibkxd0avkkislD1tyWojSVgIy160=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "8b3f46b8a6d17ab46e533a5e3d5b1cc2ff228860", + "rev": "629bbb7f9d02787a54e28398b411da849246253b", "type": "github" }, "original": { "owner": "oxalica", "repo": "rust-overlay", + "rev": "629bbb7f9d02787a54e28398b411da849246253b", "type": "github" } } diff --git a/flake.nix b/flake.nix index 83b6865..382bc49 100644 --- a/flake.nix +++ b/flake.nix @@ -12,33 +12,5 @@ src = ./.; configFile = ./metadata.json; flakeInputs = inputs; - - # The blockchain module is a legacy Rust module that does not ship a - # generated *_api.h header. The logos-cpp-generator --general-only step - # produces logos_sdk.h which #include's the missing header. Create an - # empty stub so compilation succeeds — we use the raw LogosAPIClient - # interface directly instead of the generated type-safe wrappers. - preConfigure = '' - mkdir -p ./generated_code/include - - # The blockchain module is a legacy Rust module that does not ship a - # generated *_api.h header. Create a minimal stub so logos_sdk.h - # compiles — we use the raw LogosAPIClient interface directly. - for dir in ./generated_code/include ./generated_code; do - if [ ! -f "$dir/liblogos_blockchain_module_api.h" ]; then - cat > "$dir/liblogos_blockchain_module_api.h" << 'STUB' - #pragma once - #include "logos_api.h" - class LiblogosBlockchainModule { - public: - explicit LiblogosBlockchainModule(LogosAPI*) {} - }; - STUB - fi - if [ ! -f "$dir/liblogos_blockchain_module_api.cpp" ]; then - echo "// Stub" > "$dir/liblogos_blockchain_module_api.cpp" - fi - done - ''; }; } diff --git a/src/BlockchainBackend.cpp b/src/BlockchainBackend.cpp index c4fb101..8a9b065 100644 --- a/src/BlockchainBackend.cpp +++ b/src/BlockchainBackend.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -18,6 +19,13 @@ const QString BlockchainBackend::BLOCKCHAIN_MODULE_NAME = QStringLiteral("liblogos_blockchain_module"); +static QString toLocalPath(const QString& pathInput) +{ + if (pathInput.trimmed().isEmpty()) + return pathInput; + return QUrl::fromUserInput(pathInput).toLocalFile(); +} + BlockchainBackend::BlockchainBackend(LogosAPI* logosAPI, QObject* parent) : BlockchainBackendSimpleSource(parent) , m_logosAPI(logosAPI) @@ -39,19 +47,31 @@ BlockchainBackend::BlockchainBackend(LogosAPI* logosAPI, QObject* parent) s.value("deploymentConfigPath").toString(); if (!envConfigPath.isEmpty()) - setUserConfig(envConfigPath); + setUserConfig(toLocalPath(envConfigPath)); else if (!savedUserConfig.isEmpty()) - setUserConfig(savedUserConfig); + setUserConfig(toLocalPath(savedUserConfig)); if (!savedDeploymentConfig.isEmpty()) - setDeploymentConfig(savedDeploymentConfig); + setDeploymentConfig(toLocalPath(savedDeploymentConfig)); - // Persist config paths on change + // Re-apply pre-.rep behavior: normalize file URLs, then persist (as master did in setters). connect(this, &BlockchainBackendSimpleSource::userConfigChanged, this, [this]() { + const QString p = userConfig(); + const QString n = toLocalPath(p); + if (n != p) { + QSignalBlocker b(this); + setUserConfig(n); + } QSettings("Logos", "BlockchainUI") .setValue("userConfigPath", userConfig()); }); connect(this, &BlockchainBackendSimpleSource::deploymentConfigChanged, this, [this]() { + const QString p = deploymentConfig(); + const QString n = toLocalPath(p); + if (n != p) { + QSignalBlocker b(this); + setDeploymentConfig(n); + } QSettings("Logos", "BlockchainUI") .setValue("deploymentConfigPath", deploymentConfig()); }); @@ -197,13 +217,6 @@ QString BlockchainBackend::transferFunds( : QStringLiteral("Error: Call failed."); } -static QString toLocalPath(const QString& pathInput) -{ - if (pathInput.trimmed().isEmpty()) - return pathInput; - return QUrl::fromUserInput(pathInput).toLocalFile(); -} - int BlockchainBackend::generateConfig( QString outputPath, QStringList initialPeers, int netPort, int blendPort, QString httpAddr, QString externalAddress, bool noPublicIpCheck,