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:
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