1
0

qml: PIN protect wallet seed display

This commit is contained in:
Sander van Grieken
2023-03-16 11:45:28 +01:00
parent 6d67f51e44
commit 46d5fdbc86
2 changed files with 27 additions and 6 deletions

View File

@@ -259,8 +259,12 @@ Pane {
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
onClicked: { onClicked: {
seedText.visible = true if (showSeedText.visible) {
showSeedText.visible = false Daemon.currentWallet.requestShowSeed()
} else {
seedText.visible = false
showSeedText.visible = true
}
} }
} }
} }
@@ -590,6 +594,10 @@ Pane {
function onBalanceChanged() { function onBalanceChanged() {
piechart.updateSlices() piechart.updateSlices()
} }
function onSeedRetrieved() {
seedText.visible = true
showSeedText.visible = false
}
} }
Component { Component {

View File

@@ -71,6 +71,7 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
otpSuccess = pyqtSignal() otpSuccess = pyqtSignal()
otpFailed = pyqtSignal([str,str], arguments=['code','message']) otpFailed = pyqtSignal([str,str], arguments=['code','message'])
peersUpdated = pyqtSignal() peersUpdated = pyqtSignal()
seedRetrieved = pyqtSignal()
_network_signal = pyqtSignal(str, object) _network_signal = pyqtSignal(str, object)
@@ -97,6 +98,7 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
self._lightningcanreceive = QEAmount() self._lightningcanreceive = QEAmount()
self._lightningcansend = QEAmount() self._lightningcansend = QEAmount()
self._seed = ''
self.tx_notification_queue = queue.Queue() self.tx_notification_queue = queue.Queue()
self.tx_notification_last_time = 0 self.tx_notification_last_time = 0
@@ -330,10 +332,7 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
@pyqtProperty(str, notify=dataChanged) @pyqtProperty(str, notify=dataChanged)
def seed(self): def seed(self):
try: return self._seed
return self.wallet.get_seed(self.password)
except:
return ''
@pyqtProperty(str, notify=dataChanged) @pyqtProperty(str, notify=dataChanged)
def txinType(self): def txinType(self):
@@ -736,3 +735,17 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
return True return True
except Exception as e: except Exception as e:
return False return False
@pyqtSlot()
def requestShowSeed(self):
self.retrieve_seed()
@auth_protect
def retrieve_seed(self):
try:
self._seed = self.wallet.get_seed(self.password)
self.seedRetrieved.emit()
except:
self._seed = ''
self.dataChanged.emit()