fix: accommodate poison-microblock transaction evaluation results

This commit is contained in:
Jude Nelson
2022-10-05 23:17:43 -04:00
parent 567303dd48
commit 9d60275519

View File

@@ -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 {