diff --git a/src/script/sign.cpp b/src/script/sign.cpp --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -231,6 +231,7 @@ return sigdata.complete; } +namespace { class SignatureExtractorChecker final : public BaseSignatureChecker { private: SignatureData &sigdata; @@ -242,22 +243,18 @@ : sigdata(sigdata_), checker(checker_) {} bool CheckSig(const std::vector &scriptSig, const std::vector &vchPubKey, - const CScript &scriptCode, uint32_t flags) const override; -}; + const CScript &scriptCode, uint32_t flags) const override { + if (checker.CheckSig(scriptSig, vchPubKey, scriptCode, flags)) { + CPubKey pubkey(vchPubKey); -bool SignatureExtractorChecker::CheckSig(const std::vector &scriptSig, - const std::vector &vchPubKey, - const CScript &scriptCode, - uint32_t flags) const { - if (checker.CheckSig(scriptSig, vchPubKey, scriptCode, flags)) { - CPubKey pubkey(vchPubKey); - sigdata.signatures.emplace(pubkey.GetID(), SigPair(pubkey, scriptSig)); - return true; + sigdata.signatures.emplace(pubkey.GetID(), + SigPair(pubkey, scriptSig)); + return true; + } + return false; } - return false; -} +}; -namespace { struct Stacks { std::vector script;