diff options
author | Glenn Willen <gwillen@nerdnet.org> | 2018-10-26 15:26:16 -0700 |
---|---|---|
committer | Glenn Willen <gwillen@nerdnet.org> | 2018-11-01 12:11:24 -0700 |
commit | 65166d4cf828909dc4bc49dd68a58103d015f1fd (patch) | |
tree | c72e82590f9a56617085336e41010b74d25586dd /src | |
parent | 4f3f5cb4b142f0fcb36241fa33b52a257901dbee (diff) |
New PartiallySignedTransaction constructor from CTransction
New constructor that creates a PartiallySignedTransaction from a
CTransaction, automatically sizing the inputs and outputs vectors for
convenience.
Diffstat (limited to 'src')
-rw-r--r-- | src/script/sign.cpp | 6 | ||||
-rw-r--r-- | src/script/sign.h | 1 | ||||
-rw-r--r-- | src/wallet/rpcwallet.cpp | 9 |
3 files changed, 8 insertions, 8 deletions
diff --git a/src/script/sign.cpp b/src/script/sign.cpp index 89cc7c808c..bcf1108967 100644 --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -513,6 +513,12 @@ bool IsSolvable(const SigningProvider& provider, const CScript& script) return false; } +PartiallySignedTransaction::PartiallySignedTransaction(const CTransaction& tx) : tx(tx) +{ + inputs.resize(tx.vin.size()); + outputs.resize(tx.vout.size()); +} + bool PartiallySignedTransaction::IsNull() const { return !tx && inputs.empty() && outputs.empty() && unknown.empty(); diff --git a/src/script/sign.h b/src/script/sign.h index d47aada17d..381e2eb120 100644 --- a/src/script/sign.h +++ b/src/script/sign.h @@ -566,6 +566,7 @@ struct PartiallySignedTransaction bool IsSane() const; PartiallySignedTransaction() {} PartiallySignedTransaction(const PartiallySignedTransaction& psbt_in) : tx(psbt_in.tx), inputs(psbt_in.inputs), outputs(psbt_in.outputs), unknown(psbt_in.unknown) {} + explicit PartiallySignedTransaction(const CTransaction& tx); // Only checks if they refer to the same transaction friend bool operator==(const PartiallySignedTransaction& a, const PartiallySignedTransaction &b) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index e2ffb42d75..b514f09b0e 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -3930,14 +3930,7 @@ UniValue walletcreatefundedpsbt(const JSONRPCRequest& request) FundTransaction(pwallet, rawTx, fee, change_position, request.params[3]); // Make a blank psbt - PartiallySignedTransaction psbtx; - psbtx.tx = rawTx; - for (unsigned int i = 0; i < rawTx.vin.size(); ++i) { - psbtx.inputs.push_back(PSBTInput()); - } - for (unsigned int i = 0; i < rawTx.vout.size(); ++i) { - psbtx.outputs.push_back(PSBTOutput()); - } + PartiallySignedTransaction psbtx(rawTx); // Fill transaction with out data but don't sign bool bip32derivs = request.params[4].isNull() ? false : request.params[4].get_bool(); |