add script error to TransactionError::Signature
This commit is contained in:
parent
7f14f9b40d
commit
b791b92414
|
@ -271,6 +271,7 @@ pub mod tests {
|
||||||
use chain::{IndexedBlock, IndexedTransaction};
|
use chain::{IndexedBlock, IndexedTransaction};
|
||||||
use super::{Verifier, BlockVerificationSink, TransactionVerificationSink, AsyncVerifier, VerificationTask, ChainVerifierWrapper};
|
use super::{Verifier, BlockVerificationSink, TransactionVerificationSink, AsyncVerifier, VerificationTask, ChainVerifierWrapper};
|
||||||
use types::{BlockHeight, StorageRef, MemoryPoolRef};
|
use types::{BlockHeight, StorageRef, MemoryPoolRef};
|
||||||
|
use script::Error as ScriptError;
|
||||||
use VerificationParameters;
|
use VerificationParameters;
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
|
@ -417,7 +418,7 @@ pub mod tests {
|
||||||
verification_level: VerificationLevel::Full,
|
verification_level: VerificationLevel::Full,
|
||||||
verification_edge: 1.into(),
|
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]
|
#[test]
|
||||||
|
|
|
@ -374,7 +374,7 @@ impl<'a> TransactionEval<'a> {
|
||||||
.verify_witness(self.verify_witness);
|
.verify_witness(self.verify_witness);
|
||||||
|
|
||||||
try!(verify_script(&input, &output, &script_witness, &flags, &checker, self.signature_version)
|
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(())
|
Ok(())
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
use hash::H256;
|
use hash::H256;
|
||||||
use compact::Compact;
|
use compact::Compact;
|
||||||
use db::Error as DBError;
|
use db::Error as DBError;
|
||||||
|
use script::Error as SignatureError;
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq)]
|
||||||
/// All possible verification errors
|
/// All possible verification errors
|
||||||
|
@ -86,7 +87,7 @@ pub enum TransactionError {
|
||||||
/// Referenced coinbase output for the transaction input is not mature enough
|
/// Referenced coinbase output for the transaction input is not mature enough
|
||||||
Maturity,
|
Maturity,
|
||||||
/// Signature invalid for given input
|
/// Signature invalid for given input
|
||||||
Signature(usize),
|
Signature(usize, SignatureError),
|
||||||
/// Unknown previous transaction referenced
|
/// Unknown previous transaction referenced
|
||||||
UnknownReference(H256),
|
UnknownReference(H256),
|
||||||
/// Spends more than claims
|
/// Spends more than claims
|
||||||
|
|
Loading…
Reference in New Issue