diff options
author | Andrew Chow <achow101-github@achow101.com> | 2021-02-12 14:18:50 -0500 |
---|---|---|
committer | Andrew Chow <achow101-github@achow101.com> | 2021-03-04 21:54:32 -0500 |
commit | 6965456c10c9c4025c71c5e24fa5b27b15e5933a (patch) | |
tree | 3b047d2fa2e9fa98a3998ff64622e5e880942f49 /src/script/sign.cpp | |
parent | e9c037ba64dd5b073fccf059ef75db1c97abd0bd (diff) | |
download | bitcoin-6965456c10c9c4025c71c5e24fa5b27b15e5933a.tar.xz |
Introduce DeferringSignatureChecker and inherit with SignatureExtractor
Introduces a DeferringSignatureChecker which simply takes a
BaseSignatureChecker and passes through everything.
SignatureExtractorChecker now subclasses DeferringSignatureChecker. This
allows for all BaseSignatureChecker functions to be implemented for
SignatureExtractorChecker, while allowing for future signature checkers
which opreate similarly to SignatureExtractorChecker.
Diffstat (limited to 'src/script/sign.cpp')
-rw-r--r-- | src/script/sign.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/script/sign.cpp b/src/script/sign.cpp index dba5ce621a..3c8f6d22ea 100644 --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -250,17 +250,17 @@ bool ProduceSignature(const SigningProvider& provider, const BaseSignatureCreato } namespace { -class SignatureExtractorChecker final : public BaseSignatureChecker +class SignatureExtractorChecker final : public DeferringSignatureChecker { private: SignatureData& sigdata; - BaseSignatureChecker& checker; public: - SignatureExtractorChecker(SignatureData& sigdata, BaseSignatureChecker& checker) : sigdata(sigdata), checker(checker) {} + SignatureExtractorChecker(SignatureData& sigdata, BaseSignatureChecker& checker) : DeferringSignatureChecker(checker), sigdata(sigdata) {} + bool CheckECDSASignature(const std::vector<unsigned char>& scriptSig, const std::vector<unsigned char>& vchPubKey, const CScript& scriptCode, SigVersion sigversion) const override { - if (checker.CheckECDSASignature(scriptSig, vchPubKey, scriptCode, sigversion)) { + if (m_checker.CheckECDSASignature(scriptSig, vchPubKey, scriptCode, sigversion)) { CPubKey pubkey(vchPubKey); sigdata.signatures.emplace(pubkey.GetID(), SigPair(pubkey, scriptSig)); return true; |