commit 2b73cb3557674af04ea66dd1bfe52f3f0039ea2e
parent 9c724d4de960d44e227881470735fa9875c00d01
Author: lash <dev@holbrook.no>
Date: Thu, 8 Jan 2026 14:39:09 +0100
Preserve correct serial when no entries
Diffstat:
2 files changed, 43 insertions(+), 2 deletions(-)
diff --git a/dummy/usawa/ledger.py b/dummy/usawa/ledger.py
@@ -185,7 +185,7 @@ class Ledger:
self.reset()
self.serial = self.base_serial
self.cur = base
- logg.debug('ledger base {} from topic {}'.format(self.base.hex(), self.topic.hex()))
+ logg.debug('ledger base {} serial {} from topic {}'.format(self.base.hex(), self.serial, self.topic.hex()))
"""Retrieve the serial that will be assigned to the next entry.
@@ -460,13 +460,16 @@ class Ledger:
def apply_tree(self, tree):
start = self.serial
last = 0
+ i = 0
for v in tree.iter(NSPREFIX + 'entry'):
+ i += 1
logg.debug('processing entry {}'.format(v))
o = Entry.from_tree(v, self.uidx, min=self.serial)
self.add_entry(o, modify_tree=False)
if o.serial > last:
last = o.serial
- self.serial = last
+ if i > 0:
+ self.serial = last
logg.info('last entry from tree serial ' + str(self.serial))
diff --git a/dummy/usawa/runnable/view.py b/dummy/usawa/runnable/view.py
@@ -0,0 +1,38 @@
+import os
+import sys
+import logging
+import urllib.parse
+import argparse
+import uuid
+import datetime
+
+from usawa import Ledger, Entry, EntryPart, DemoWallet, UnitIndex, load
+from usawa.constant import CATEGORIES
+from usawa.store import LedgerStore
+from whee.valkey import ValkeyStore
+
+logging.basicConfig(level=logging.DEBUG)
+logg = logging.getLogger()
+
+
+class Context:
+
+ def __init__(self):
+ self.unit = None
+ self.uidx = None
+
+
+argp = argparse.ArgumentParser()
+argp.add_argument('ledger_xml_file', type=str, help='load ledger metadata from XML file')
+arg = argp.parse_args()
+
+ledger = None
+ledger_tree = load(arg.ledger_xml_file)
+uidx = UnitIndex.from_tree(ledger_tree)
+ledger = Ledger.from_tree(ledger_tree, uidx)
+
+db = ValkeyStore('')
+store = LedgerStore(db, ledger)
+pk = store.get_key()
+wallet = DemoWallet(privatekey=pk)
+store.load()