qml: add some type hints to qetxfinalizer
This commit is contained in:
@@ -15,6 +15,7 @@ from electrum.bitcoin import DummyAddress
|
|||||||
from electrum.lnworker import hardcoded_trampoline_nodes
|
from electrum.lnworker import hardcoded_trampoline_nodes
|
||||||
from electrum.logging import get_logger
|
from electrum.logging import get_logger
|
||||||
from electrum.fee_policy import FeePolicy
|
from electrum.fee_policy import FeePolicy
|
||||||
|
from electrum.transaction import PartialTransaction
|
||||||
|
|
||||||
from .auth import AuthMixin, auth_protect
|
from .auth import AuthMixin, auth_protect
|
||||||
from .qetxfinalizer import QETxFinalizer
|
from .qetxfinalizer import QETxFinalizer
|
||||||
@@ -219,7 +220,7 @@ class QEChannelOpener(QObject, AuthMixin):
|
|||||||
self.finalizerChanged.emit()
|
self.finalizerChanged.emit()
|
||||||
|
|
||||||
@auth_protect(message=_('Open Lightning channel?'))
|
@auth_protect(message=_('Open Lightning channel?'))
|
||||||
def do_open_channel(self, funding_tx, conn_str, password):
|
def do_open_channel(self, funding_tx: PartialTransaction, conn_str, password):
|
||||||
"""
|
"""
|
||||||
conn_str: a connection string that extract_nodeid can parse, i.e. cannot be a trampoline name
|
conn_str: a connection string that extract_nodeid can parse, i.e. cannot be a trampoline name
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import copy
|
|||||||
from enum import IntEnum
|
from enum import IntEnum
|
||||||
import threading
|
import threading
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
from typing import Optional, TYPE_CHECKING
|
from typing import Optional, TYPE_CHECKING, Callable
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
from PyQt6.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject, pyqtEnum
|
from PyQt6.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject, pyqtEnum
|
||||||
@@ -55,7 +55,7 @@ class FeeSlider(QObject):
|
|||||||
self._wallet = None # type: Optional[QEWallet]
|
self._wallet = None # type: Optional[QEWallet]
|
||||||
self._sliderSteps = 0
|
self._sliderSteps = 0
|
||||||
self._sliderPos = 0
|
self._sliderPos = 0
|
||||||
self._fee_policy = None
|
self._fee_policy = None # type: Optional[FeePolicy]
|
||||||
self._target = ''
|
self._target = ''
|
||||||
self._config = None # type: Optional[SimpleConfig]
|
self._config = None # type: Optional[SimpleConfig]
|
||||||
|
|
||||||
@@ -150,7 +150,7 @@ class TxFeeSlider(FeeSlider):
|
|||||||
self._fee = QEAmount()
|
self._fee = QEAmount()
|
||||||
self._feeRate = ''
|
self._feeRate = ''
|
||||||
self._rbf = False
|
self._rbf = False
|
||||||
self._tx = None
|
self._tx = None # type: Optional[PartialTransaction]
|
||||||
self._inputs = []
|
self._inputs = []
|
||||||
self._outputs = []
|
self._outputs = []
|
||||||
self._finalized_txid = ''
|
self._finalized_txid = ''
|
||||||
@@ -244,7 +244,7 @@ class TxFeeSlider(FeeSlider):
|
|||||||
def doUpdate(self):
|
def doUpdate(self):
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def update_from_tx(self, tx):
|
def update_from_tx(self, tx: PartialTransaction):
|
||||||
tx_size = tx.estimated_size()
|
tx_size = tx.estimated_size()
|
||||||
fee = tx.get_fee()
|
fee = tx.get_fee()
|
||||||
feerate = Decimal(fee) / tx_size # sat/byte
|
feerate = Decimal(fee) / tx_size # sat/byte
|
||||||
@@ -256,7 +256,7 @@ class TxFeeSlider(FeeSlider):
|
|||||||
self.update_inputs_from_tx(tx)
|
self.update_inputs_from_tx(tx)
|
||||||
self.update_outputs_from_tx(tx)
|
self.update_outputs_from_tx(tx)
|
||||||
|
|
||||||
def update_inputs_from_tx(self, tx):
|
def update_inputs_from_tx(self, tx: Transaction):
|
||||||
inputs = []
|
inputs = []
|
||||||
for inp in tx.inputs():
|
for inp in tx.inputs():
|
||||||
# addr = self.wallet.adb.get_txin_address(txin)
|
# addr = self.wallet.adb.get_txin_address(txin)
|
||||||
@@ -277,7 +277,7 @@ class TxFeeSlider(FeeSlider):
|
|||||||
})
|
})
|
||||||
self.inputs = inputs
|
self.inputs = inputs
|
||||||
|
|
||||||
def update_outputs_from_tx(self, tx):
|
def update_outputs_from_tx(self, tx: PartialTransaction):
|
||||||
sm = self._wallet.wallet.lnworker.swap_manager if self._wallet.wallet.lnworker else None
|
sm = self._wallet.wallet.lnworker.swap_manager if self._wallet.wallet.lnworker else None
|
||||||
|
|
||||||
outputs = []
|
outputs = []
|
||||||
@@ -315,7 +315,13 @@ class QETxFinalizer(TxFeeSlider):
|
|||||||
finished = pyqtSignal([bool, bool, bool], arguments=['signed', 'saved', 'complete'])
|
finished = pyqtSignal([bool, bool, bool], arguments=['signed', 'saved', 'complete'])
|
||||||
signError = pyqtSignal([str], arguments=['message'])
|
signError = pyqtSignal([str], arguments=['message'])
|
||||||
|
|
||||||
def __init__(self, parent=None, *, make_tx=None, accept=None):
|
def __init__(
|
||||||
|
self,
|
||||||
|
parent=None,
|
||||||
|
*,
|
||||||
|
make_tx: Callable[[int, FeePolicy], PartialTransaction] = None,
|
||||||
|
accept: Callable[[PartialTransaction], None] = None,
|
||||||
|
):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self.f_make_tx = make_tx
|
self.f_make_tx = make_tx
|
||||||
self.f_accept = accept
|
self.f_accept = accept
|
||||||
|
|||||||
@@ -637,14 +637,14 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
|
|||||||
|
|
||||||
# TODO: properly catch server side errors, e.g. bad-txns-inputs-missingorspent
|
# TODO: properly catch server side errors, e.g. bad-txns-inputs-missingorspent
|
||||||
|
|
||||||
def save_tx(self, tx: 'PartialTransaction'):
|
def save_tx(self, tx: 'PartialTransaction') -> bool:
|
||||||
assert tx
|
assert tx
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not self.wallet.adb.add_transaction(tx):
|
if not self.wallet.adb.add_transaction(tx):
|
||||||
self.saveTxError.emit(tx.txid(), 'conflict',
|
self.saveTxError.emit(tx.txid(), 'conflict',
|
||||||
_("Transaction could not be saved.") + "\n" + _("It conflicts with current history."))
|
_("Transaction could not be saved.") + "\n" + _("It conflicts with current history."))
|
||||||
return
|
return False
|
||||||
self.wallet.save_db()
|
self.wallet.save_db()
|
||||||
self.saveTxSuccess.emit(tx.txid())
|
self.saveTxSuccess.emit(tx.txid())
|
||||||
self.historyModel.initModel(True)
|
self.historyModel.initModel(True)
|
||||||
|
|||||||
Reference in New Issue
Block a user