qml: first part of partially signing tx while not having txid yet
This commit is contained in:
@@ -310,7 +310,7 @@ class QETxDetails(QObject, QtEventListener):
|
||||
self._short_id = tx_mined_info.short_id() or ""
|
||||
|
||||
@pyqtSlot()
|
||||
def sign_and_broadcast(self):
|
||||
def signAndBroadcast(self):
|
||||
self._sign(broadcast=True)
|
||||
|
||||
@pyqtSlot()
|
||||
@@ -320,20 +320,24 @@ class QETxDetails(QObject, QtEventListener):
|
||||
def _sign(self, broadcast):
|
||||
# TODO: connecting/disconnecting signal handlers here is hmm
|
||||
try:
|
||||
self._wallet.transactionSigned.disconnect(self.onSigned)
|
||||
self._wallet.broadcastSucceeded.disconnect(self.onBroadcastSucceeded)
|
||||
if broadcast:
|
||||
self._wallet.broadcastSucceeded.disconnect(self.onBroadcastSucceeded)
|
||||
self._wallet.broadcastfailed.disconnect(self.onBroadcastFailed)
|
||||
except:
|
||||
pass
|
||||
self._wallet.transactionSigned.connect(self.onSigned)
|
||||
self._wallet.broadcastSucceeded.connect(self.onBroadcastSucceeded)
|
||||
|
||||
if broadcast:
|
||||
self._wallet.broadcastSucceeded.connect(self.onBroadcastSucceeded)
|
||||
self._wallet.broadcastFailed.connect(self.onBroadcastFailed)
|
||||
self._wallet.sign(self._tx, broadcast=broadcast)
|
||||
|
||||
self._wallet.sign(self._tx, broadcast=broadcast, on_success=self.on_signed_tx)
|
||||
# side-effect: signing updates self._tx
|
||||
# we rely on this for broadcast
|
||||
|
||||
def on_signed_tx(self, tx: Transaction):
|
||||
self._logger.debug('on_signed_tx')
|
||||
self.update()
|
||||
|
||||
@pyqtSlot()
|
||||
def broadcast(self):
|
||||
assert self._tx.is_complete()
|
||||
@@ -349,15 +353,6 @@ class QETxDetails(QObject, QtEventListener):
|
||||
|
||||
self._wallet.broadcast(self._tx)
|
||||
|
||||
@pyqtSlot(str)
|
||||
def onSigned(self, txid):
|
||||
if txid != self._txid:
|
||||
return
|
||||
|
||||
self._logger.debug('onSigned')
|
||||
self._wallet.transactionSigned.disconnect(self.onSigned)
|
||||
self.update()
|
||||
|
||||
@pyqtSlot(str)
|
||||
def onBroadcastSucceeded(self, txid):
|
||||
if txid != self._txid:
|
||||
|
||||
Reference in New Issue
Block a user