diff --git a/bitcoin/src/blockdata/transaction.rs b/bitcoin/src/blockdata/transaction.rs index faf4ad57..fa0fe508 100644 --- a/bitcoin/src/blockdata/transaction.rs +++ b/bitcoin/src/blockdata/transaction.rs @@ -1745,6 +1745,17 @@ mod tests { assert_eq!(realtx.base_size(), tx_bytes.len()); } + #[test] + fn segwit_invalid_transaction() { + let tx_bytes = hex!("0000fd000001021921212121212121212121f8b372b0239cc1dff600000000004f4f4f4f4f4f4f4f000000000000000000000000000000333732343133380d000000000000000000000000000000ff000000000009000dff000000000000000800000000000000000d"); + let tx: Result = deserialize(&tx_bytes); + assert!(tx.is_err()); + assert!(tx + .unwrap_err() + .to_string() + .contains("witness flag set but no witnesses present")); + } + #[test] fn segwit_transaction() { let tx_bytes = hex!(