itconfig: make sure fee_per_kb() returns Optional[int] - electrum - Electrum Bitcoin wallet Err parazyd.org 70 hgit clone https://git.parazyd.org/electrum URL:https://git.parazyd.org/electrum parazyd.org 70 1Log /git/electrum/log.gph parazyd.org 70 1Files /git/electrum/files.gph parazyd.org 70 1Refs /git/electrum/refs.gph parazyd.org 70 1Submodules /git/electrum/file/.gitmodules.gph parazyd.org 70 i--- Err parazyd.org 70 1commit 547b231b8000ad96ed8ae3af0f8b6040e7422cd6 /git/electrum/commit/547b231b8000ad96ed8ae3af0f8b6040e7422cd6.gph parazyd.org 70 1parent ef84716e8b2675a144c2f6dcc439c70e0bfe218b /git/electrum/commit/ef84716e8b2675a144c2f6dcc439c70e0bfe218b.gph parazyd.org 70 hAuthor: SomberNight URL:mailto:somber.night@protonmail.com parazyd.org 70 iDate: Thu, 15 Oct 2020 19:50:59 +0200 Err parazyd.org 70 i Err parazyd.org 70 iconfig: make sure fee_per_kb() returns Optional[int] Err parazyd.org 70 i Err parazyd.org 70 ielectrs sends fee histogram with float feerates Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i M electrum/simple_config.py | 13 +++++++++---- Err parazyd.org 70 i Err parazyd.org 70 i1 file changed, 9 insertions(+), 4 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/electrum/simple_config.py b/electrum/simple_config.py /git/electrum/file/electrum/simple_config.py.gph parazyd.org 70 it@@ -5,7 +5,7 @@ import os Err parazyd.org 70 i import stat Err parazyd.org 70 i import ssl Err parazyd.org 70 i from decimal import Decimal Err parazyd.org 70 i-from typing import Union, Optional Err parazyd.org 70 i+from typing import Union, Optional, Dict Err parazyd.org 70 i from numbers import Real Err parazyd.org 70 i Err parazyd.org 70 i from copy import deepcopy Err parazyd.org 70 it@@ -65,7 +65,7 @@ class SimpleConfig(Logger): Err parazyd.org 70 i # a thread-safe way. Err parazyd.org 70 i self.lock = threading.RLock() Err parazyd.org 70 i Err parazyd.org 70 i- self.mempool_fees = {} Err parazyd.org 70 i+ self.mempool_fees = {} # type: Dict[Union[float, int], int] Err parazyd.org 70 i self.fee_estimates = {} Err parazyd.org 70 i self.fee_estimates_last_updated = {} Err parazyd.org 70 i self.last_time_fee_estimates_requested = 0 # zero ensures immediate fees Err parazyd.org 70 it@@ -341,6 +341,8 @@ class SimpleConfig(Logger): Err parazyd.org 70 i fee = int(fee) Err parazyd.org 70 i else: Err parazyd.org 70 i fee = self.fee_estimates.get(num_blocks) Err parazyd.org 70 i+ if fee is not None: Err parazyd.org 70 i+ fee = int(fee) Err parazyd.org 70 i return fee Err parazyd.org 70 i Err parazyd.org 70 i def fee_to_depth(self, target_fee: Real) -> int: Err parazyd.org 70 it@@ -374,9 +376,10 @@ class SimpleConfig(Logger): Err parazyd.org 70 i return 0 Err parazyd.org 70 i # add one sat/byte as currently that is Err parazyd.org 70 i # the max precision of the histogram Err parazyd.org 70 i+ # (well, in case of ElectrumX at least. not for electrs) Err parazyd.org 70 i fee += 1 Err parazyd.org 70 i # convert to sat/kbyte Err parazyd.org 70 i- return fee * 1000 Err parazyd.org 70 i+ return int(fee * 1000) Err parazyd.org 70 i Err parazyd.org 70 i def depth_target(self, slider_pos): Err parazyd.org 70 i slider_pos = max(slider_pos, 0) Err parazyd.org 70 it@@ -514,7 +517,7 @@ class SimpleConfig(Logger): Err parazyd.org 70 i fee_rate = FEERATE_STATIC_VALUES[slider_pos] Err parazyd.org 70 i return fee_rate Err parazyd.org 70 i Err parazyd.org 70 i- def fee_per_kb(self, dyn: bool=None, mempool: bool=None, fee_level: float=None) -> Union[int, None]: Err parazyd.org 70 i+ def fee_per_kb(self, dyn: bool=None, mempool: bool=None, fee_level: float=None) -> Optional[int]: Err parazyd.org 70 i """Returns sat/kvB fee to pay for a txn. Err parazyd.org 70 i Note: might return None. Err parazyd.org 70 i Err parazyd.org 70 it@@ -538,6 +541,8 @@ class SimpleConfig(Logger): Err parazyd.org 70 i fee_rate = self.eta_to_fee(self.get_fee_level()) Err parazyd.org 70 i else: Err parazyd.org 70 i fee_rate = self.get('fee_per_kb', FEERATE_FALLBACK_STATIC_FEE) Err parazyd.org 70 i+ if fee_rate is not None: Err parazyd.org 70 i+ fee_rate = int(fee_rate) Err parazyd.org 70 i return fee_rate Err parazyd.org 70 i Err parazyd.org 70 i def fee_per_byte(self): Err parazyd.org 70 .