Merge pull request #528 from paritytech/bch_nov2018_pushonly

BCH Nov2018 HF: enforce push-only restriction for scriptsig
This commit is contained in:
Svyatoslav Nikolsky 2018-11-12 09:42:04 +03:00 committed by GitHub
commit 1a377c26ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 1 deletions

View File

@ -139,6 +139,11 @@ impl VerificationFlags {
self
}
pub fn verify_sigpushonly(mut self, value: bool) -> Self {
self.verify_sigpushonly = value;
self
}
pub fn verify_discourage_upgradable_witness_program(mut self, value: bool) -> Self {
self.verify_discourage_upgradable_witness_program = value;
self

View File

@ -308,6 +308,7 @@ pub struct TransactionEval<'a> {
verify_nulldummy: bool,
verify_monolith_opcodes: bool,
verify_magnetic_anomaly_opcodes: bool,
verify_sigpushonly: bool,
signature_version: SignatureVersion,
}
@ -345,6 +346,7 @@ impl<'a> TransactionEval<'a> {
let verify_checksequence = deployments.csv();
let verify_witness = deployments.segwit();
let verify_nulldummy = verify_witness;
let verify_sigpushonly = verify_magnetic_anomaly_opcodes;
TransactionEval {
transaction: transaction,
@ -359,6 +361,7 @@ impl<'a> TransactionEval<'a> {
verify_nulldummy: verify_nulldummy,
verify_monolith_opcodes: verify_monolith_opcodes,
verify_magnetic_anomaly_opcodes: verify_magnetic_anomaly_opcodes,
verify_sigpushonly: verify_sigpushonly,
signature_version: signature_version,
}
}
@ -409,7 +412,8 @@ impl<'a> TransactionEval<'a> {
.verify_mod(self.verify_monolith_opcodes)
.verify_bin2num(self.verify_monolith_opcodes)
.verify_num2bin(self.verify_monolith_opcodes)
.verify_checkdatasig(self.verify_magnetic_anomaly_opcodes);
.verify_checkdatasig(self.verify_magnetic_anomaly_opcodes)
.verify_sigpushonly(self.verify_sigpushonly);
try!(verify_script(&input, &output, &script_witness, &flags, &checker, self.signature_version)
.map_err(|e| TransactionError::Signature(index, e)));