Browse Source

qml: PIN protect wallet seed display

master
Sander van Grieken 3 years ago
parent
commit
46d5fdbc86
  1. 12
      electrum/gui/qml/components/WalletDetails.qml
  2. 21
      electrum/gui/qml/qewallet.py

12
electrum/gui/qml/components/WalletDetails.qml

@ -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 {

21
electrum/gui/qml/qewallet.py

@ -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()

Loading…
Cancel
Save