diff --git a/hathor/event/event_manager.py b/hathor/event/event_manager.py index a56ba6013..fc283049f 100644 --- a/hathor/event/event_manager.py +++ b/hathor/event/event_manager.py @@ -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]: @@ -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, } @@ -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 diff --git a/hathor/pubsub.py b/hathor/pubsub.py index 28e465e62..75e69afca 100644 --- a/hathor/pubsub.py +++ b/hathor/pubsub.py @@ -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' @@ -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: diff --git a/tests/event/test_event_reorg.py b/tests/event/test_event_reorg.py index 6f0b52a97..93f20c289 100644 --- a/tests/event/test_event_reorg.py +++ b/tests/event/test_event_reorg.py @@ -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 [