df: get rid of unnecessary struct commit_rcvd

This commit is contained in:
niftynei 2021-01-19 19:29:55 -06:00 committed by neil saitug
parent 95e81ce82c
commit 0951e2c941

View File

@ -56,10 +56,7 @@ unsaved_channel_disconnect(struct channel *channel,
} }
/* FIXME: remove when used */ static struct channel_inflight *
struct channel_inflight *
channel_current_inflight(struct channel *channel);
struct channel_inflight *
channel_current_inflight(struct channel *channel) channel_current_inflight(struct channel *channel)
{ {
struct channel_inflight *inflight; struct channel_inflight *inflight;
@ -76,12 +73,36 @@ channel_current_inflight(struct channel *channel)
static void handle_signed_psbt(struct lightningd *ld, static void handle_signed_psbt(struct lightningd *ld,
struct subd *dualopend, struct subd *dualopend,
const struct wally_psbt *psbt, const struct wally_psbt *psbt,
struct commit_rcvd *rcvd) struct channel *channel)
{ {
/* Now that we've got the signed PSBT, save it */ struct channel_inflight *inflight;
// FIXME: save psbt ? struct bitcoin_txid txid;
channel_watch_funding(ld, rcvd->channel); inflight = channel_current_inflight(channel);
/* Check that we've got the same / correct PSBT */
psbt_txid(NULL, psbt, &txid, NULL);
if (!bitcoin_txid_eq(&inflight->funding->txid, &txid)) {
log_broken(channel->log,
"PSBT's txid does not match. %s != %s",
type_to_string(tmpctx, struct bitcoin_txid,
&txid),
type_to_string(tmpctx, struct bitcoin_txid,
&inflight->funding->txid));
/* FIXME: what's the ideal error handling here ? */
subd_send_msg(dualopend,
take(towire_dualopend_fail(NULL,
"Peer error with PSBT"
" signatures.")));
return;
}
/* Now that we've got the signed PSBT, save it */
tal_free(inflight->funding_psbt);
inflight->funding_psbt = tal_steal(inflight,
cast_const(struct wally_psbt *,
psbt));
wallet_inflight_save(ld->wallet, inflight);
channel_watch_funding(ld, channel);
/* Send peer our signatures */ /* Send peer our signatures */
subd_send_msg(dualopend, subd_send_msg(dualopend,
@ -210,7 +231,7 @@ openchannel2_hook_serialize(struct openchannel2_payload *payload,
struct openchannel2_psbt_payload { struct openchannel2_psbt_payload {
struct subd *dualopend; struct subd *dualopend;
struct wally_psbt *psbt; struct wally_psbt *psbt;
struct commit_rcvd *rcvd; struct channel *channel;
struct lightningd *ld; struct lightningd *ld;
}; };
@ -222,7 +243,7 @@ openchannel2_changed_hook_serialize(struct openchannel2_psbt_payload *payload,
json_add_psbt(stream, "psbt", payload->psbt); json_add_psbt(stream, "psbt", payload->psbt);
json_add_string(stream, "channel_id", json_add_string(stream, "channel_id",
type_to_string(tmpctx, struct channel_id, type_to_string(tmpctx, struct channel_id,
&payload->rcvd->cid)); &payload->channel->cid));
json_object_end(stream); json_object_end(stream);
} }
@ -234,7 +255,7 @@ openchannel2_sign_hook_serialize(struct openchannel2_psbt_payload *payload,
json_add_psbt(stream, "psbt", payload->psbt); json_add_psbt(stream, "psbt", payload->psbt);
json_add_string(stream, "channel_id", json_add_string(stream, "channel_id",
type_to_string(tmpctx, struct channel_id, type_to_string(tmpctx, struct channel_id,
&payload->rcvd->channel->cid)); &payload->channel->cid));
json_object_end(stream); json_object_end(stream);
} }
@ -838,7 +859,7 @@ openchannel2_sign_hook_cb(struct openchannel2_psbt_payload *payload STEALS)
if (!payload->dualopend) { if (!payload->dualopend) {
log_broken(payload->ld->log, "dualopend daemon died" log_broken(payload->ld->log, "dualopend daemon died"
" before signed PSBT returned"); " before signed PSBT returned");
channel_internal_error(payload->rcvd->channel, "daemon died"); channel_internal_error(payload->channel, "daemon died");
return; return;
} }
tal_del_destructor2(payload->dualopend, tal_del_destructor2(payload->dualopend,
@ -854,7 +875,7 @@ openchannel2_sign_hook_cb(struct openchannel2_psbt_payload *payload STEALS)
type_to_string(tmpctx, struct wally_psbt, payload->psbt)); type_to_string(tmpctx, struct wally_psbt, payload->psbt));
handle_signed_psbt(payload->ld, payload->dualopend, handle_signed_psbt(payload->ld, payload->dualopend,
payload->psbt, payload->rcvd); payload->psbt, payload->channel);
} }
REGISTER_PLUGIN_HOOK(openchannel2, REGISTER_PLUGIN_HOOK(openchannel2,
@ -2010,7 +2031,7 @@ static void handle_psbt_changed(struct subd *dualopend,
openchannel2_psbt_remove_dualopend, openchannel2_psbt_remove_dualopend,
payload); payload);
payload->psbt = tal_steal(payload, psbt); payload->psbt = tal_steal(payload, psbt);
// FIXME: payload->channel = channel; payload->channel = channel;
plugin_hook_call_openchannel2_changed(dualopend->ld, payload); plugin_hook_call_openchannel2_changed(dualopend->ld, payload);
return; return;
} }
@ -2135,11 +2156,11 @@ static void handle_commit_received(struct subd *dualopend,
tal_add_destructor2(dualopend, tal_add_destructor2(dualopend,
openchannel2_psbt_remove_dualopend, openchannel2_psbt_remove_dualopend,
payload); payload);
// FIXME: payload->channel = channel; payload->channel = channel;
payload->psbt = clone_psbt(payload, inflight->funding_psbt); payload->psbt = clone_psbt(payload, inflight->funding_psbt);
/* We don't have a command, so set to NULL here */ /* We don't have a command, so set to NULL here */
// FIXME: payload->channel->openchannel_signed_cmd = NULL; payload->channel->openchannel_signed_cmd = NULL;
/* We call out to hook who will /* We call out to hook who will
* provide signatures for us! */ * provide signatures for us! */
plugin_hook_call_openchannel2_sign(ld, payload); plugin_hook_call_openchannel2_sign(ld, payload);