aboutsummaryrefslogtreecommitdiff
path: root/src/script/sign.cpp
diff options
context:
space:
mode:
authorAndrew Chow <achow101-github@achow101.com>2021-02-12 14:18:50 -0500
committerAndrew Chow <achow101-github@achow101.com>2021-04-08 18:18:55 -0400
commit7de019bc619b0b2433bfb553feba5f6dc58c8db8 (patch)
treea128f77f52382e4101e0cbaf8911cfdc5bec3721 /src/script/sign.cpp
parent0b9a046c1ae023268b2d9928ca4e3c884ae871b8 (diff)
downloadbitcoin-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.cpp8
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;