add script error to TransactionError::Signature

This commit is contained in:
Svyatoslav Nikolsky 2017-08-23 17:26:19 +03:00
parent 7f14f9b40d
commit b791b92414
3 changed files with 5 additions and 3 deletions

View File

@ -271,6 +271,7 @@ pub mod tests {
use chain::{IndexedBlock, IndexedTransaction};
use super::{Verifier, BlockVerificationSink, TransactionVerificationSink, AsyncVerifier, VerificationTask, ChainVerifierWrapper};
use types::{BlockHeight, StorageRef, MemoryPoolRef};
use script::Error as ScriptError;
use VerificationParameters;
#[derive(Default)]
@ -417,7 +418,7 @@ pub mod tests {
verification_level: VerificationLevel::Full,
verification_edge: 1.into(),
});
assert_eq!(wrapper.verify_block(&bad_transaction_block), Err(VerificationError::Transaction(1, TransactionError::Signature(0))));
assert_eq!(wrapper.verify_block(&bad_transaction_block), Err(VerificationError::Transaction(1, TransactionError::Signature(0, ScriptError::InvalidStackOperation))));
}
#[test]

View File

@ -374,7 +374,7 @@ impl<'a> TransactionEval<'a> {
.verify_witness(self.verify_witness);
try!(verify_script(&input, &output, &script_witness, &flags, &checker, self.signature_version)
.map_err(|_| TransactionError::Signature(index)));
.map_err(|e| TransactionError::Signature(index, e)));
}
Ok(())

View File

@ -1,6 +1,7 @@
use hash::H256;
use compact::Compact;
use db::Error as DBError;
use script::Error as SignatureError;
#[derive(Debug, PartialEq)]
/// All possible verification errors
@ -86,7 +87,7 @@ pub enum TransactionError {
/// Referenced coinbase output for the transaction input is not mature enough
Maturity,
/// Signature invalid for given input
Signature(usize),
Signature(usize, SignatureError),
/// Unknown previous transaction referenced
UnknownReference(H256),
/// Spends more than claims