mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 14:38:29 +01:00
Additionally treat Tx.nVersion as unsigned in joinpsbts
This gets its own release note callout, though doesn't appear to violate the BIP as the BIP appears to be underspecified. We probably want to update BIP 174 to mention how version numbers are combined.
This commit is contained in:
@@ -1566,7 +1566,7 @@ UniValue joinpsbts(const JSONRPCRequest& request)
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "At least two PSBTs are required to join PSBTs.");
|
||||
}
|
||||
|
||||
int32_t best_version = 1;
|
||||
uint32_t best_version = 1;
|
||||
uint32_t best_locktime = 0xffffffff;
|
||||
for (unsigned int i = 0; i < txs.size(); ++i) {
|
||||
PartiallySignedTransaction psbtx;
|
||||
@@ -1576,8 +1576,8 @@ UniValue joinpsbts(const JSONRPCRequest& request)
|
||||
}
|
||||
psbtxs.push_back(psbtx);
|
||||
// Choose the highest version number
|
||||
if (psbtx.tx->nVersion > best_version) {
|
||||
best_version = psbtx.tx->nVersion;
|
||||
if (static_cast<uint32_t>(psbtx.tx->nVersion) > best_version) {
|
||||
best_version = static_cast<uint32_t>(psbtx.tx->nVersion);
|
||||
}
|
||||
// Choose the lowest lock time
|
||||
if (psbtx.tx->nLockTime < best_locktime) {
|
||||
@@ -1588,7 +1588,7 @@ UniValue joinpsbts(const JSONRPCRequest& request)
|
||||
// Create a blank psbt where everything will be added
|
||||
PartiallySignedTransaction merged_psbt;
|
||||
merged_psbt.tx = CMutableTransaction();
|
||||
merged_psbt.tx->nVersion = best_version;
|
||||
merged_psbt.tx->nVersion = static_cast<int32_t>(best_version);
|
||||
merged_psbt.tx->nLockTime = best_locktime;
|
||||
|
||||
// Merge
|
||||
|
||||
Reference in New Issue
Block a user