psbt: only compare a subset of psbt input/output fields

At some point, it's ok to add more extra info to a psbt and still not
have that be counted as 'diff'd.
This commit is contained in:
niftynei 2020-09-09 19:40:29 +09:30 committed by Rusty Russell
parent b3cbb0b653
commit 169b7817dc
2 changed files with 16 additions and 4 deletions

View File

@ -72,8 +72,15 @@ static const u8 *linearize_input(const tal_t *ctx,
/* Sort the inputs, so serializing them is ok */
wally_map_sort(&psbt->inputs[0].unknowns, 0);
wally_map_sort(&psbt->inputs[0].keypaths, 0);
wally_map_sort(&psbt->inputs[0].signatures, 0);
/* signatures, keypaths, etc - we dont care if they change */
psbt->inputs[0].final_witness = NULL;
psbt->inputs[0].final_scriptsig_len = 0;
psbt->inputs[0].witness_script_len = 0;
psbt->inputs[0].redeem_script_len = 0;
psbt->inputs[0].keypaths.num_items = 0;
psbt->inputs[0].signatures.num_items = 0;
const u8 *bytes = psbt_get_bytes(ctx, psbt, &byte_len);
@ -102,7 +109,12 @@ static const u8 *linearize_output(const tal_t *ctx,
psbt->num_outputs++;
/* Sort the outputs, so serializing them is ok */
wally_map_sort(&psbt->outputs[0].unknowns, 0);
wally_map_sort(&psbt->outputs[0].keypaths, 0);
/* We don't care if the keypaths change */
psbt->outputs[0].keypaths.num_items = 0;
/* And you can add scripts, no problem */
psbt->outputs[0].witness_script_len = 0;
psbt->outputs[0].redeem_script_len = 0;
const u8 *bytes = psbt_get_bytes(ctx, psbt, &byte_len);

View File

@ -218,7 +218,7 @@ openchannel2_changed_hook_serialize(struct openchannel2_psbt_payload *payload,
json_add_psbt(stream, "psbt", payload->psbt);
json_add_string(stream, "channel_id",
type_to_string(tmpctx, struct channel_id,
&payload->rcvd->channel->cid));
&payload->rcvd->cid));
json_object_end(stream);
}