From 0586ed94c4ca7101a75600ada4ba52268a51621a Mon Sep 17 00:00:00 2001 From: Chris Coverdale Date: Sun, 17 Nov 2019 16:41:14 +0000 Subject: [PATCH] Add default trait implementation for TxIn --- src/blockdata/transaction.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/blockdata/transaction.rs b/src/blockdata/transaction.rs index 65475afd..9d1d80c5 100644 --- a/src/blockdata/transaction.rs +++ b/src/blockdata/transaction.rs @@ -204,6 +204,17 @@ pub struct TxIn { } serde_struct_impl!(TxIn, previous_output, script_sig, sequence, witness); +impl Default for TxIn { + fn default() -> TxIn { + TxIn { + previous_output: OutPoint::default(), + script_sig: Script::new(), + sequence: u32::max_value(), + witness: Vec::new(), + } + } +} + /// A transaction output, which defines new coins to be created from old ones. #[derive(Clone, PartialEq, Eq, Debug, Hash)] pub struct TxOut { @@ -662,6 +673,16 @@ mod tests { assert!(txin.is_ok()); } + #[test] + fn test_txin_default() { + let txin = TxIn::default(); + assert_eq!(txin.previous_output, OutPoint::default()); + assert_eq!(txin.script_sig, Script::new()); + assert_eq!(txin.sequence, 0xFFFFFFFF); + assert_eq!(txin.previous_output, OutPoint::default()); + assert_eq!(txin.witness.len(), 0 as usize); + } + #[test] fn test_is_coinbase () { use network::constants::Network;