Implement SignMessage for descriptor wallets

This commit is contained in:
Andrew Chow committed 2020-04-23 13:59:48 -04:00
1 parent bde7c9fa38
commit 84b4978c02
1 file changed
+14
+14
View File
@@ -1957,8 +1957,22 @@ bool DescriptorScriptPubKeyMan::SignTransaction(CMutableTransaction& tx, const s
SigningResult DescriptorScriptPubKeyMan::SignMessage(const std::string& message, const PKHash& pkhash, std::string& str_sig) const SigningResult DescriptorScriptPubKeyMan::SignMessage(const std::string& message, const PKHash& pkhash, std::string& str_sig) const
{ {
std::unique_ptr<FlatSigningProvider> keys = GetSigningProvider(GetScriptForDestination(pkhash), true);
if (!keys) {
return SigningResult::PRIVATE_KEY_NOT_AVAILABLE;
}
CKeyID key_id(pkhash);
CKey key;
if (!keys->GetKey(key_id, key)) {
return SigningResult::PRIVATE_KEY_NOT_AVAILABLE;
}
if (!MessageSign(key, message, str_sig)) {
return SigningResult::SIGNING_FAILED; return SigningResult::SIGNING_FAILED;
} }
return SigningResult::OK;
}
TransactionError DescriptorScriptPubKeyMan::FillPSBT(PartiallySignedTransaction& psbt, int sighash_type, bool sign, bool bip32derivs) const TransactionError DescriptorScriptPubKeyMan::FillPSBT(PartiallySignedTransaction& psbt, int sighash_type, bool sign, bool bip32derivs) const
{ {