tthrottle send_requests - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit d61ccd4275c800e3c142ba8913e361ec1b923811 DIR parent 0b4f64a7b95e73fa69ec75414b1b811aef909495 HTML Author: ThomasV <thomasv@electrum.org> Date: Wed, 9 Nov 2016 13:23:10 +0100 tthrottle send_requests Diffstat: M lib/interface.py | 11 ++++++----- M lib/wallet.py | 2 ++ 2 files changed, 8 insertions(+), 5 deletions(-) --- DIR diff --git a/lib/interface.py b/lib/interface.py t@@ -258,19 +258,20 @@ class Interface(util.PrintError): self.unsent_requests.append(args) def send_requests(self): - '''Sends all queued requests. Returns False on failure.''' + '''Sends queued requests. Returns False on failure.''' make_dict = lambda (m, p, i): {'method': m, 'params': p, 'id': i} - wire_requests = map(make_dict, self.unsent_requests) + n = 100 - len(self.unanswered_requests) + wire_requests = self.unsent_requests[0:n] try: - self.pipe.send_all(wire_requests) + self.pipe.send_all(map(make_dict, wire_requests)) except socket.error, e: self.print_error("socket error:", e) return False - for request in self.unsent_requests: + self.unsent_requests = self.unsent_requests[n:] + for request in wire_requests: if self.debug: self.print_error("-->", request) self.unanswered_requests[request[2]] = request - self.unsent_requests = [] return True def ping_required(self): DIR diff --git a/lib/wallet.py b/lib/wallet.py t@@ -774,6 +774,8 @@ class Abstract_Wallet(PrintError): from util import format_time if conf == 0: tx = self.transactions.get(tx_hash) + if not tx: + return 3, 'unknown' is_final = tx and tx.is_final() fee = self.tx_fees.get(tx_hash) if fee and self.network and self.network.dynfee(0):