tmove list_channels to commands.py - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 9451ca9568b2b1f966dbf5784258e29e656b629e DIR parent 238fb46d878149b03ffc7e4b530cee0a22d8ebd2 HTML Author: ThomasV <thomasv@electrum.org> Date: Thu, 20 Feb 2020 10:30:30 +0100 move list_channels to commands.py Diffstat: M electrum/commands.py | 18 +++++++++++++++++- M electrum/lnworker.py | 19 +------------------ 2 files changed, 18 insertions(+), 19 deletions(-) --- DIR diff --git a/electrum/commands.py b/electrum/commands.py t@@ -956,7 +956,23 @@ class Commands: @command('w') async def list_channels(self, wallet: Abstract_Wallet = None): - return list(wallet.lnworker.list_channels()) + # we output the funding_outpoint instead of the channel_id because lnd uses channel_point (funding outpoint) to identify channels + from .lnutil import LOCAL, REMOTE, format_short_channel_id + encoder = util.MyEncoder() + l = list(wallet.lnworker.channels.items()) + return [ + { + 'local_htlcs': json.loads(encoder.encode(chan.hm.log[LOCAL])), + 'remote_htlcs': json.loads(encoder.encode(chan.hm.log[REMOTE])), + 'channel_id': format_short_channel_id(chan.short_channel_id) if chan.short_channel_id else None, + 'full_channel_id': bh2u(chan.channel_id), + 'channel_point': chan.funding_outpoint.to_str(), + 'state': chan.get_state().name, + 'remote_pubkey': bh2u(chan.node_id), + 'local_balance': chan.balance(LOCAL)//1000, + 'remote_balance': chan.balance(REMOTE)//1000, + } for channel_id, chan in l + ] @command('wn') async def dumpgraph(self, wallet: Abstract_Wallet = None): DIR diff --git a/electrum/lnworker.py b/electrum/lnworker.py t@@ -51,7 +51,7 @@ from .lnutil import (Outpoint, LNPeerAddr, generate_keypair, LnKeyFamily, LOCAL, REMOTE, UnknownPaymentHash, MIN_FINAL_CLTV_EXPIRY_FOR_INVOICE, NUM_MAX_EDGES_IN_PAYMENT_PATH, SENT, RECEIVED, HTLCOwner, - UpdateAddHtlc, Direction, LnLocalFeatures, format_short_channel_id, + UpdateAddHtlc, Direction, LnLocalFeatures, ShortChannelID, PaymentAttemptLog, PaymentAttemptFailureDetails) from .lnutil import ln_dummy_address from .transaction import PartialTxOutput, PartialTransaction, PartialTxInput t@@ -1171,23 +1171,6 @@ class LNWallet(LNWorker): with self.lock: return Decimal(max(chan.available_to_spend(REMOTE) if chan.is_open() else 0 for chan in self.channels.values()))/1000 - def list_channels(self): - encoder = MyEncoder() - with self.lock: - # we output the funding_outpoint instead of the channel_id because lnd uses channel_point (funding outpoint) to identify channels - for channel_id, chan in self.channels.items(): - yield { - 'local_htlcs': json.loads(encoder.encode(chan.hm.log[LOCAL])), - 'remote_htlcs': json.loads(encoder.encode(chan.hm.log[REMOTE])), - 'channel_id': format_short_channel_id(chan.short_channel_id) if chan.short_channel_id else None, - 'full_channel_id': bh2u(chan.channel_id), - 'channel_point': chan.funding_outpoint.to_str(), - 'state': chan.get_state().name, - 'remote_pubkey': bh2u(chan.node_id), - 'local_balance': chan.balance(LOCAL)//1000, - 'remote_balance': chan.balance(REMOTE)//1000, - } - async def close_channel(self, chan_id): chan = self.channels[chan_id] peer = self.peers[chan.node_id]