From c999b3a2977929fef19e50e55c6e847531915cc7 Mon Sep 17 00:00:00 2001 From: Sander van Grieken Date: Mon, 28 Feb 2022 19:40:57 +0100 Subject: [PATCH] add Bitcoin QObject for seed generation --- electrum/gui/qml/qeapp.py | 2 ++ electrum/gui/qml/qebitcoin.py | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 electrum/gui/qml/qebitcoin.py diff --git a/electrum/gui/qml/qeapp.py b/electrum/gui/qml/qeapp.py index b8235e820..6f9525345 100644 --- a/electrum/gui/qml/qeapp.py +++ b/electrum/gui/qml/qeapp.py @@ -12,6 +12,7 @@ from .qenetwork import QENetwork from .qewallet import QEWallet from .qeqr import QEQR from .qewalletdb import QEWalletDB +from .qebitcoin import QEBitcoin class ElectrumQmlApplication(QGuiApplication): @@ -30,6 +31,7 @@ class ElectrumQmlApplication(QGuiApplication): qmlRegisterType(QEWalletListModel, 'org.electrum', 1, 0, 'WalletListModel') qmlRegisterType(QEWallet, 'org.electrum', 1, 0, 'Wallet') qmlRegisterType(QEWalletDB, 'org.electrum', 1, 0, 'WalletDB') + qmlRegisterType(QEBitcoin, 'org.electrum', 1, 0, 'Bitcoin') self.engine = QQmlApplicationEngine(parent=self) self.engine.addImportPath('./qml') diff --git a/electrum/gui/qml/qebitcoin.py b/electrum/gui/qml/qebitcoin.py new file mode 100644 index 000000000..06e1eb5e5 --- /dev/null +++ b/electrum/gui/qml/qebitcoin.py @@ -0,0 +1,27 @@ +from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject + +from electrum.logging import get_logger +from electrum import mnemonic + +class QEBitcoin(QObject): + def __init__(self, config, parent=None): + super().__init__(parent) + self.config = config + + _logger = get_logger(__name__) + + generatedSeedChanged = pyqtSignal() + generatedSeed = '' + + @pyqtProperty('QString', notify=generatedSeedChanged) + def generated_seed(self): + return self.generatedSeed + + @pyqtSlot() + @pyqtSlot(str) + @pyqtSlot(str,str) + def generate_seed(self, seed_type='standard', language='en'): + self._logger.debug('generating seed of type ' + str(seed_type)) + self.generatedSeed = mnemonic.Mnemonic(language).make_seed(seed_type=seed_type) + self._logger.debug('seed generated') + self.generatedSeedChanged.emit()