diff --git a/testnet/stacks-node/src/event_dispatcher.rs b/testnet/stacks-node/src/event_dispatcher.rs index 0ad844f2e..1890f8067 100644 --- a/testnet/stacks-node/src/event_dispatcher.rs +++ b/testnet/stacks-node/src/event_dispatcher.rs @@ -585,13 +585,6 @@ impl EventDispatcher { let tx_hash = receipt.transaction.txid(); for event in receipt.events.iter() { match event { - StacksTransactionEvent::SmartContractEvent(event_data) => { - for o_i in &self.any_event_observers_lookup { - if self.registered_observers[*o_i as usize].include_data_events { - dispatch_matrix[*o_i as usize].insert(i); - } - } - } StacksTransactionEvent::DataEvent(DataEventType::VarSetEvent(event_data)) => { for o_i in &self.any_event_observers_lookup { if self.registered_observers[*o_i as usize].include_data_events { @@ -626,6 +619,17 @@ impl EventDispatcher { } } } + StacksTransactionEvent::SmartContractEvent(event_data) => { + if let Some(observer_indexes) = self.contract_events_observers_lookup.get(&event_data.key) + { + for o_i in observer_indexes { + dispatch_matrix[*o_i as usize].insert(i); + } + } + for o_i in &self.any_event_observers_lookup { + dispatch_matrix[*o_i as usize].insert(i); + } + } StacksTransactionEvent::STXEvent(STXEventType::STXTransferEvent(_)) | StacksTransactionEvent::STXEvent(STXEventType::STXMintEvent(_)) | StacksTransactionEvent::STXEvent(STXEventType::STXBurnEvent(_))