Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions hathor/event/event_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,14 @@
HathorEvents.LOAD_FINISHED,
HathorEvents.REORG_STARTED,
HathorEvents.REORG_FINISHED,
HathorEvents.TX_METADATA_CHANGED,
HathorEvents.BLOCK_METADATA_CHANGED,
HathorEvents.VERTEX_METADATA_CHANGED,
HathorEvents.CONSENSUS_TX_UPDATE,
HathorEvents.CONSENSUS_TX_REMOVED,
]


def _todo(args: EventArguments) -> Dict[str, Any]:
raise NotImplementedError('TODO')
_EVENT_CONVERTER = {
HathorEvents.CONSENSUS_TX_UPDATE: HathorEvents.VERTEX_METADATA_CHANGED
}


def _empty(args: EventArguments) -> Dict[str, Any]:
Expand Down Expand Up @@ -79,8 +78,7 @@ def _extract_reorg(args: EventArguments) -> Dict[str, Any]:
HathorEvents.NETWORK_ORPHAN_BLOCK_FOUND: _extract_tx,
HathorEvents.REORG_STARTED: _extract_reorg,
HathorEvents.REORG_FINISHED: _empty,
HathorEvents.TX_METADATA_CHANGED: _todo, # XXX: I'm considering removing this event
HathorEvents.BLOCK_METADATA_CHANGED: _todo, # XXX: I'm considering removing this event
HathorEvents.VERTEX_METADATA_CHANGED: _extract_tx,
HathorEvents.CONSENSUS_TX_UPDATE: _extract_tx,
HathorEvents.CONSENSUS_TX_REMOVED: _extract_tx,
}
Expand Down Expand Up @@ -155,6 +153,7 @@ def _subscribe_events(self):

def _handle_event(self, event_type: HathorEvents, event_args: EventArguments) -> None:
create_event_fn: Callable[[HathorEvents, EventArguments], BaseEvent]
event_type = _EVENT_CONVERTER.get(event_type, event_type)

if event_type in _GROUP_START_EVENTS:
create_event_fn = self._create_group_start_event
Expand Down
11 changes: 3 additions & 8 deletions hathor/pubsub.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,11 +102,8 @@ class HathorEvents(Enum):
REORG_FINISHED
Triggered when consensus algorithm ends all changes involved in a reorg

TX_METADATA_CHANGED
Triggered when consensus algorithm changes a metadata of an existing transaction

BLOCK_METADATA_CHANGED
Triggered when consensus algorithm changes a metadata from an existing block
VERTEX_METADATA_CHANGED
Triggered when consensus algorithm changes a metadata of an existing vertex (transaction or block)
"""
MANAGER_ON_START = 'manager:on_start'
MANAGER_ON_STOP = 'manager:on_stop'
Expand Down Expand Up @@ -155,9 +152,7 @@ class HathorEvents(Enum):

REORG_FINISHED = 'reorg:finished'

TX_METADATA_CHANGED = 'tx:metadata_changed'

BLOCK_METADATA_CHANGED = 'block:metadata_changed'
VERTEX_METADATA_CHANGED = 'vertex:metadata_changed'


class EventArguments:
Expand Down
32 changes: 16 additions & 16 deletions tests/event/test_event_reorg.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,40 +72,40 @@ class unsorted(list):
expected_events_grouped = [
# XXX: the order of the following events can vary depending on which genesis is spent/confirmed first
unsorted([
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': settings.GENESIS_BLOCK_HASH.hex()}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': settings.GENESIS_TX1_HASH.hex()}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': settings.GENESIS_TX2_HASH.hex()}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': blocks[0].hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': settings.GENESIS_BLOCK_HASH.hex()}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': settings.GENESIS_TX1_HASH.hex()}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': settings.GENESIS_TX2_HASH.hex()}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': blocks[0].hash_hex}),
]),
# XXX: these events must always have this order
[
(HathorEvents.NETWORK_NEW_TX_ACCEPTED, {'hash': blocks[0].hash_hex}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': blocks[1].hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': blocks[1].hash_hex}),
(HathorEvents.NETWORK_NEW_TX_ACCEPTED, {'hash': blocks[1].hash_hex}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': blocks[2].hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': blocks[2].hash_hex}),
(HathorEvents.NETWORK_NEW_TX_ACCEPTED, {'hash': blocks[2].hash_hex}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': blocks[3].hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': blocks[3].hash_hex}),
(HathorEvents.NETWORK_NEW_TX_ACCEPTED, {'hash': blocks[3].hash_hex}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': blocks[4].hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': blocks[4].hash_hex}),
(HathorEvents.NETWORK_NEW_TX_ACCEPTED, {'hash': blocks[4].hash_hex}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': blocks[5].hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': blocks[5].hash_hex}),
(HathorEvents.NETWORK_NEW_TX_ACCEPTED, {'hash': blocks[5].hash_hex}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': blocks[6].hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': blocks[6].hash_hex}),
(HathorEvents.NETWORK_NEW_TX_ACCEPTED, {'hash': blocks[6].hash_hex}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': blocks[7].hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': blocks[7].hash_hex}),
(HathorEvents.NETWORK_NEW_TX_ACCEPTED, {'hash': blocks[7].hash_hex}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': blocks[8].hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': blocks[8].hash_hex}),
(HathorEvents.NETWORK_NEW_TX_ACCEPTED, {'hash': blocks[8].hash_hex}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': blocks[9].hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': blocks[9].hash_hex}),
(HathorEvents.NETWORK_NEW_TX_ACCEPTED, {'hash': blocks[9].hash_hex}),
(HathorEvents.REORG_STARTED, {'reorg_size': 2, 'previous_best_block': blocks[9].hash_hex,
'new_best_block': b0.hash_hex}),
],
# XXX: for some reason the metadata update order of these events isn't always the same
unsorted([
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': blocks[8].hash_hex}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': blocks[9].hash_hex}),
(HathorEvents.CONSENSUS_TX_UPDATE, {'hash': b0.hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': blocks[8].hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': blocks[9].hash_hex}),
(HathorEvents.VERTEX_METADATA_CHANGED, {'hash': b0.hash_hex}),
]),
# XXX: these events must always have this order
[
Expand Down