Remove op== on PSBTs; check compatibility in Merge

Remove the op== on PartiallySignedTransaction, which only checks that the
CTransactions are equal. Instead, check this directly in Merge, and return
false if the CTransactions are not equal (so the PSBTs cannot be merged.)
This commit is contained in:
Glenn Willen
2019-01-29 22:51:56 -08:00
parent bd0dbe8763
commit 78b9893d02
3 changed files with 13 additions and 14 deletions

View File

@@ -1481,10 +1481,9 @@ UniValue combinepsbt(const JSONRPCRequest& request)
// Merge
for (auto it = std::next(psbtxs.begin()); it != psbtxs.end(); ++it) {
if (*it != merged_psbt) {
if (!merged_psbt.Merge(*it)) {
throw JSONRPCError(RPC_INVALID_PARAMETER, "PSBTs do not refer to the same transactions.");
}
merged_psbt.Merge(*it);
}
if (!merged_psbt.IsSane()) {
throw JSONRPCError(RPC_INVALID_PARAMETER, "Merged PSBT is inconsistent");