Skip to content

Commit

Permalink
Merge pull request #196 from ConcealNetwork/legacy-green
Browse files Browse the repository at this point in the history
Replace WalletLegacy with WalletGreen
  • Loading branch information
AxVultis authored Feb 22, 2024
2 parents 60243cb + 36d1441 commit 12bfe41
Show file tree
Hide file tree
Showing 33 changed files with 519 additions and 934 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ jobs:

build-macos:
name: macOS
runs-on: macos-11
runs-on: macos-12
steps:
- uses: actions/checkout@master

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/macOS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
jobs:
build-macos:
name: macOS
runs-on: macos-11
runs-on: macos-12
steps:
- uses: actions/checkout@master

Expand Down
8 changes: 5 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ set(CRYPTONOTE_SOURCES
cryptonote/src/Common/MemoryInputStream.cpp
cryptonote/src/Common/PathTools.cpp
cryptonote/src/Common/DnsTools.cpp
cryptonote/src/Common/ScopeExit.cpp
cryptonote/src/Common/StdInputStream.cpp
cryptonote/src/Common/StdOutputStream.cpp
cryptonote/src/Common/StreamTools.cpp
Expand Down Expand Up @@ -150,12 +151,13 @@ set(CRYPTONOTE_SOURCES
cryptonote/src/Wallet/LegacyKeysImporter.cpp
cryptonote/src/Wallet/WalletAsyncContextCounter.cpp
cryptonote/src/Wallet/WalletErrors.cpp
cryptonote/src/Wallet/WalletGreen.cpp
cryptonote/src/Wallet/WalletSerializationV1.cpp
cryptonote/src/Wallet/WalletSerializationV2.cpp
cryptonote/src/Wallet/WalletUtils.cpp
cryptonote/src/WalletLegacy/KeysStorage.cpp
cryptonote/src/WalletLegacy/WalletLegacy.cpp
cryptonote/src/WalletLegacy/WalletHelper.cpp
cryptonote/src/WalletLegacy/WalletLegacySerializer.cpp
cryptonote/src/WalletLegacy/WalletLegacySerialization.cpp
cryptonote/src/WalletLegacy/WalletTransactionSender.cpp
cryptonote/src/WalletLegacy/WalletUnconfirmedTransactions.cpp
cryptonote/src/WalletLegacy/WalletUserTransactionsCache.cpp
cryptonote/src/System/ContextGroup.cpp
Expand Down
4 changes: 1 addition & 3 deletions appimage/create-appimage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ if ! test -f "linuxdeploy-plugin-qt-x86_64.AppImage"; then
fi
chmod u+x ./*.AppImage
cp ../build/release/conceal-desktop .
mkdir -p usr/share/icons
mkdir -p usr/lib
cp ../src/images/conceal.png usr/share/icons
cp /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 usr/lib
cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 usr/lib
./linuxdeploy-x86_64.AppImage --executable ./conceal-desktop --desktop-file conceal-desktop.desktop --appdir . --output appimage --plugin qt
./linuxdeploy-x86_64.AppImage --executable ./conceal-desktop --desktop-file conceal-desktop.desktop --appdir . --output appimage --plugin qt --icon-file ../src/images/conceal.png
300 changes: 2 additions & 298 deletions conceal-desktop.pro

Large diffs are not rendered by default.

71 changes: 40 additions & 31 deletions src/CryptoNoteWrapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,23 @@
#include "CryptoNoteCore/CryptoNoteBasicImpl.h"
#include "CryptoNoteCore/CryptoNoteFormatUtils.h"
#include "CryptoNoteCore/Currency.h"
#include "CryptoNoteCore/TransactionExtra.h"
#include "NodeRpcProxy/NodeRpcProxy.h"
#include "CryptoNoteCore/CoreConfig.h"
#include "P2p/NetNodeConfig.h"
#include "CryptoNoteCore/Core.h"
#include "CryptoNoteProtocol/CryptoNoteProtocolHandler.h"
#include "InProcessNode/InProcessNode.h"
#include "InProcessNode/InProcessNodeErrors.h"
#include "P2p/NetNode.h"
#include "WalletLegacy/WalletLegacy.h"
#include "Wallet/WalletGreen.h"
#include "Logging/LoggerManager.h"
#include "System/Dispatcher.h"
#include "Settings.h"

#include <QTimer>
#include <QThread>

namespace WalletGui {

namespace {
Expand Down Expand Up @@ -88,28 +93,30 @@ std::string extractPaymentId(const std::string& extra) {

}

Node::~Node() {
}

class RpcNode : cn::INodeObserver, public Node {
class RpcNode : public cn::INodeObserver, public Node {
public:
RpcNode(const cn::Currency& currency, logging::LoggerManager& logManager, INodeCallback& callback, const std::string& nodeHost, unsigned short nodePort) :
m_callback(callback),
m_currency(currency),
m_logger(logManager),
m_node(nodeHost, nodePort) {
RpcNode(const cn::Currency& currency, logging::LoggerManager& logManager, INodeCallback& callback,
const std::string& nodeHost, unsigned short nodePort)
: m_callback(callback),
m_currency(currency),
m_stopEvent(m_dispatcher),
m_node(nodeHost, nodePort),
m_logger(logManager) {
m_node.addObserver(this);
}

~RpcNode() override {
}
~RpcNode() override = default;

void init(const std::function<void(std::error_code)>& callback) override {
m_node.init(callback);
m_stopEvent.wait();
}

void deinit() override {
/* nothing to be done here */
m_dispatcher.remoteSpawn([this] {
m_stopEvent.set();
});
}

std::string convertPaymentId(const std::string& paymentIdString) override {
Expand All @@ -136,37 +143,40 @@ class RpcNode : cn::INodeObserver, public Node {
return m_node.getPeerCount();
}

cn::IWalletLegacy* createWallet() override {
return new cn::WalletLegacy(m_currency, m_node, m_logger, Settings::instance().isTestnet());
std::unique_ptr<cn::IWallet> createWallet() override {
return std::unique_ptr<cn::IWallet>(
new cn::WalletGreen(m_dispatcher, m_currency, m_node, m_logger));
}

private:
INodeCallback& m_callback;
const cn::Currency& m_currency;
platform_system::Dispatcher m_dispatcher;
platform_system::Event m_stopEvent;
cn::NodeRpcProxy m_node;
logging::LoggerManager& m_logger;

void peerCountUpdated(size_t count) {
void peerCountUpdated(size_t count) override {
m_callback.peerCountUpdated(*this, count);
}

void localBlockchainUpdated(uint64_t height) {
void localBlockchainUpdated(uint32_t height) override {
m_callback.localBlockchainUpdated(*this, height);
}

void lastKnownBlockHeightUpdated(uint64_t height) {
void lastKnownBlockHeightUpdated(uint32_t height) override {
m_callback.lastKnownBlockHeightUpdated(*this, height);
}
};

class InprocessNode : cn::INodeObserver, public Node {
class InprocessNode : public cn::INodeObserver, public Node {
public:
InprocessNode(const cn::Currency& currency, logging::LoggerManager& logManager, const cn::CoreConfig& coreConfig,
const cn::NetNodeConfig& netNodeConfig, INodeCallback& callback) :
m_currency(currency),
m_dispatcher(),
m_loggerManager(logManager),
m_callback(callback),
m_currency(currency),
m_stopEvent(m_dispatcher),
m_loggerManager(logManager),
m_coreConfig(coreConfig),
m_netNodeConfig(netNodeConfig),
m_protocolHandler(currency, m_dispatcher, m_core, nullptr, logManager),
Expand All @@ -183,9 +193,7 @@ class InprocessNode : cn::INodeObserver, public Node {
m_protocolHandler.set_p2p_endpoint(&m_nodeServer);
}

~InprocessNode() override {

}
~InprocessNode() override = default;

void init(const std::function<void(std::error_code)>& callback) override {
try {
Expand Down Expand Up @@ -242,33 +250,34 @@ class InprocessNode : cn::INodeObserver, public Node {
return m_node.getPeerCount();
}

cn::IWalletLegacy* createWallet() override {
return new cn::WalletLegacy(m_currency, m_node, m_loggerManager, Settings::instance().isTestnet());
std::unique_ptr<cn::IWallet> createWallet() override {
return std::unique_ptr<cn::IWallet>(
new cn::WalletGreen(m_dispatcher, m_currency, m_node, m_loggerManager));
}

private:
INodeCallback& m_callback;
const cn::Currency& m_currency;
platform_system::Dispatcher m_dispatcher;
platform_system::Event m_stopEvent;
logging::LoggerManager& m_loggerManager;
cn::CoreConfig m_coreConfig;
cn::NetNodeConfig m_netNodeConfig;
cn::core m_core;
cn::CryptoNoteProtocolHandler m_protocolHandler;
cn::core m_core;
cn::NodeServer m_nodeServer;
cn::InProcessNode m_node;
std::future<bool> m_nodeServerFuture;


void peerCountUpdated(size_t count) {
void peerCountUpdated(size_t count) override {
m_callback.peerCountUpdated(*this, count);
}

void localBlockchainUpdated(uint64_t height) {
void localBlockchainUpdated(uint32_t height) override {
m_callback.localBlockchainUpdated(*this, height);
}

void lastKnownBlockHeightUpdated(uint64_t height) {
void lastKnownBlockHeightUpdated(uint32_t height) override {
m_callback.lastKnownBlockHeightUpdated(*this, height);
}
};
Expand Down
7 changes: 4 additions & 3 deletions src/CryptoNoteWrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
namespace cn {

class INode;
class IWalletLegacy;
class IWallet;
class Currency;
class CoreConfig;
class NetNodeConfig;
Expand All @@ -32,7 +32,7 @@ namespace WalletGui {

class Node {
public:
virtual ~Node() = 0;
virtual ~Node() = default;
virtual void init(const std::function<void(std::error_code)>& callback) = 0;
virtual void deinit() = 0;

Expand All @@ -43,11 +43,12 @@ class Node {
virtual uint64_t getLastLocalBlockTimestamp() const = 0;
virtual uint64_t getPeerCount() const = 0;

virtual cn::IWalletLegacy* createWallet() = 0;
virtual std::unique_ptr<cn::IWallet> createWallet() = 0;
};

class INodeCallback {
public:
virtual ~INodeCallback() = default;
virtual void peerCountUpdated(Node& node, size_t count) = 0;
virtual void localBlockchainUpdated(Node& node, uint64_t height) = 0;
virtual void lastKnownBlockHeightUpdated(Node& node, uint64_t height) = 0;
Expand Down
Loading

0 comments on commit 12bfe41

Please sign in to comment.