diff options
author | Andrew Chow <achow101-github@achow101.com> | 2021-02-12 14:18:50 -0500 |
---|---|---|
committer | Andrew Chow <achow101-github@achow101.com> | 2021-04-08 18:18:55 -0400 |
commit | 7de019bc619b0b2433bfb553feba5f6dc58c8db8 (patch) | |
tree | a128f77f52382e4101e0cbaf8911cfdc5bec3721 /src/script/sign.cpp | |
parent | 0b9a046c1ae023268b2d9928ca4e3c884ae871b8 (diff) | |
download | bitcoin-7de019bc619b0b2433bfb553feba5f6dc58c8db8.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.
Github-Pull: #21166
Rebased-From: 6965456c10c9c4025c71c5e24fa5b27b15e5933a
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 0e6864d547..903c95a5c9 100644 --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -253,17 +253,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; |