Skip to content

Commit be612b0

Browse files
committed
qml: Implement createSingleSigWallet
1 parent 765f608 commit be612b0

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

Diff for: src/qml/walletqmlcontroller.cpp

+17
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
#include <qml/walletqmlcontroller.h>
66

77
#include <interfaces/node.h>
8+
#include <support/allocators/secure.h>
9+
#include <wallet/walletutil.h>
810
#include <util/threadnames.h>
911

1012
#include <QTimer>
@@ -66,6 +68,21 @@ void WalletQmlController::unloadWallets()
6668
m_wallets.clear();
6769
}
6870

71+
void WalletQmlController::createSingleSigWallet(const QString &name, const QString &passphrase)
72+
{
73+
const SecureString secure_passphrase{passphrase.toStdString()};
74+
const std::string wallet_name{name.toStdString()};
75+
auto wallet{m_node.walletLoader().createWallet(wallet_name, secure_passphrase, wallet::WALLET_FLAG_DESCRIPTORS, m_warning_messages)};
76+
QMutexLocker locker(&m_wallets_mutex);
77+
if (wallet) {
78+
m_selected_wallet = new WalletQmlModel(std::move(*wallet));
79+
m_wallets.push_back(m_selected_wallet);
80+
Q_EMIT selectedWalletChanged();
81+
} else {
82+
m_error_message = util::ErrorString(wallet);
83+
}
84+
}
85+
6986
void WalletQmlController::handleLoadWallet(std::unique_ptr<interfaces::Wallet> wallet)
7087
{
7188
{

Diff for: src/qml/walletqmlcontroller.h

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class WalletQmlController : public QObject
2525
~WalletQmlController();
2626

2727
Q_INVOKABLE void setSelectedWallet(QString path);
28+
Q_INVOKABLE void createSingleSigWallet(const QString &name, const QString &passphrase);
2829

2930
WalletQmlModel* selectedWallet() const;
3031
void unloadWallets();
@@ -45,6 +46,9 @@ public Q_SLOTS:
4546
QMutex m_wallets_mutex;
4647
std::vector<WalletQmlModel*> m_wallets;
4748
std::unique_ptr<interfaces::Handler> m_handler_load_wallet;
49+
50+
bilingual_str m_error_message;
51+
std::vector<bilingual_str> m_warning_messages;
4852
};
4953

5054
#endif // BITCOIN_QML_WALLETQMLCONTROLLER_H

0 commit comments

Comments
 (0)