From 9d6027551919450cb0d4eae8b3c5b27a42362330 Mon Sep 17 00:00:00 2001 From: Jude Nelson Date: Wed, 5 Oct 2022 23:17:43 -0400 Subject: [PATCH] fix: accommodate poison-microblock transaction evaluation results --- testnet/stacks-node/src/event_dispatcher.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/testnet/stacks-node/src/event_dispatcher.rs b/testnet/stacks-node/src/event_dispatcher.rs index 615bbb0c2..e290fb201 100644 --- a/testnet/stacks-node/src/event_dispatcher.rs +++ b/testnet/stacks-node/src/event_dispatcher.rs @@ -38,6 +38,7 @@ use super::config::{EventKeyType, EventObserverConfig}; use stacks::chainstate::burn::ConsensusHash; use stacks::chainstate::stacks::db::unconfirmed::ProcessedUnconfirmedState; use stacks::chainstate::stacks::miner::TransactionEvent; +use stacks::chainstate::stacks::TransactionPayload; #[derive(Debug, Clone)] struct EventObserver { @@ -205,7 +206,17 @@ impl EventObserver { } } (true, Value::Response(_)) => STATUS_RESP_POST_CONDITION, - _ => unreachable!(), // Transaction results should always be a Value::Response type + _ => { + if let TransactionOrigin::Stacks(inner_tx) = &tx { + if let TransactionPayload::PoisonMicroblock(..) = &inner_tx.payload { + STATUS_RESP_TRUE + } else { + unreachable!() // Transaction results should otherwise always be a Value::Response type + } + } else { + unreachable!() // Transaction results should always be a Value::Response type + } + } }; let (txid, raw_tx) = match tx {