aboutsummaryrefslogtreecommitdiff
path: root/src/script/sign.cpp
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2021-04-12 08:44:52 +0800
committerfanquake <fanquake@gmail.com>2021-04-12 09:28:18 +0800
commite358b43f7d89a1950d70b21763232cb2cfd70606 (patch)
treec48efae97af6b64ceec5291370ae48b3962e6894 /src/script/sign.cpp
parent0b9a046c1ae023268b2d9928ca4e3c884ae871b8 (diff)
parentf79189ca54524881d52b91679eb9035d6718ce01 (diff)
downloadbitcoin-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.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;