Skip to content

Commit d999dd5

Browse files
committed
Add SignTransaction function to ScriptPubKeyMan and LegacyScriptPubKeyMan
1 parent 2c52b59 commit d999dd5

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/wallet/scriptpubkeyman.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <key_io.h>
66
#include <outputtype.h>
77
#include <script/descriptor.h>
8+
#include <script/sign.h>
89
#include <util/bip32.h>
910
#include <util/strencodings.h>
1011
#include <util/translation.h>
@@ -505,6 +506,11 @@ bool LegacyScriptPubKeyMan::CanProvide(const CScript& script, SignatureData& sig
505506
}
506507
}
507508

509+
bool LegacyScriptPubKeyMan::SignTransaction(CMutableTransaction& tx, const std::map<COutPoint, Coin>& coins, int sighash, std::map<int, std::string>& input_errors) const
510+
{
511+
return ::SignTransaction(tx, this, coins, sighash, input_errors);
512+
}
513+
508514
const CKeyMetadata* LegacyScriptPubKeyMan::GetMetadata(const CTxDestination& dest) const
509515
{
510516
LOCK(cs_KeyStore);

src/wallet/scriptpubkeyman.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,9 @@ class ScriptPubKeyMan
210210
*/
211211
virtual bool CanProvide(const CScript& script, SignatureData& sigdata) { return false; }
212212

213+
/** Creates new signatures and adds them to the transaction. Returns whether all inputs were signed */
214+
virtual bool SignTransaction(CMutableTransaction& tx, const std::map<COutPoint, Coin>& coins, int sighash, std::map<int, std::string>& input_errors) const { return false; }
215+
213216
virtual uint256 GetID() const { return uint256(); }
214217

215218
/** Prepends the wallet name in logging output to ease debugging in multi-wallet use cases */
@@ -350,6 +353,8 @@ class LegacyScriptPubKeyMan : public ScriptPubKeyMan, public FillableSigningProv
350353

351354
bool CanProvide(const CScript& script, SignatureData& sigdata) override;
352355

356+
bool SignTransaction(CMutableTransaction& tx, const std::map<COutPoint, Coin>& coins, int sighash, std::map<int, std::string>& input_errors) const override;
357+
353358
uint256 GetID() const override;
354359

355360
// Map from Key ID to key metadata.

0 commit comments

Comments
 (0)