Browse Source

fee-slider: fix dialog crashes for float pos values

patch-4
bitromortac 4 years ago
committed by ThomasV
parent
commit
08ec368baf
  1. 10
      electrum/gui/kivy/uix/dialogs/lightning_channels.py
  2. 2
      electrum/simple_config.py

10
electrum/gui/kivy/uix/dialogs/lightning_channels.py

@ -1,10 +1,9 @@
import asyncio import asyncio
from typing import TYPE_CHECKING, Optional, Tuple from typing import TYPE_CHECKING, Optional, Union
from kivy.lang import Builder from kivy.lang import Builder
from kivy.factory import Factory from kivy.factory import Factory
from kivy.uix.popup import Popup from kivy.uix.popup import Popup
from kivy.clock import Clock
from .fee_dialog import FeeDialog from .fee_dialog import FeeDialog
from electrum.util import bh2u from electrum.util import bh2u
@ -13,7 +12,7 @@ from electrum.lnutil import LOCAL, REMOTE, format_short_channel_id
from electrum.lnchannel import AbstractChannel, Channel from electrum.lnchannel import AbstractChannel, Channel
from electrum.gui.kivy.i18n import _ from electrum.gui.kivy.i18n import _
from .question import Question from .question import Question
from electrum.transaction import PartialTxOutput, PartialTransaction from electrum.transaction import PartialTxOutput
from electrum.util import NotEnoughFunds, NoDynamicFeeEstimates, format_fee_satoshis from electrum.util import NotEnoughFunds, NoDynamicFeeEstimates, format_fee_satoshis
from electrum.lnutil import ln_dummy_address from electrum.lnutil import ln_dummy_address
@ -635,6 +634,7 @@ class SwapDialog(Factory.Popup):
self.send_amount: Optional[int] = None self.send_amount: Optional[int] = None
self.receive_amount: Optional[int] = None self.receive_amount: Optional[int] = None
self.tx = None # only for forward swap self.tx = None # only for forward swap
self.is_reverse = None
# init swaps and sliders # init swaps and sliders
asyncio.run(self.swap_manager.get_pairs()) asyncio.run(self.swap_manager.get_pairs())
@ -676,7 +676,7 @@ class SwapDialog(Factory.Popup):
self.ids.fee_rate.text = f'{fee_per_b} sat/B' self.ids.fee_rate.text = f'{fee_per_b} sat/B'
self.ids.fee_estimate.text = msg self.ids.fee_estimate.text = msg
def update_tx(self, onchain_amount: int): def update_tx(self, onchain_amount: Union[int, str]):
"""Updates the transaction associated with a forward swap.""" """Updates the transaction associated with a forward swap."""
if onchain_amount is None: if onchain_amount is None:
self.tx = None self.tx = None
@ -688,7 +688,7 @@ class SwapDialog(Factory.Popup):
self.tx = self.app.wallet.make_unsigned_transaction( self.tx = self.app.wallet.make_unsigned_transaction(
coins=coins, coins=coins,
outputs=outputs) outputs=outputs)
except (NotEnoughFunds, NoDynamicFeeEstimates) as e: except (NotEnoughFunds, NoDynamicFeeEstimates):
self.tx = None self.tx = None
self.ids.ok_button.disabled = True self.ids.ok_button.disabled = True

2
electrum/simple_config.py

@ -325,7 +325,7 @@ class SimpleConfig(Logger):
slider_pos = max(slider_pos, 0) slider_pos = max(slider_pos, 0)
slider_pos = min(slider_pos, len(FEE_ETA_TARGETS)) slider_pos = min(slider_pos, len(FEE_ETA_TARGETS))
if slider_pos < len(FEE_ETA_TARGETS): if slider_pos < len(FEE_ETA_TARGETS):
num_blocks = FEE_ETA_TARGETS[slider_pos] num_blocks = FEE_ETA_TARGETS[int(slider_pos)]
fee = self.eta_target_to_fee(num_blocks) fee = self.eta_target_to_fee(num_blocks)
else: else:
fee = self.eta_target_to_fee(1) fee = self.eta_target_to_fee(1)

Loading…
Cancel
Save