Skip to content

Commit 8aa43a7

Browse files
committed
fix(indexes): Fix wrong order in MemoryTxGroupIndex
1 parent 4ccc883 commit 8aa43a7

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

hathor/indexes/memory_tx_group_index.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class MemoryTxGroupIndex(TxGroupIndex[KT]):
3131
"""Memory implementation of the TxGroupIndex. This class is abstract and cannot be used directly.
3232
"""
3333

34-
index: defaultdict[KT, set[bytes]]
34+
index: defaultdict[KT, set[tuple[int, bytes]]]
3535

3636
def __init__(self) -> None:
3737
self.force_clear()
@@ -40,7 +40,7 @@ def force_clear(self) -> None:
4040
self.index = defaultdict(set)
4141

4242
def _add_tx(self, key: KT, tx: BaseTransaction) -> None:
43-
self.index[key].add(not_none(tx.hash))
43+
self.index[key].add((tx.timestamp, not_none(tx.hash)))
4444

4545
@abstractmethod
4646
def _extract_keys(self, tx: BaseTransaction) -> Iterable[KT]:
@@ -57,13 +57,14 @@ def remove_tx(self, tx: BaseTransaction) -> None:
5757
assert tx.hash is not None
5858

5959
for key in self._extract_keys(tx):
60-
self.index[key].discard(tx.hash)
60+
self.index[key].discard((tx.timestamp, tx.hash))
6161

6262
def _get_from_key(self, key: KT) -> Iterable[bytes]:
63-
yield from self.index[key]
63+
for _, h in self.index[key]:
64+
yield h
6465

6566
def _get_sorted_from_key(self, key: KT) -> Iterable[bytes]:
66-
return sorted(self.index[key])
67+
return [h for t, h in sorted(self.index[key])]
6768

6869
def _is_key_empty(self, key: KT) -> bool:
6970
return not bool(self.index[key])

0 commit comments

Comments
 (0)