MCPcopy Create free account
hub / github.com/Bitcoin-ABC/bitcoin-abc / CheckSighashEncoding

Function CheckSighashEncoding

src/script/sigencoding.cpp:214–233  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

212}
213
214static bool CheckSighashEncoding(const valtype &vchSig, uint32_t flags,
215 ScriptError *serror) {
216 if (flags & SCRIPT_VERIFY_STRICTENC) {
217 if (!GetHashType(vchSig).isDefined()) {
218 return set_error(serror, ScriptError::SIG_HASHTYPE);
219 }
220
221 bool usesForkId = GetHashType(vchSig).hasForkId();
222 bool forkIdEnabled = flags & SCRIPT_ENABLE_SIGHASH_FORKID;
223 if (!forkIdEnabled && usesForkId) {
224 return set_error(serror, ScriptError::ILLEGAL_FORKID);
225 }
226
227 if (forkIdEnabled && !usesForkId) {
228 return set_error(serror, ScriptError::MUST_USE_FORKID);
229 }
230 }
231
232 return true;
233}
234
235template <typename F>
236static bool CheckTransactionSignatureEncodingImpl(const valtype &vchSig,

Callers 1

Calls 4

GetHashTypeFunction · 0.85
isDefinedMethod · 0.80
hasForkIdMethod · 0.80
set_errorFunction · 0.70

Tested by

no test coverage detected