mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-04-12 08:37:58 +02:00
rpc: Support version 3 transaction creation
Adds v3 support to the following RPCs: - createrawtransaction - createpsbt - send - sendall - walletcreatefundedpsbt Co-authored-by: chungeun-choi <cucuridas@gmail.com> Co-authored-by: dongwook-chan <dongwook.chan@gmail.com> Co-authored-by: sean-k1 <uhs2000@naver.com> Co-authored-by: ishaanam <ishaana.misra@gmail.com>
This commit is contained in:
@@ -53,6 +53,8 @@ using node::GetTransaction;
|
||||
using node::NodeContext;
|
||||
using node::PSBTAnalysis;
|
||||
|
||||
static constexpr decltype(CTransaction::version) DEFAULT_RAWTX_VERSION{CTransaction::CURRENT_VERSION};
|
||||
|
||||
static void TxToJSON(const CTransaction& tx, const uint256 hashBlock, UniValue& entry,
|
||||
Chainstate& active_chainstate, const CTxUndo* txundo = nullptr,
|
||||
TxVerbosity verbosity = TxVerbosity::SHOW_DETAILS)
|
||||
@@ -158,6 +160,7 @@ static std::vector<RPCArg> CreateTxDoc()
|
||||
{"locktime", RPCArg::Type::NUM, RPCArg::Default{0}, "Raw locktime. Non-0 value also locktime-activates inputs"},
|
||||
{"replaceable", RPCArg::Type::BOOL, RPCArg::Default{true}, "Marks this transaction as BIP125-replaceable.\n"
|
||||
"Allows this transaction to be replaced by a transaction with higher fees. If provided, it is an error if explicit sequence numbers are incompatible."},
|
||||
{"version", RPCArg::Type::NUM, RPCArg::Default{DEFAULT_RAWTX_VERSION}, "Transaction version"},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -437,7 +440,7 @@ static RPCHelpMan createrawtransaction()
|
||||
if (!request.params[3].isNull()) {
|
||||
rbf = request.params[3].get_bool();
|
||||
}
|
||||
CMutableTransaction rawTx = ConstructTransaction(request.params[0], request.params[1], request.params[2], rbf);
|
||||
CMutableTransaction rawTx = ConstructTransaction(request.params[0], request.params[1], request.params[2], rbf, self.Arg<uint32_t>("version"));
|
||||
|
||||
return EncodeHexTx(CTransaction(rawTx));
|
||||
},
|
||||
@@ -1679,7 +1682,7 @@ static RPCHelpMan createpsbt()
|
||||
if (!request.params[3].isNull()) {
|
||||
rbf = request.params[3].get_bool();
|
||||
}
|
||||
CMutableTransaction rawTx = ConstructTransaction(request.params[0], request.params[1], request.params[2], rbf);
|
||||
CMutableTransaction rawTx = ConstructTransaction(request.params[0], request.params[1], request.params[2], rbf, self.Arg<uint32_t>("version"));
|
||||
|
||||
// Make a blank psbt
|
||||
PartiallySignedTransaction psbtx;
|
||||
|
||||
Reference in New Issue
Block a user