diff --git a/dash/src/blockdata/transaction/mod.rs b/dash/src/blockdata/transaction/mod.rs index 946b8662e..eb13fadfb 100644 --- a/dash/src/blockdata/transaction/mod.rs +++ b/dash/src/blockdata/transaction/mod.rs @@ -597,10 +597,13 @@ impl Decodable for Transaction { ) -> Result { let version = u16::consensus_decode_from_finite_reader(r)?; let special_transaction_type_u16 = u16::consensus_decode(r)?; - let special_transaction_type = TransactionType::try_from(special_transaction_type_u16) - .map_err(|_| { + let special_transaction_type = if version != 0 { + TransactionType::try_from(special_transaction_type_u16).map_err(|_| { encode::Error::UnknownSpecialTransactionType(special_transaction_type_u16) - })?; + })? + } else { + TransactionType::Classic + }; let input = Vec::::consensus_decode_from_finite_reader(r)?; // segwit let mut segwit = input.is_empty();