diff --git a/src/script/sign.cpp b/src/script/sign.cpp index 6c3a4678c..e384d0e74 100644 --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -245,7 +245,7 @@ static bool SignStepCC(const BaseSignatureCreator& creator, const CScript& scrip // first of priv key in our key store or contract address is what we sign with for (auto pk : p.vKeys) { - if (creator.KeyStore().GetKey(pk.GetID(), privKey) && privKey.IsValid()) + if (creator.IsKeystoreValid() && creator.KeyStore().GetKey(pk.GetID(), privKey) && privKey.IsValid()) break; if (pk == CPubKey(ParseHex(C.CChexstr))) diff --git a/src/script/sign.h b/src/script/sign.h index 45e469efc..ac2ab6476 100644 --- a/src/script/sign.h +++ b/src/script/sign.h @@ -23,7 +23,8 @@ protected: public: BaseSignatureCreator(const CKeyStore* keystoreIn) : keystore(keystoreIn) {} - const CKeyStore& KeyStore() const { return *keystore; }; + const bool IsKeystoreValid() const { return keystore != NULL; } + const CKeyStore& KeyStore() const { return *keystore; } virtual ~BaseSignatureCreator() {} virtual const BaseSignatureChecker& Checker() const =0;