diff options
author | fanquake <fanquake@gmail.com> | 2021-04-12 08:44:52 +0800 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2021-04-12 09:28:18 +0800 |
commit | e358b43f7d89a1950d70b21763232cb2cfd70606 (patch) | |
tree | c48efae97af6b64ceec5291370ae48b3962e6894 /src/script/sign.cpp | |
parent | 0b9a046c1ae023268b2d9928ca4e3c884ae871b8 (diff) | |
parent | f79189ca54524881d52b91679eb9035d6718ce01 (diff) | |
download | bitcoin-e358b43f7d89a1950d70b21763232cb2cfd70606.tar.xz |
Merge #21640: [0.21] Introduce DeferredSignatureChecker and have SignatureExtractorClass subclass it
f79189ca54524881d52b91679eb9035d6718ce01 Test that signrawtx works when a signed CSV and CLTV inputs are present (Andrew Chow)
7de019bc619b0b2433bfb553feba5f6dc58c8db8 Introduce DeferringSignatureChecker and inherit with SignatureExtractor (Andrew Chow)
Pull request description:
Backport of #21166
ACKs for top commit:
MarcoFalke:
checked this is a clean cherry-pick did not review ACK f79189ca54524881d52b91679eb9035d6718ce01 🐖
instagibbs:
ACK https://github.com/bitcoin/bitcoin/pull/21640/commits/f79189ca54524881d52b91679eb9035d6718ce01
Tree-SHA512: 51e945c9b353713423d3886c557066c66a6517d2300523832e5a5471ab91a8943385096d9bf5b46910477cb4c47470431690cf3da09b9f6956fe030f13ddff51
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; |