1
0

qml: require authentication for message signing

Requests authentication when trying to sign a message if "Payment
Authentication" is enabled.
This commit is contained in:
f321x
2026-01-20 13:45:39 +01:00
parent 8e5ea8e12d
commit 5d31401211
2 changed files with 13 additions and 4 deletions

View File

@@ -189,8 +189,8 @@ ElDialog {
enabled: _addressMine
icon.source: '../../icons/seal.png'
onClicked: {
var sig = Daemon.currentWallet.signMessage(addressField.text, plaintext.text)
signature.text = sig
Daemon.currentWallet.signMessage(addressField.text, plaintext.text)
// emits messageSigned(sig)
}
}
FlatButton {
@@ -207,7 +207,13 @@ ElDialog {
}
}
}
}
Connections {
target: Daemon.currentWallet
function onMessageSigned(sig) {
signature.text = sig
}
}
Component.onCompleted: {

View File

@@ -78,6 +78,7 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
otpFailed = pyqtSignal([str, str], arguments=['code', 'message'])
peersUpdated = pyqtSignal()
seedRetrieved = pyqtSignal()
messageSigned = pyqtSignal([str], arguments=['signature'])
_network_signal = pyqtSignal(str, object)
@@ -848,10 +849,12 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
def isAddressMine(self, addr):
return self.wallet.is_mine(addr)
@pyqtSlot(str, str, result=str)
@pyqtSlot(str, str)
@auth_protect(message=_("Sign message?"))
def signMessage(self, address, message):
sig = self.wallet.sign_message(address, message, self.password)
return base64.b64encode(sig).decode('ascii')
result = base64.b64encode(sig).decode('ascii')
self.messageSigned.emit(result)
def determine_max(self, *, mktx: Callable[[FeePolicy], PartialTransaction]) -> Tuple[Optional[int], Optional[str]]:
# TODO: merge with SendTab.spend_max() and move to backend wallet