mirror of
https://github.com/logos-blockchain/lez-programs.git
synced 2026-08-27 15:11:17 +00:00
46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
#ifndef TOKEN_UI_BACKEND_H
|
|
#define TOKEN_UI_BACKEND_H
|
|
|
|
#include <memory>
|
|
|
|
#include <QObject>
|
|
|
|
#include "rep_TokenUiBackend_source.h"
|
|
|
|
#include "WalletAccountModel.h"
|
|
|
|
class LogosAPI;
|
|
class LogosWalletProvider;
|
|
class WalletController;
|
|
|
|
// Token UI backend. Wallet lifecycle and account state are delegated to the
|
|
// repository's shared WalletController; this class only adapts that state to
|
|
// the TokenUiBackend QtRO contract.
|
|
class TokenUiBackend : public TokenUiBackendSimpleSource {
|
|
Q_OBJECT
|
|
Q_PROPERTY(WalletAccountModel* accountModel READ accountModel CONSTANT)
|
|
|
|
public:
|
|
explicit TokenUiBackend(LogosAPI* logosAPI = nullptr, QObject* parent = nullptr)
|
|
;
|
|
~TokenUiBackend() override;
|
|
|
|
WalletAccountModel* accountModel() const;
|
|
|
|
public slots:
|
|
QString createAccountPublic() override;
|
|
QString createAccountPrivate() override;
|
|
QString createNewDefault(QString password) override;
|
|
bool openExisting() override;
|
|
void disconnectWallet() override;
|
|
|
|
private:
|
|
void syncWalletState();
|
|
|
|
LogosAPI* m_logosAPI;
|
|
std::unique_ptr<LogosWalletProvider> m_wallet;
|
|
std::unique_ptr<WalletController> m_walletController;
|
|
};
|
|
|
|
#endif // TOKEN_UI_BACKEND_H
|