| 128 | } |
| 129 | |
| 130 | pub fn validate_transaction( |
| 131 | transaction: &Transaction, |
| 132 | comparison_transaction: &Transaction, |
| 133 | tx_name: &'static str, |
| 134 | ) -> Result<(), Error> { |
| 135 | for i in 0..comparison_transaction.input.len() { |
| 136 | if transaction.input[i].previous_output != comparison_transaction.input[i].previous_output |
| 137 | || transaction.input[i].script_sig != comparison_transaction.input[i].script_sig |
| 138 | || transaction.input[i].sequence != comparison_transaction.input[i].sequence |
| 139 | { |
| 140 | return Err(Error::Validation(ValidationError::TxValidationFailed( |
| 141 | tx_name, |
| 142 | transaction.compute_txid(), |
| 143 | i, |
| 144 | ))); |
| 145 | } |
| 146 | } |
| 147 | |
| 148 | for i in 0..comparison_transaction.output.len() { |
| 149 | if transaction.output[i].value != comparison_transaction.output[i].value |
| 150 | || transaction.output[i].script_pubkey != comparison_transaction.output[i].script_pubkey |
| 151 | { |
| 152 | return Err(Error::Validation(ValidationError::TxValidationFailed( |
| 153 | tx_name, |
| 154 | transaction.compute_txid(), |
| 155 | i, |
| 156 | ))); |
| 157 | } |
| 158 | } |
| 159 | |
| 160 | Ok(()) |
| 161 | } |
| 162 | |
| 163 | pub fn validate_witness( |
| 164 | tx: &Transaction, |