From 253907fb606f131a9cbd76743b137d744421b2f3 Mon Sep 17 00:00:00 2001
From: ThomasV <thomasv@electrum.org>
Date: Thu, 4 Mar 2021 08:50:22 +0100
Subject: [PATCH] lnworker: move buckets logic inside first branch of if
 statement (refactoring commit)

---
 electrum/lnworker.py | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/electrum/lnworker.py b/electrum/lnworker.py
index d888aef1b..88ad30312 100644
--- a/electrum/lnworker.py
+++ b/electrum/lnworker.py
@@ -1378,14 +1378,14 @@ class LNWallet(LNWorker):
                 self.logger.info(f"trying split configuration: {s[0].values()} rating: {s[1]}")
                 routes = []
                 try:
-                    buckets = defaultdict(list)
-                    for chan_id, part_amount_msat in s[0].items():
-                        chan = self.channels[chan_id]
-                        if part_amount_msat:
-                            buckets[chan.node_id].append((chan_id, part_amount_msat))
-                    for node_id, bucket in buckets.items():
-                        bucket_amount_msat = sum([x[1] for x in bucket])
-                        if not self.channel_db:
+                    if not self.channel_db:
+                        buckets = defaultdict(list)
+                        for chan_id, part_amount_msat in s[0].items():
+                            chan = self.channels[chan_id]
+                            if part_amount_msat:
+                                buckets[chan.node_id].append((chan_id, part_amount_msat))
+                        for node_id, bucket in buckets.items():
+                            bucket_amount_msat = sum([x[1] for x in bucket])
                             trampoline_onion, trampoline_fee, bucket_amount_with_fees, bucket_cltv_delta = create_trampoline_route_and_onion(
                                 amount_msat=amount_msat,
                                 bucket_amount_msat=bucket_amount_msat,
@@ -1425,8 +1425,9 @@ class LNWallet(LNWorker):
                             if trampoline_fee > 0:
                                 self.logger.info('not enough margin to pay trampoline fee')
                                 raise NoPathFound()
-                        else:
-                            for chan_id, part_amount_msat in bucket:
+                    else:
+                        for chan_id, part_amount_msat in s[0].items():
+                            if part_amount_msat:
                                 channel = self.channels[chan_id]
                                 route = self.create_route_for_payment(
                                     amount_msat=part_amount_msat,