tfix wallet get_full_history: add onchain tx for channels not opened by us - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 90b228de839d6474f6d23322cd2a80e1da73a254 DIR parent 6004a047053e97b9f613d8329f690d1fd6d920fb HTML Author: ThomasV <thomasv@electrum.org> Date: Fri, 12 Mar 2021 11:40:53 +0100 fix wallet get_full_history: add onchain tx for channels not opened by us Diffstat: M electrum/lnworker.py | 6 +++++- M electrum/wallet.py | 13 +++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) --- DIR diff --git a/electrum/lnworker.py b/electrum/lnworker.py t@@ -804,6 +804,7 @@ class LNWallet(LNWorker): return out def get_onchain_history(self): + current_height = self.wallet.get_local_height() out = {} # add funding events for chan in self.channels.values(): t@@ -820,6 +821,8 @@ class LNWallet(LNWorker): 'direction': 'received', 'timestamp': funding_timestamp, 'fee_msat': None, + 'height': funding_height, + 'confirmations': max(current_height - funding_height + 1, 0), } out[funding_txid] = item item = chan.get_closing_height() t@@ -835,11 +838,12 @@ class LNWallet(LNWorker): 'direction': 'sent', 'timestamp': closing_timestamp, 'fee_msat': None, + 'height': closing_height, + 'confirmations': max(current_height - closing_height + 1, 0), } out[closing_txid] = item # add info about submarine swaps settled_payments = self.get_payments(status='settled') - current_height = self.wallet.get_local_height() for payment_hash_hex, swap in self.swap_manager.swaps.items(): txid = swap.spending_txid if swap.is_reverse else swap.funding_txid if txid is None: DIR diff --git a/electrum/wallet.py b/electrum/wallet.py t@@ -903,18 +903,23 @@ class Abstract_Wallet(AddressSynchronizer, ABC): transactions_tmp = OrderedDictWithIndex() # add on-chain txns onchain_history = self.get_onchain_history(domain=onchain_domain) - lnworker_history = self.lnworker.get_onchain_history() if self.lnworker and include_lightning else {} for tx_item in onchain_history: txid = tx_item['txid'] transactions_tmp[txid] = tx_item - # add lnworker info here - if txid in lnworker_history: - item = lnworker_history[txid] + # add lnworker onchain transactions + lnworker_history = self.lnworker.get_onchain_history() if self.lnworker and include_lightning else {} + for txid, item in lnworker_history.items(): + if txid in transactions_tmp: + tx_item = transactions_tmp[txid] tx_item['group_id'] = item.get('group_id') # for swaps tx_item['label'] = item['label'] tx_item['type'] = item['type'] ln_value = Decimal(item['amount_msat']) / 1000 # for channel open/close tx tx_item['ln_value'] = Satoshis(ln_value) + else: + transactions_tmp[txid] = item + ln_value = Decimal(item['amount_msat']) / 1000 # for channel open/close tx + item['ln_value'] = Satoshis(ln_value) # add lightning_transactions lightning_history = self.lnworker.get_lightning_history() if self.lnworker and include_lightning else {} for tx_item in lightning_history.values():