-Subproject commit 14d2ac095df656745e383258f4434ed4968b1c6b
+Subproject commit 5b9a197de481409ab3dc4cd25c5a1048d20ca09f
#include <QtNetwork/qlocalserver.h>
class QLockFile;
-class QSocketNotifier;
class Application : public QApplication {
Q_OBJECT
#include <QMessageBox>
#include "dialog/ContactsDialog.h"
+#include "model/AddressBookModel.h"
+#include "model/AddressBookProxyModel.h"
#include "libwalletqt/AddressBook.h"
+#include "libwalletqt/Wallet.h"
#include "libwalletqt/WalletManager.h"
#include "utils/Icons.h"
#include "utils/Utils.h"
#include <QWidget>
#include <QMenu>
-#include "model/AddressBookModel.h"
-#include "model/AddressBookProxyModel.h"
-#include "libwalletqt/Wallet.h"
+class AddressBookModel;
+class AddressBookProxyModel;
+class Wallet;
namespace Ui {
class ContactsWidget;
#include "dialog/TxInfoDialog.h"
#include "dialog/TxProofDialog.h"
+#include "model/TransactionHistoryProxyModel.h"
+#include "libwalletqt/Wallet.h"
#include "libwalletqt/WalletManager.h"
#include "utils/config.h"
#include "utils/Icons.h"
#include <QWidget>
#include <QMenu>
-#include "libwalletqt/Coins.h"
-#include "libwalletqt/Wallet.h"
-#include "model/TransactionHistoryModel.h"
-#include "model/TransactionHistoryProxyModel.h"
+class TransactionHistoryProxyModel;
+class Wallet;
namespace Ui {
class HistoryWidget;
#include "libwalletqt/AddressBook.h"
#include "libwalletqt/rows/CoinsInfo.h"
#include "libwalletqt/Transfer.h"
+#include "libwalletqt/TransactionHistory.h"
+#include "model/AddressBookModel.h"
#include "plugins/PluginRegistry.h"
#include "utils/AppData.h"
#include "utils/AsyncTask.h"
#include "utils/ColorScheme.h"
#include "utils/Icons.h"
-#include "utils/SemanticVersion.h"
#include "utils/TorManager.h"
#include "utils/WebsocketNotifier.h"
#include "ui_ReceiveWidget.h"
#include <QMenu>
-#include <QMessageBox>
#include "dialog/PaymentRequestDialog.h"
#include "dialog/QrCodeDialog.h"
#include <QMenu>
#include <QWidget>
-#include <QSvgWidget>
#include "libwalletqt/Subaddress.h"
#include "libwalletqt/Wallet.h"
#include <QWidget>
-#include "libwalletqt/Wallet.h"
+class Wallet;
namespace Ui {
class SendWidget;
#include "libwalletqt/WalletManager.h"
#include "utils/AppData.h"
#include "utils/Icons.h"
+#include "utils/nodes.h"
#include "utils/WebsocketNotifier.h"
#include "widgets/NetworkProxyWidget.h"
#include "WindowManager.h"
#ifndef FEATHER_SettingsDIALOG_H
#define FEATHER_SettingsDIALOG_H
-
-#include <QAbstractButton>
#include <QDialog>
-#include <QSettings>
-
-#include "widgets/NodeWidget.h"
namespace Ui {
class Settings;
}
+class Nodes;
class Settings : public QDialog
{
Q_OBJECT
#include "Application.h"
#include "constants.h"
+#include "MainWindow.h"
+#include "dialog/DocsDialog.h"
#include "dialog/PasswordDialog.h"
#include "dialog/SplashDialog.h"
+#include "dialog/TorInfoDialog.h"
+#include "libwalletqt/WalletManager.h"
+#include "libwalletqt/Wallet.h"
#include "utils/Icons.h"
#include "utils/NetworkManager.h"
#include "utils/os/tails.h"
#include "utils/os/whonix.h"
#include "utils/TorManager.h"
#include "utils/WebsocketNotifier.h"
+#include "utils/AppData.h"
WindowManager::WindowManager(QObject *parent)
: QObject(parent)
#define FEATHER_WINDOWMANAGER_H
#include <QObject>
+#include <QSystemTrayIcon>
-#include "dialog/DocsDialog.h"
-#include "dialog/TorInfoDialog.h"
-#include "libwalletqt/WalletManager.h"
-#include "libwalletqt/Wallet.h"
-#include "MainWindow.h"
+#include "utils/EventFilter.h"
#include "utils/nodes.h"
#include "wizard/WalletWizard.h"
#include "Utils.h"
class MainWindow;
+class DocsDialog;
+class TorInfoDialog;
+class WalletManager;
+class Wallet;
+class SplashDialog;
+
class WindowManager : public QObject {
Q_OBJECT
#ifndef FEATHER_CONSTANTS_H
#define FEATHER_CONSTANTS_H
-#include <QtGlobal>
-#include <QUrl>
+#include <QString>
#include "networktype.h"
#include "ui_AboutDialog.h"
#include <QMessageBox>
+#include <QDate>
#include "config-feather.h"
#include "utils/Utils.h"
#ifndef FEATHER_ABOUT_H
#define FEATHER_ABOUT_H
-#include <QDialog>
-#include <QStringListModel>
-
#include "components.h"
namespace Ui {
#include "libwalletqt/SubaddressAccount.h"
#include "libwalletqt/WalletManager.h"
+#include "model/SubaddressAccountModel.h"
#include "utils/Icons.h"
#include "utils/Utils.h"
#ifndef FEATHER_ACCOUNTSWITCHERDIALOG_H
#define FEATHER_ACCOUNTSWITCHERDIALOG_H
-#include <QDialog>
-
-#include "libwalletqt/Wallet.h"
#include "components.h"
+#include "libwalletqt/Wallet.h"
#include "model/SubaddressAccountModel.h"
namespace Ui {
#include "utils/Utils.h"
#include "components.h"
#include "dialog/QrCodeDialog.h"
+#include "libwalletqt/Wallet.h"
AddressCheckerIndexDialog::AddressCheckerIndexDialog(Wallet *wallet, QWidget *parent)
: WindowModalDialog(parent)
#define ADDRESSCHECKERINDEXDIALOG_H
#include "components.h"
-#include "Wallet.h"
+
+class Wallet;
namespace Ui {
class AddressCheckerIndexDialog;
#ifndef FEATHER_BALANCEDIALOG_H
#define FEATHER_BALANCEDIALOG_H
-#include <QDialog>
-
#include "components.h"
#include "libwalletqt/Wallet.h"
#include "ui_DocsDialog.h"
#include <QScrollBar>
+#include <QDirIterator>
#include "utils/Utils.h"
#include "ColorScheme.h"
#include <QObject>
#include <QList>
#include <QReadWriteLock>
-#include <QDateTime>
#include "Wallet.h"
#include "Input.h"
#include "Transfer.h"
+#include <wallet/api/wallet2_api.h>
quint64 ConstructionInfo::unlockTime() const {
return m_unlockTime;
#ifndef FEATHER_CONSTRUCTIONINFO_H
#define FEATHER_CONSTRUCTIONINFO_H
-#include <wallet/api/wallet2_api.h>
#include <QObject>
#include <QSet>
class Input;
class Transfer;
+namespace Monero {
+ class TransactionConstructionInfo;
+}
+
class ConstructionInfo : public QObject
{
Q_OBJECT
#ifndef FEATHER_INPUT_H
#define FEATHER_INPUT_H
-#include <wallet/api/wallet2_api.h>
#include <QObject>
-#include <utility>
class Input : public QObject
{
Q_OBJECT
- Q_PROPERTY(quint64 amount READ amount)
- Q_PROPERTY(QString pubKey READ pubKey)
private:
explicit Input(uint64_t _amount, QString _address, QObject *parent = nullptr): QObject(parent), m_amount(_amount), m_pubkey(std::move(_address)) {};
friend class ConstructionInfo;
quint64 m_amount;
QString m_pubkey;
+
public:
quint64 amount() const { return m_amount; }
QString pubKey() const { return m_pubkey; }
-
};
#endif //FEATHER_INPUT_H
#include "PassphraseHelper.h"
#include <QDebug>
-Monero::optional<std::string> PassphraseHelper::onDevicePassphraseRequest(bool & on_device)
+std::optional<std::string> PassphraseHelper::onDevicePassphraseRequest(bool & on_device)
{
qDebug() << __FUNCTION__;
QMutexLocker locker(&m_mutex_pass);
if (!on_device) {
auto tmpPass = m_passphrase.toStdString();
m_passphrase = QString();
- return Monero::optional<std::string>(tmpPass);
+ return std::optional<std::string>(tmpPass);
} else {
- return Monero::optional<std::string>();
+ return std::optional<std::string>();
}
}
#ifndef MONERO_GUI_PASSPHRASEHELPER_H
#define MONERO_GUI_PASSPHRASEHELPER_H
-#include <wallet/api/wallet2_api.h>
#include <QMutex>
#include <QPointer>
#include <QWaitCondition>
-#include <QMutex>
/**
* Implements component responsible for showing entry prompt to the user,
public:
PassphraseHelper(PassphrasePrompter * prompter=nullptr): m_prompter(prompter) {};
PassphraseHelper(const PassphraseHelper & h): PassphraseHelper(h.m_prompter) {};
- Monero::optional<std::string> onDevicePassphraseRequest(bool & on_device);
+ std::optional<std::string> onDevicePassphraseRequest(bool & on_device);
void onPassphraseEntered(const QString &passphrase, bool enter_on_device, bool entry_abort);
private:
#include <QVariant>
+#include <wallet/api/wallet2_api.h>
+
PendingTransaction::Status PendingTransaction::status() const
{
return static_cast<Status>(m_pimpl->status());
#include <QObject>
#include <QList>
-#include <wallet/api/wallet2_api.h>
#include "PendingTransactionInfo.h"
+namespace Monero {
+ class PendingTransaction;
+}
+
class PendingTransaction : public QObject
{
Q_OBJECT
public:
enum Status {
- Status_Ok = Monero::PendingTransaction::Status_Ok,
- Status_Error = Monero::PendingTransaction::Status_Error,
- Status_Critical = Monero::PendingTransaction::Status_Critical
+ Status_Ok = 0,
+ Status_Error = 1,
+ Status_Critical = 2
};
Q_ENUM(Status)
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
#include "PendingTransactionInfo.h"
+#include <wallet/api/wallet2_api.h>
quint64 PendingTransactionInfo::fee() const {
return m_fee;
class Input;
class Transfer;
+namespace Monero {
+ class PendingTransactionInfo;
+}
+
class PendingTransactionInfo : public ConstructionInfo
{
Q_OBJECT
#ifndef FEATHER_RINGS_H
#define FEATHER_RINGS_H
-#include <wallet/api/wallet2_api.h>
#include <QObject>
-#include <QList>
-#include <utility>
class Ring : public QObject
{
#ifndef SUBADDRESS_H
#define SUBADDRESS_H
-#include <functional>
-
-#include <QReadWriteLock>
#include <QObject>
+#include <QReadWriteLock>
#include <QList>
#include <QDateTime>
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
#include "UnsignedTransaction.h"
-#include <QDebug>
+
+#include "ConstructionInfo.h"
+#include <wallet/api/wallet2_api.h>
UnsignedTransaction::Status UnsignedTransaction::status() const
{
#include <QObject>
-#include "libwalletqt/PendingTransactionInfo.h"
+namespace Monero {
+ class UnsignedTransaction;
+ class Wallet;
+}
+
+class ConstructionInfo;
class UnsignedTransaction : public QObject
{
public:
enum Status {
- Status_Ok = Monero::UnsignedTransaction::Status_Ok,
- Status_Error = Monero::UnsignedTransaction::Status_Error,
- Status_Critical = Monero::UnsignedTransaction::Status_Critical
+ Status_Ok = 0,
+ Status_Error = 1,
+ Status_Critical = 2
};
Q_ENUM(Status)
#include "SubaddressAccount.h"
#include "TransactionHistory.h"
#include "WalletManager.h"
+#include "WalletListenerImpl.h"
#include "config.h"
#include "constants.h"
m_wallet2->set_seed_language(lang.toStdString());
}
+QString Wallet::getSecretViewKey() const {
+ return QString::fromStdString(m_walletImpl->secretViewKey());
+}
+
+QString Wallet::getPublicViewKey() const {
+ return QString::fromStdString(m_walletImpl->publicViewKey());
+}
+
+QString Wallet::getSecretSpendKey() const {
+ return QString::fromStdString(m_walletImpl->secretSpendKey());
+}
+
+QString Wallet::getPublicSpendKey() const {
+ return QString::fromStdString(m_walletImpl->publicSpendKey());
+}
+
// #################### Node connection ####################
void Wallet::setOffline(bool offline) {
m_scheduler.run([this, all, address, amount, feeLevel, subtractFeeFromAmount] {
std::set<uint32_t> subaddr_indices;
- Monero::PendingTransaction *ptImpl = m_walletImpl->createTransaction(address.toStdString(), "", all ? Monero::optional<uint64_t>() : Monero::optional<uint64_t>(amount), constants::mixin,
+ Monero::PendingTransaction *ptImpl = m_walletImpl->createTransaction(address.toStdString(), "", all ? std::optional<uint64_t>() : std::optional<uint64_t>(amount), constants::mixin,
static_cast<Monero::PendingTransaction::Priority>(feeLevel),
currentSubaddressAccount(), subaddr_indices, m_selectedInputs, subtractFeeFromAmount);
return m_walletImpl->setRingDatabase(path.toStdString());
}
+quint64 Wallet::getWalletCreationHeight() const {
+ return m_walletImpl->getRefreshFromBlockHeight();
+}
+
void Wallet::setWalletCreationHeight(quint64 height) {
m_wallet2->set_refresh_from_block_height(height);
}
#ifndef WALLET_H
#define WALLET_H
-#include <QElapsedTimer>
#include <QObject>
#include <QMutex>
-#include <QList>
-#include <QtConcurrent/QtConcurrent>
#include "utils/scheduler.h"
#include "PendingTransaction.h"
#include "UnsignedTransaction.h"
#include "utils/networktype.h"
#include "PassphraseHelper.h"
-#include "WalletListenerImpl.h"
#include "rows/TxBacklogEntry.h"
+#include <set>
+
+class WalletListenerImpl;
+
namespace Monero {
struct Wallet; // forward declaration
}
+namespace tools {
+ struct wallet2;
+}
+
struct TxProof {
TxProof(QString proof, QString error = "")
: proof(std::move(proof)), error(std::move(error)){}
~Wallet() override;
enum Status {
- Status_Ok = Monero::Wallet::Status_Ok,
- Status_Error = Monero::Wallet::Status_Error,
- Status_Critical = Monero::Wallet::Status_Critical,
- Status_BadPassword = Monero::Wallet::Status_BadPassword
+ Status_Ok = 0,
+ Status_Error = 1,
+ Status_Critical = 2,
+ Status_BadPassword = 3
};
Q_ENUM(Status)
enum ConnectionStatus {
- ConnectionStatus_Disconnected = Monero::Wallet::ConnectionStatus_Disconnected,
- ConnectionStatus_WrongVersion = Monero::Wallet::ConnectionStatus_WrongVersion,
+ ConnectionStatus_Disconnected = 0,
+ ConnectionStatus_WrongVersion = 2,
ConnectionStatus_Connecting = 9,
ConnectionStatus_Synchronizing = 10,
ConnectionStatus_Synchronized = 11
void setSeedLanguage(const QString &lang);
//! Get wallet keys
- QString getSecretViewKey() const {return QString::fromStdString(m_walletImpl->secretViewKey());}
- QString getPublicViewKey() const {return QString::fromStdString(m_walletImpl->publicViewKey());}
- QString getSecretSpendKey() const {return QString::fromStdString(m_walletImpl->secretSpendKey());}
- QString getPublicSpendKey() const {return QString::fromStdString(m_walletImpl->publicSpendKey());}
+ QString getSecretViewKey() const;
+ QString getPublicViewKey() const;
+ QString getSecretSpendKey() const;
+ QString getPublicSpendKey() const;
// ##### Node connection #####
bool setRingDatabase(const QString &path);
- quint64 getWalletCreationHeight() const {return m_walletImpl->getRefreshFromBlockHeight();}
+ quint64 getWalletCreationHeight() const;
void setWalletCreationHeight(quint64 height);
//! Rescan spent outputs
std::set<std::string> m_selectedInputs;
};
-
-
#endif // WALLET_H
m_phelper.onPassphraseEntered(passphrase, enter_on_device, entry_abort);
}
-Monero::optional<std::string> WalletListenerImpl::onDevicePassphraseRequest(bool & on_device)
+std::optional<std::string> WalletListenerImpl::onDevicePassphraseRequest(bool & on_device)
{
qDebug() << __FUNCTION__;
return m_phelper.onDevicePassphraseRequest(on_device);
virtual void onPassphraseEntered(const QString &passphrase, bool enter_on_device, bool entry_abort) override;
- virtual Monero::optional<std::string> onDevicePassphraseRequest(bool & on_device) override;
+ virtual std::optional<std::string> onDevicePassphraseRequest(bool & on_device) override;
private:
Wallet * m_wallet;
#include "Wallet.h"
#include "utils/ScopeGuard.h"
+#include <wallet/api/wallet2_api.h>
class WalletPassphraseListenerImpl : public Monero::WalletListener, public PassphraseReceiver
{
m_phelper.onPassphraseEntered(passphrase, enter_on_device, entry_abort);
}
- Monero::optional<std::string> onDevicePassphraseRequest(bool & on_device) override
+ std::optional<std::string> onDevicePassphraseRequest(bool & on_device) override
{
qDebug() << __FUNCTION__;
return m_phelper.onDevicePassphraseRequest(on_device);
#ifndef WALLETMANAGER_H
#define WALLETMANAGER_H
-#include <wallet/api/wallet2_api.h>
-
#include <QObject>
#include <QMutex>
#include <QPointer>
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
+#include <QSslSocket>
+
#include "Application.h"
#include "config-feather.h"
#include "constants.h"
#include "utils/os/Prestium.h"
#include "WindowManager.h"
#include "config.h"
+#include <wallet/api/wallet2_api.h>
+#include "libwalletqt/Wallet.h"
+#include "libwalletqt/WalletManager.h"
#if defined(Q_OS_LINUX) && defined(STACK_TRACE)
#define BOOST_STACKTRACE_LINK
#ifndef FEATHER_COINSMODEL_H
#define FEATHER_COINSMODEL_H
-#include <wallet/api/wallet2_api.h>
-
#include <QAbstractTableModel>
-#include <QSortFilterProxyModel>
-#include <QDebug>
-#include <QIcon>
class Coins;
class CoinsInfo;
#ifndef SUBADDRESSMODEL_H
#define SUBADDRESSMODEL_H
-#include <wallet/api/wallet2_api.h>
-
#include <QAbstractTableModel>
-#include <QSortFilterProxyModel>
-#include <QDebug>
#include "rows/SubaddressRow.h"
#include "TransactionHistory.h"
#include "constants.h"
#include "utils/config.h"
-#include "utils/ColorScheme.h"
#include "utils/Icons.h"
#include "utils/AppData.h"
#include "utils/Utils.h"
#include "ui_BountiesWidget.h"
#include <QTableWidget>
+#include <QJsonArray>
#include "BountiesModel.h"
#include "utils/Utils.h"
#include "ui_CCSWidget.h"
#include <QTableWidget>
+#include <QJsonArray>
#include "CCSProgressDelegate.h"
#include "utils/Utils.h"
#include "RevuoWidget.h"
#include "ui_RevuoWidget.h"
+#include <QJsonArray>
+
#include "utils/ColorScheme.h"
#include "Utils.h"
#include "utils/WebsocketNotifier.h"
#include "QrCodeScanDialog.h"
#include "ui_QrCodeScanDialog.h"
-#include <QCamera>
-#include <QMediaDevices>
-#include <QCameraDevice>
-#include <QMessageBox>
-#include <QImageCapture>
-#include <QVideoFrame>
-
-#include "Utils.h"
-
QrCodeScanDialog::QrCodeScanDialog(QWidget *parent, bool scan_ur)
: QDialog(parent)
, ui(new Ui::QrCodeScanDialog)
QrCodeScanDialog::~QrCodeScanDialog()
{
-}
\ No newline at end of file
+}
#define FEATHER_QRCODESCANDIALOG_H
#include <QDialog>
-#include <QCamera>
#include <QScopedPointer>
-#include <QMediaCaptureSession>
-#include <QTimer>
-#include <QVideoSink>
-
-#include "QrScanThread.h"
namespace Ui {
class QrCodeScanDialog;
#include <QMediaDevices>
#include <QComboBox>
+#include <bcur/bc-ur.hpp>
+
#include "utils/config.h"
#include "utils/Icons.h"
+#include "QrScanThread.h"
QrCodeScanWidget::QrCodeScanWidget(QWidget *parent)
: QWidget(parent)
#include <QTimer>
#include <QVideoSink>
-#include "QrScanThread.h"
-
-#include <bcur/bc-ur.hpp>
#include <bcur/ur-decoder.hpp>
+class QrScanThread;
+
namespace Ui {
class QrCodeScanWidget;
}
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
#include "QrScanThread.h"
-#include <QDebug>
#include <ZXing/ReadBarcode.h>
+#include "utils/QrCodeUtils.h"
+
QrScanThread::QrScanThread(QObject *parent)
: QThread(parent)
, m_running(true)
#include <QThread>
#include <QMutex>
#include <QWaitCondition>
-#include <QEvent>
-#include <QCamera>
-
-#include <ZXing/ReadBarcode.h>
-
-#include "qrcode/utils/QrCodeUtils.h"
class QrScanThread : public QThread
{
#include <QInputDialog>
#include "utils/Utils.h"
-#include "WalletManager.h"
URDialog::URDialog(QWidget *parent)
: WindowModalDialog(parent)
#ifndef FEATHER_URDIALOG_H
#define FEATHER_URDIALOG_H
-#include <QDialog>
-
#include "components.h"
namespace Ui {
#include <QTimer>
#include "qrcode/QrCode.h"
-#include "widgets/QrCodeWidget.h"
#include <bcur/bc-ur.hpp>
namespace Ui {
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
#include "AppData.h"
+
+#include <QCoreApplication>
+
#include "config.h"
#include "WebsocketNotifier.h"
#include <QObject>
#include <QPointer>
-#include <QCoreApplication>
#include "prices.h"
#include "TxFiatHistory.h"
#include "EventFilter.h"
#include <QKeyEvent>
-#include <QDebug>
EventFilter::EventFilter(QObject *parent)
: QObject(parent)
protected:
bool eventFilter(QObject *obj, QEvent *ev);
-
signals:
void userActivity();
};
#include <QCoreApplication>
#include <QNetworkProxy>
-#include <QRegularExpression>
#include <QUrl>
#include "utils/config.h"
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
+#include "utils/Networking.h"
+
#include <QNetworkAccessManager>
#include <QNetworkReply>
+#include <QJsonDocument>
-#include "utils/Utils.h"
-#include "utils/Networking.h"
#include "utils/NetworkManager.h"
#include "config.h"
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
-#include <iomanip>
#include "Seed.h"
+#include "constants.h"
+#include "monero_seed/monero_seed.hpp"
+#include "polyseed/polyseed.h"
+#include "utils/AppData.h"
+
+#include <sstream>
+#include <utility>
+#include <iomanip>
+
Seed::Seed(Type type, NetworkType::Type networkType, QString language, const char* secret)
: type(type)
, networkType(networkType)
#ifndef FEATHER_SEED_H
#define FEATHER_SEED_H
-#include "constants.h"
-#include "libwalletqt/Wallet.h"
-#include "monero_seed/monero_seed.hpp"
-#include "polyseed/polyseed.h"
-#include "utils/AppData.h"
-
+#include <QMap>
#include <QString>
#include <QStringList>
-#include <sstream>
-#include <utility>
+#include "networktype.h"
struct Seed {
enum Type {
#define FEATHER_SEMANTICVERSION_H
#include <QObject>
+#include <QRegularExpression>
struct SemanticVersion
{
#include "utils/TorManager.h"
-#include <QDesktopServices>
+#include <QCoreApplication>
+#include <QDirIterator>
#include "utils/config.h"
#include "utils/Utils.h"
#ifndef FEATHER_TOR_H
#define FEATHER_TOR_H
-#include <cstdio>
-#include <cstdlib>
-#include <iostream>
-#include <QRegularExpression>
-#include <QtNetwork>
+#include <QObject>
+#include <QProcess>
+#include <QTimer>
+
#include "utils/SemanticVersion.h"
class TorManager : public QObject
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
#include "TxFiatHistory.h"
+
+#include <QJsonObject>
+
#include "utils/Utils.h"
TxFiatHistory::TxFiatHistory(int genesis_timestamp, const QString &configDirectory, QObject *parent)
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
+#include "Utils.h"
+
#include <QApplication>
#include <QMessageBox>
#include <QClipboard>
#include <QFontDatabase>
#include <QTcpSocket>
#include <QFileDialog>
+#include <QLayout>
+#include <QLayoutItem>
+#include <QJsonDocument>
+#include <QThread>
+#include <QStandardPaths>
+#include <QProcess>
#include "constants.h"
#include "networktype.h"
-#include "Utils.h"
#include "utils/ColorScheme.h"
#include "utils/config.h"
#include "utils/os/tails.h"
#include "utils/os/whonix.h"
+#include "libwalletqt/Wallet.h"
#include "WindowManager.h"
namespace Utils {
#define FEATHER_UTILS_H
#include <QRegularExpression>
-#include <QStandardItemModel>
#include <QTextCharFormat>
#include <QMessageBox>
+#include <QSettings>
+#include <QStandardItem>
+#include <QMetaEnum>
-#include "libwalletqt/Wallet.h"
#include "networktype.h"
+class SubaddressIndex;
+
namespace Utils
{
enum MessageType
#include "WebsocketClient.h"
#include <QCoreApplication>
-#include "utils/Utils.h"
+#include <QRandomGenerator>
+#include <QJsonDocument>
+#include <QJsonObject>
#include "utils/config.h"
+#include "utils/Utils.h"
WebsocketClient::WebsocketClient(QObject *parent)
: QObject(parent)
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
#include "WebsocketNotifier.h"
-#include "Utils.h"
-#include "utils/os/tails.h"
#include "utils/os/whonix.h"
#include "plugins/PluginRegistry.h"
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
#include "config.h"
+
+#include <QCoreApplication>
+#include <QStandardPaths>
+
#include "utils/Utils.h"
#include "utils/os/tails.h"
#include "daemonrpc.h"
+#include <QJsonArray>
+#include <QJsonDocument>
+
DaemonRpc::DaemonRpc(QObject *parent, QString daemonAddress)
: QObject(parent)
, m_network(new Networking(this))
#define FEATHER_DAEMON_RPC_H
#include <QObject>
+#include <QJsonObject>
#include "utils/Networking.h"
#pragma once
#include <QObject>
-#include <wallet/api/wallet2_api.h>
class NetworkType : public QObject
{
public:
enum Type : uint8_t {
- MAINNET = Monero::MAINNET,
- TESTNET = Monero::TESTNET,
- STAGENET = Monero::STAGENET
+ MAINNET = 0,
+ TESTNET = 1,
+ STAGENET = 2
};
Q_ENUM(Type)
};
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
-#include <QObject>
-
#include "nodes.h"
+
+#include "libwalletqt/Wallet.h"
#include "utils/AppData.h"
#include "utils/Utils.h"
#include "utils/os/tails.h"
#ifndef FEATHER_NODES_H
#define FEATHER_NODES_H
+#include <QObject>
+#include <QJsonObject>
#include <QTimer>
#include <QRegularExpression>
#include <QHostAddress>
+#include <QUrl>
#include "model/NodeModel.h"
#include "utils/Utils.h"
#include "utils/config.h"
+class Wallet;
+
enum NodeSource {
websocket = 0,
custom
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
+#include "tails.h"
+
+#include <QDir>
#include <QRegularExpression>
#include <QMessageBox>
-#include "tails.h"
#include "Utils.h"
bool TailsOS::detected = false;
#ifndef TAILSOS_H
#define TAILSOS_H
+#include <QString>
+
class TailsOS
{
public:
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
-#include "utils/prices.h"
+#include "prices.h"
+
+#include <QJsonArray>
+#include <QJsonObject>
Prices::Prices(QObject *parent)
: QObject(parent)
#ifndef FUTURE_SCHEDULER_H
#define FUTURE_SCHEDULER_H
-#include <functional>
-
#include <QtConcurrent/QtConcurrent>
#include <QFuture>
-//#include <QJSValue>
#include <QMutex>
-#include <QMutexLocker>
#include <QPair>
#include <QWaitCondition>
#include "Utils.h"
#include "utils/AsyncTask.h"
#include "utils/Networking.h"
-#include "utils/NetworkManager.h"
#include "utils/SemanticVersion.h"
Updater::Updater(QObject *parent) :
#define FEATHER_URLLISTCONFIGUREWIDGET_H
#include <QWidget>
-#include <QTextEdit>
#include "utils/config.h"
#include <QPushButton>
#include "utils/Utils.h"
+#include "libwalletqt/Wallet.h"
WalletUnlockWidget::WalletUnlockWidget(QWidget *parent, Wallet *wallet)
: QWidget(parent)
#define FEATHER_WALLETUNLOCKWIDGET_H
#include <QWidget>
-#include <QMenu>
-#include "Wallet.h"
+class Wallet;
namespace Ui {
class WalletUnlockWidget;
#include "PageHardwareDevice.h"
#include "ui_PageHardwareDevice.h"
-#include "WalletWizard.h"
#include <QCheckBox>
#include <QDialogButtonBox>
#include <QPushButton>
+#include "WalletWizard.h"
+
PageHardwareDevice::PageHardwareDevice(WizardFields *fields, QWidget *parent)
: QWizardPage(parent)
, ui(new Ui::PageHardwareDevice)
#ifndef FEATHER_PAGEHARDWAREDEVICE_H
#define FEATHER_PAGEHARDWAREDEVICE_H
-#include <QLabel>
#include <QWizardPage>
-#include <QWidget>
-#include <QDir>
-#include "WalletWizard.h"
+class WizardFields;
namespace Ui {
class PageHardwareDevice;
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
-#include "WalletWizard.h"
#include "PageMenu.h"
#include "ui_PageMenu.h"
-#include <QFileDialog>
-
#include "config-feather.h"
+#include "WalletWizard.h"
PageMenu::PageMenu(WizardFields *fields, WalletKeysFilesModel *wallets, QWidget *parent)
: QWizardPage(parent)
#ifndef FEATHER_WIZARDMENU_H
#define FEATHER_WIZARDMENU_H
-#include <QLabel>
#include <QWizardPage>
-#include <QWidget>
+
+class WizardFields;
+class WalletKeysFilesModel;
namespace Ui {
class PageMenu;
#include <QtConcurrent/QtConcurrent>
#include "constants.h"
+#include "utils/nodes.h"
#include "utils/os/Prestium.h"
#include "Utils.h"
#include "WalletWizard.h"
#ifndef FEATHER_WIZARDNETWORK_H
#define FEATHER_WIZARDNETWORK_H
-#include <QLabel>
#include <QWizardPage>
-#include <QWidget>
-
-#include "utils/nodes.h"
+#include <QFutureWatcher>
namespace Ui {
class PageNetwork;
#include "PageNetworkProxy.h"
#include "ui_PageNetworkProxy.h"
-#include "WalletWizard.h"
-#include <QSysInfo>
+#include <QTimer>
+
+#include "WalletWizard.h"
PageNetworkProxy::PageNetworkProxy(QWidget *parent)
: QWizardPage(parent)
#include "constants.h"
#include "WalletWizard.h"
+#include "model/WalletKeysFilesModel.h"
PageOpenWallet::PageOpenWallet(WalletKeysFilesModel *wallets, QWidget *parent)
: QWizardPage(parent)
#include <QLabel>
#include <QStandardItemModel>
#include <QWizardPage>
-#include <QWidget>
-#include "model/WalletKeysFilesModel.h"
+class WalletKeysFilesModel;
+class WalletKeysFilesProxyModel;
namespace Ui {
class PageOpenWallet;
#define FEATHER_PASSWORD_H
#include <QWizardPage>
-#include <QWidget>
-#include "WalletWizard.h"
+class WizardFields;
namespace Ui {
class PageSetPassword;
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
-#include <QValidator>
#include "PageSetRestoreHeight.h"
#include "ui_PageSetRestoreHeight.h"
-#include "WalletWizard.h"
-#include "constants.h"
+#include <QValidator>
+
+#include "constants.h"
+#include "utils/AppData.h"
#include "utils/Icons.h"
+#include "WalletWizard.h"
PageSetRestoreHeight::PageSetRestoreHeight(WizardFields *fields, QWidget *parent)
: QWizardPage(parent)
#define FEATHER_PAGESETRESTOREHEIGHT_H
#include <QWizardPage>
-#include <QWidget>
-#include "WalletWizard.h"
+class WizardFields;
namespace Ui {
class PageSetRestoreHeight;
#define FEATHER_PAGESETSEEDPASSPHRASE_H
#include <QWizardPage>
-#include <QWidget>
-#include "WalletWizard.h"
+class WizardFields;
namespace Ui {
class PageSetSeedPassphrase;
#define FEATHER_PAGESETSUBADDRESSLOOKAHEAD_H
#include <QWizardPage>
-#include <QWidget>
-#include "WalletWizard.h"
+class WizardFields;
namespace Ui {
class PageSetSubaddressLookahead;
#ifndef FEATHER_CREATEWALLET_H
#define FEATHER_CREATEWALLET_H
-#include <QLabel>
#include <QWizardPage>
-#include <QWidget>
-#include <QDir>
+
+class WizardFields;
namespace Ui {
class PageWalletFile;
#ifndef FEATHER_WIZARDVIEWONLY_H
#define FEATHER_WIZARDVIEWONLY_H
-#include <QLabel>
#include <QWizardPage>
-#include <QWidget>
-#include <QTextEdit>
-#include <QCompleter>
-#include "WalletWizard.h"
+class WizardFields;
namespace Ui {
class PageWalletRestoreKeys;
#include <QCheckBox>
#include <QDialogButtonBox>
-#include <QPlainTextEdit>
#include <QPushButton>
#include <QShortcut>
#ifndef FEATHER_WIZARDRESTORE_H
#define FEATHER_WIZARDRESTORE_H
-#include <QLabel>
#include <QWizardPage>
-#include <QWidget>
-#include <QTextEdit>
#include <QCompleter>
-
-#include "utils/textedit.h"
+#include <QStringListModel>
namespace Ui {
class PageWalletRestoreSeed;
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
-#include "WalletWizard.h"
#include "PageWalletSeed.h"
#include "ui_PageWalletSeed.h"
#include <QDialogButtonBox>
#include <QPushButton>
#include <QShortcut>
+#include <QTimer>
+#include "WalletWizard.h"
#include "constants.h"
#include "Seed.h"
#include "Icons.h"
#ifndef FEATHER_CREATEWALLETSEED_H
#define FEATHER_CREATEWALLETSEED_H
-#include <QLabel>
#include <QWizardPage>
-#include <QWidget>
-#include "utils/Utils.h"
+#include "utils/Seed.h"
+
+class WizardFields;
namespace Ui {
class PageWalletSeed;
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2024 The Monero Project
-#include "utils/Utils.h"
-
#include "WalletWizard.h"
+
+#include <QPushButton>
+
#include "PageMenu.h"
#include "PageOpenWallet.h"
#include "PagePlugins.h"
#include "PageNetworkWebsocket.h"
#include "constants.h"
#include "WindowManager.h"
-
-#include <QLineEdit>
-#include <QVBoxLayout>
-#include <QScreen>
+#include "utils/AppData.h"
WalletWizard::WalletWizard(QWidget *parent)
: QWizard(parent)
#define FEATHER_WALLETWIZARD_H
#include <QWizard>
-#include <QLabel>
-#include <QRadioButton>
#include "model/WalletKeysFilesModel.h"
#include "utils/RestoreHeightLookup.h"
#define FEATHER_OFFLINETXSIGNINGWIZARD_H
#include <QWizard>
-#include "Wallet.h"
-
#include <QFileDialog>
+
+#include "Wallet.h"
#include "qrcode/scanner/QrCodeScanWidget.h"
struct TxWizardFields {
void initializePage() override;
bool validatePage() override;
bool isComplete() const override;
- bool openFile(std::string &data);
private slots:
void onScanFinished(bool success);
#include "OfflineTxSigningWizard.h"
#include <QCheckBox>
-#include <QFileDialog>
#include "utils/config.h"
#include "utils/Icons.h"
void importFromStr(const std::string &data) override;
private:
- void onSuccess();
bool proceed();
};
#include <QFileDialog>
#include "dialog/TxConfAdvDialog.h"
-#include "utils/config.h"
#include "utils/Icons.h"
#include "utils/Utils.h"
#include "dialog/TxConfDialog.h"
#include "dialog/TxConfAdvDialog.h"
-#include "utils/config.h"
#include "utils/Icons.h"
#include "utils/Utils.h"