config: (trivial) add some type hints and rm unused variable
This commit is contained in:
@@ -29,7 +29,7 @@ import sys
|
|||||||
import traceback
|
import traceback
|
||||||
import asyncio
|
import asyncio
|
||||||
import socket
|
import socket
|
||||||
from typing import Tuple, Union, List, TYPE_CHECKING, Optional, Set, NamedTuple, Any, Sequence
|
from typing import Tuple, Union, List, TYPE_CHECKING, Optional, Set, NamedTuple, Any, Sequence, Dict
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from ipaddress import IPv4Network, IPv6Network, ip_address, IPv6Address, IPv4Address
|
from ipaddress import IPv4Network, IPv6Network, ip_address, IPv6Address, IPv4Address
|
||||||
import itertools
|
import itertools
|
||||||
@@ -371,7 +371,7 @@ class Interface(Logger):
|
|||||||
self.tip_header = None
|
self.tip_header = None
|
||||||
self.tip = 0
|
self.tip = 0
|
||||||
|
|
||||||
self.fee_estimates_eta = {}
|
self.fee_estimates_eta = {} # type: Dict[int, int]
|
||||||
|
|
||||||
# Dump network messages (only for this interface). Set at runtime from the console.
|
# Dump network messages (only for this interface). Set at runtime from the console.
|
||||||
self.debug = False
|
self.debug = False
|
||||||
@@ -683,6 +683,7 @@ class Interface(Logger):
|
|||||||
for nblock_target, task in fee_tasks:
|
for nblock_target, task in fee_tasks:
|
||||||
fee = task.result()
|
fee = task.result()
|
||||||
if fee < 0: continue
|
if fee < 0: continue
|
||||||
|
assert isinstance(fee, int)
|
||||||
self.fee_estimates_eta[nblock_target] = fee
|
self.fee_estimates_eta[nblock_target] = fee
|
||||||
self.network.update_fee_estimates()
|
self.network.update_fee_estimates()
|
||||||
await asyncio.sleep(60)
|
await asyncio.sleep(60)
|
||||||
|
|||||||
@@ -534,7 +534,7 @@ class Network(Logger, NetworkRetryManager[ServerAddr]):
|
|||||||
return {}
|
return {}
|
||||||
return self.interface.fee_estimates_eta
|
return self.interface.fee_estimates_eta
|
||||||
|
|
||||||
def update_fee_estimates(self, *, fee_est: Dict = None):
|
def update_fee_estimates(self, *, fee_est: Dict[int, int] = None):
|
||||||
if fee_est is None:
|
if fee_est is None:
|
||||||
fee_est = self.get_fee_estimates()
|
fee_est = self.get_fee_estimates()
|
||||||
for nblock_target, fee in fee_est.items():
|
for nblock_target, fee in fee_est.items():
|
||||||
|
|||||||
@@ -66,8 +66,7 @@ class SimpleConfig(Logger):
|
|||||||
self.lock = threading.RLock()
|
self.lock = threading.RLock()
|
||||||
|
|
||||||
self.mempool_fees = None # type: Optional[Sequence[Tuple[Union[float, int], int]]]
|
self.mempool_fees = None # type: Optional[Sequence[Tuple[Union[float, int], int]]]
|
||||||
self.fee_estimates = {}
|
self.fee_estimates = {} # type: Dict[int, int]
|
||||||
self.fee_estimates_last_updated = {}
|
|
||||||
self.last_time_fee_estimates_requested = 0 # zero ensures immediate fees
|
self.last_time_fee_estimates_requested = 0 # zero ensures immediate fees
|
||||||
|
|
||||||
# The following two functions are there for dependency injection when
|
# The following two functions are there for dependency injection when
|
||||||
@@ -517,10 +516,10 @@ class SimpleConfig(Logger):
|
|||||||
def static_fee(self, i):
|
def static_fee(self, i):
|
||||||
return FEERATE_STATIC_VALUES[i]
|
return FEERATE_STATIC_VALUES[i]
|
||||||
|
|
||||||
def static_fee_index(self, value) -> int:
|
def static_fee_index(self, fee_per_kb: Optional[int]) -> int:
|
||||||
if value is None:
|
if fee_per_kb is None:
|
||||||
raise TypeError('static fee cannot be None')
|
raise TypeError('static fee cannot be None')
|
||||||
dist = list(map(lambda x: abs(x - value), FEERATE_STATIC_VALUES))
|
dist = list(map(lambda x: abs(x - fee_per_kb), FEERATE_STATIC_VALUES))
|
||||||
return min(range(len(dist)), key=dist.__getitem__)
|
return min(range(len(dist)), key=dist.__getitem__)
|
||||||
|
|
||||||
def has_fee_etas(self):
|
def has_fee_etas(self):
|
||||||
@@ -611,9 +610,10 @@ class SimpleConfig(Logger):
|
|||||||
fee_per_byte = quantize_feerate(fee_per_byte)
|
fee_per_byte = quantize_feerate(fee_per_byte)
|
||||||
return round(fee_per_byte * size)
|
return round(fee_per_byte * size)
|
||||||
|
|
||||||
def update_fee_estimates(self, key, value):
|
def update_fee_estimates(self, nblock_target: int, fee_per_kb: int):
|
||||||
self.fee_estimates[key] = value
|
assert isinstance(nblock_target, int), f"expected int, got {nblock_target!r}"
|
||||||
self.fee_estimates_last_updated[key] = time.time()
|
assert isinstance(fee_per_kb, int), f"expected int, got {fee_per_kb!r}"
|
||||||
|
self.fee_estimates[nblock_target] = fee_per_kb
|
||||||
|
|
||||||
def is_fee_estimates_update_required(self):
|
def is_fee_estimates_update_required(self):
|
||||||
"""Checks time since last requested and updated fee estimates.
|
"""Checks time since last requested and updated fee estimates.
|
||||||
|
|||||||
Reference in New Issue
Block a user