summaryrefslogtreecommitdiff
path: root/ledger_process.py
diff options
context:
space:
mode:
authoruvok2025-04-18 17:37:57 +0200
committeruvok2025-04-18 17:37:57 +0200
commit07beec3262963c12deaaa89c290d7f6baffea67b (patch)
tree055f30e1301e2bfa279c9a7985599f29a5632e38 /ledger_process.py
parentb5ceacdb258b9f1e8ab2b24dc8da7e3a0521e0e6 (diff)
Extract method
Diffstat (limited to 'ledger_process.py')
-rw-r--r--ledger_process.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/ledger_process.py b/ledger_process.py
index adcaacb..2797c6b 100644
--- a/ledger_process.py
+++ b/ledger_process.py
@@ -46,18 +46,21 @@ class LedgerProcess:
elif action.type == "withdrawal" and action.asset != "EUR":
assert len(actions) == 1
- assert action.amount < 0
- assert action.fee >= 0
+ self._process_withdrawal(action)
- currency = action.asset
- self.external_wallet.setdefault(currency, FIFOQueue())
- self.fifo_queues.setdefault(currency, FIFOQueue())
+ def _process_withdrawal(self, action):
+ assert action.amount < 0
+ assert action.fee >= 0
- t = self.fifo_queues[currency].remove(
- lambda t: t.amount == -action.amount + action.fee
- )
- t.remove_coins(action.fee)
- self.external_wallet[currency].add_trade(t)
+ currency = action.asset
+ self.external_wallet.setdefault(currency, FIFOQueue())
+ self.fifo_queues.setdefault(currency, FIFOQueue())
+
+ t = self.fifo_queues[currency].remove(
+ lambda t: t.amount == -action.amount + action.fee
+ )
+ t.remove_coins(action.fee)
+ self.external_wallet[currency].add_trade(t)
def _process_trade(self, refid: str, trades: List[LedgerAction]):
if len(trades) == 2: # Ensure we have two related rows (EUR + crypto)
@@ -99,7 +102,9 @@ class LedgerProcess:
)
else:
logger.error(f"Trade group doesn't have expected currencies.")
- raise MismatchedTradeError(f"Unexpected trade grouping for refid {refid}")
+ raise MismatchedTradeError(
+ f"Unexpected trade grouping for refid {refid}"
+ )
else:
logger.error(f"Trade group has {len(trades)} trades, expected 2.")
raise MismatchedTradeError(f"Unexpected number of trades for refid {refid}")