verifing block 124276
This commit is contained in:
parent
6f94a91b82
commit
c61fbf8ea5
|
@ -35,7 +35,7 @@ impl Public {
|
||||||
pub fn verify(&self, message: &Message, signature: &Signature) -> Result<bool, Error> {
|
pub fn verify(&self, message: &Message, signature: &Signature) -> Result<bool, Error> {
|
||||||
let context = &SECP256K1;
|
let context = &SECP256K1;
|
||||||
let public = try!(key::PublicKey::from_slice(context, self));
|
let public = try!(key::PublicKey::from_slice(context, self));
|
||||||
let mut signature = try!(SecpSignature::from_der(context, signature));
|
let mut signature = try!(SecpSignature::from_der_lax(context, signature));
|
||||||
signature.normalize_s(context);
|
signature.normalize_s(context);
|
||||||
let message = try!(SecpMessage::from_slice(&**message));
|
let message = try!(SecpMessage::from_slice(&**message));
|
||||||
match context.verify(&message, &signature, &public) {
|
match context.verify(&message, &signature, &public) {
|
||||||
|
|
|
@ -1862,4 +1862,20 @@ mod tests {
|
||||||
.verify_p2sh(true);
|
.verify_p2sh(true);
|
||||||
assert_eq!(verify_script(&input, &output, &flags, &checker), Ok(()));
|
assert_eq!(verify_script(&input, &output, &flags, &checker), Ok(()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://blockchain.info/rawtx/fb0a1d8d34fa5537e461ac384bac761125e1bfa7fec286fa72511240fa66864d
|
||||||
|
#[test]
|
||||||
|
fn test_transaction_from_124276() {
|
||||||
|
let tx: Transaction = "01000000012316aac445c13ff31af5f3d1e2cebcada83e54ba10d15e01f49ec28bddc285aa000000008e4b3048022200002b83d59c1d23c08efd82ee0662fec23309c3adbcbd1f0b8695378db4b14e736602220000334a96676e58b1bb01784cb7c556dd8ce1c220171904da22e18fe1e7d1510db5014104d0fe07ff74c9ef5b00fed1104fad43ecf72dbab9e60733e4f56eacf24b20cf3b8cd945bcabcc73ba0158bf9ce769d43e94bd58c5c7e331a188922b3fe9ca1f5affffffff01c0c62d00000000001976a9147a2a3b481ca80c4ba7939c54d9278e50189d94f988ac00000000".into();
|
||||||
|
let signer: TransactionInputSigner = tx.into();
|
||||||
|
let checker = TransactionSignatureChecker {
|
||||||
|
signer: signer,
|
||||||
|
input_index: 0,
|
||||||
|
};
|
||||||
|
let input: Script = "4b3048022200002b83d59c1d23c08efd82ee0662fec23309c3adbcbd1f0b8695378db4b14e736602220000334a96676e58b1bb01784cb7c556dd8ce1c220171904da22e18fe1e7d1510db5014104d0fe07ff74c9ef5b00fed1104fad43ecf72dbab9e60733e4f56eacf24b20cf3b8cd945bcabcc73ba0158bf9ce769d43e94bd58c5c7e331a188922b3fe9ca1f5a".into();
|
||||||
|
let output: Script = "76a9147a2a3b481ca80c4ba7939c54d9278e50189d94f988ac".into();
|
||||||
|
let flags = VerificationFlags::default()
|
||||||
|
.verify_p2sh(true);
|
||||||
|
assert_eq!(verify_script(&input, &output, &flags, &checker), Ok(()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue