Skip to content

Commit

Permalink
Merge global xpubs in joinpsbts and combinepsbts
Browse files Browse the repository at this point in the history
  • Loading branch information
achow101 committed Nov 20, 2019
1 parent f0c14dc commit 951f5ee
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/psbt.cpp
Expand Up @@ -30,6 +30,13 @@ bool PartiallySignedTransaction::Merge(const PartiallySignedTransaction& psbt)
for (unsigned int i = 0; i < outputs.size(); ++i) {
outputs[i].Merge(psbt.outputs[i]);
}
for (auto xpub_pair : psbt.xpubs) {
if (xpubs.count(xpub_pair.first) == 0) {
xpubs[xpub_pair.first] = xpub_pair.second;
} else {
xpubs[xpub_pair.first].insert(xpub_pair.second.begin(), xpub_pair.second.end());
}
}
unknown.insert(psbt.unknown.begin(), psbt.unknown.end());

return true;
Expand Down
7 changes: 7 additions & 0 deletions src/rpc/rawtransaction.cpp
Expand Up @@ -1638,6 +1638,13 @@ UniValue joinpsbts(const JSONRPCRequest& request)
for (unsigned int i = 0; i < psbt.tx->vout.size(); ++i) {
merged_psbt.AddOutput(psbt.tx->vout[i], psbt.outputs[i]);
}
for (auto xpub_pair : psbt.xpubs) {
if (merged_psbt.xpubs.count(xpub_pair.first) == 0) {
merged_psbt.xpubs[xpub_pair.first] = xpub_pair.second;
} else {
merged_psbt.xpubs[xpub_pair.first].insert(xpub_pair.second.begin(), xpub_pair.second.end());
}
}
merged_psbt.unknown.insert(psbt.unknown.begin(), psbt.unknown.end());
}

Expand Down

0 comments on commit 951f5ee

Please sign in to comment.