usawa

Unnamed repository; edit this file 'description' to name the repository.
Info | Log | Files | Refs | Submodules | LICENSE

commit 6eec3712914b2368c9b6e20c157a7e8628d32b0c
parent 90b84aa7e785b839d67b1976c990eac29db7fc90
Author: lash <dev@holbrook.no>
Date:   Thu,  6 Nov 2025 02:29:34 +0000

Set correct parent in entry chain

Diffstat:
Mdummy/create.py | 2+-
Mdummy/svcontas/__init__.py | 14++++++--------
2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/dummy/create.py b/dummy/create.py @@ -56,7 +56,7 @@ if __name__ == '__main__': amount = units.from_floatstring(arg.u, arg.amount, allow_negative=False) state_serial += 1 - entry = Entry(arg.t, amount, arg.u, state_serial, arg.a, arg.date) + entry = Entry(arg.t, amount, arg.u, state_serial, arg.a, arg.date, parent=ledger.base) wallet = DemoWallet(privatekey=seed) entry.sign(wallet) ledger.add_entry(entry) diff --git a/dummy/svcontas/__init__.py b/dummy/svcontas/__init__.py @@ -334,18 +334,19 @@ class Ledger: return True - def add_entry(self, entry): + def add_entry(self, entry, modify_tree=True): if not self.check_sigs(entry): raise ValueError('entry must have at least one valid signature') self.running[entry.unit].apply_entry(entry) try: entries = self.entries[entry.serial] - logg.debug('------------------------ {}'.format(entries)) except KeyError: self.entries[entry.serial] = [] entries = self.entries[entry.serial] + self.base = entry.sum() self.entries[entry.serial].append(entry) - if self.tree != None: + self.running[entry.unit].apply_entry(entry) + if self.tree != None and modify_tree: self.tree.append(entry.to_tree()) @@ -388,11 +389,8 @@ class Ledger: for v in tree.iter('entry'): logg.debug('processing entry {}'.format(v)) o = Entry.from_tree(v, self.uidx) - self.check_sigs(o) - if self.entries.get(o.serial) == None: - self.entries[o.serial] = [] - self.entries[o.serial].append(o) - self.running[o.unit].apply_entry(o) + self.add_entry(o, modify_tree=False) + def to_tree(self): return self.tree