From 06b15f648f3aa3536e24ac8f68d83aa2aa73dd3c Mon Sep 17 00:00:00 2001 From: niftynei Date: Tue, 24 Nov 2020 15:07:31 -0600 Subject: [PATCH] dual_open: move two functions we'll call them from elsewhere later --- lightningd/dual_open_control.c | 156 ++++++++++++++++----------------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/lightningd/dual_open_control.c b/lightningd/dual_open_control.c index 39f616de6..646a49731 100644 --- a/lightningd/dual_open_control.c +++ b/lightningd/dual_open_control.c @@ -942,84 +942,6 @@ cleanup: tal_free(uc); } -static void accepter_psbt_changed(struct subd *dualopend, - const u8 *msg) -{ - u64 unused; - struct openchannel2_psbt_payload *payload = - tal(dualopend, struct openchannel2_psbt_payload); - payload->dualopend = dualopend; - payload->psbt = NULL; - payload->rcvd = tal(payload, struct commit_rcvd); - - if (!fromwire_dualopend_psbt_changed(payload, msg, - &payload->rcvd->cid, - &unused, - &payload->psbt)) { - log_broken(dualopend->log, "Malformed dual_open_psbt_changed %s", - tal_hex(tmpctx, msg)); - tal_free(dualopend); - return; - } - - tal_add_destructor2(dualopend, openchannel2_psbt_remove_dualopend, payload); - plugin_hook_call_openchannel2_changed(dualopend->ld, payload); -} - -static void accepter_got_offer(struct subd *dualopend, - struct uncommitted_channel *uc, - const u8 *msg) -{ - struct openchannel2_payload *payload; - - if (peer_active_channel(uc->peer)) { - subd_send_msg(dualopend, - take(towire_dualopend_fail(NULL, "Already have active channel"))); - return; - } - - payload = tal(dualopend, struct openchannel2_payload); - payload->dualopend = dualopend; - payload->psbt = NULL; - payload->accepter_funding = AMOUNT_SAT(0); - payload->our_shutdown_scriptpubkey = NULL; - payload->peer_id = uc->peer->id; - - if (!fromwire_dualopend_got_offer(payload, msg, - &payload->their_funding, - &payload->dust_limit_satoshis, - &payload->max_htlc_value_in_flight_msat, - &payload->htlc_minimum_msat, - &payload->funding_feerate_max, - &payload->funding_feerate_min, - &payload->funding_feerate_best, - &payload->commitment_feerate_per_kw, - &payload->to_self_delay, - &payload->max_accepted_htlcs, - &payload->channel_flags, - &payload->locktime, - &payload->shutdown_scriptpubkey)) { - log_broken(uc->log, "Malformed dual_open_got_offer %s", - tal_hex(tmpctx, msg)); - tal_free(dualopend); - return; - } - - /* As a convenience to the plugin, we provide our current known - * min + max feerates. Ideally, the plugin will fail to - * contribute funds if the peer's feerate range is outside of - * this acceptable range, but we delegate that decision to - * the plugin's logic */ - payload->feerate_our_min = feerate_min(dualopend->ld, NULL); - payload->feerate_our_max = feerate_max(dualopend->ld, NULL); - - /* Set the inital to feerate to zero, in case there is no plugin */ - payload->funding_feerate_per_kw = 0; - - tal_add_destructor2(dualopend, openchannel2_remove_dualopend, payload); - plugin_hook_call_openchannel2(dualopend->ld, payload); -} - struct channel_send { const struct wally_tx *wtx; struct channel *channel; @@ -1118,6 +1040,84 @@ static void send_funding_tx(struct channel *channel, sendfunding_done, cs); } +static void accepter_psbt_changed(struct subd *dualopend, + const u8 *msg) +{ + u64 unused; + struct openchannel2_psbt_payload *payload = + tal(dualopend, struct openchannel2_psbt_payload); + payload->dualopend = dualopend; + payload->psbt = NULL; + payload->rcvd = tal(payload, struct commit_rcvd); + + if (!fromwire_dualopend_psbt_changed(payload, msg, + &payload->rcvd->cid, + &unused, + &payload->psbt)) { + log_broken(dualopend->log, "Malformed dual_open_psbt_changed %s", + tal_hex(tmpctx, msg)); + tal_free(dualopend); + return; + } + + tal_add_destructor2(dualopend, openchannel2_psbt_remove_dualopend, payload); + plugin_hook_call_openchannel2_changed(dualopend->ld, payload); +} + +static void accepter_got_offer(struct subd *dualopend, + struct uncommitted_channel *uc, + const u8 *msg) +{ + struct openchannel2_payload *payload; + + if (peer_active_channel(uc->peer)) { + subd_send_msg(dualopend, + take(towire_dualopend_fail(NULL, "Already have active channel"))); + return; + } + + payload = tal(dualopend, struct openchannel2_payload); + payload->dualopend = dualopend; + payload->psbt = NULL; + payload->accepter_funding = AMOUNT_SAT(0); + payload->our_shutdown_scriptpubkey = NULL; + payload->peer_id = uc->peer->id; + + if (!fromwire_dualopend_got_offer(payload, msg, + &payload->their_funding, + &payload->dust_limit_satoshis, + &payload->max_htlc_value_in_flight_msat, + &payload->htlc_minimum_msat, + &payload->funding_feerate_max, + &payload->funding_feerate_min, + &payload->funding_feerate_best, + &payload->commitment_feerate_per_kw, + &payload->to_self_delay, + &payload->max_accepted_htlcs, + &payload->channel_flags, + &payload->locktime, + &payload->shutdown_scriptpubkey)) { + log_broken(uc->log, "Malformed dual_open_got_offer %s", + tal_hex(tmpctx, msg)); + tal_free(dualopend); + return; + } + + /* As a convenience to the plugin, we provide our current known + * min + max feerates. Ideally, the plugin will fail to + * contribute funds if the peer's feerate range is outside of + * this acceptable range, but we delegate that decision to + * the plugin's logic */ + payload->feerate_our_min = feerate_min(dualopend->ld, NULL); + payload->feerate_our_max = feerate_max(dualopend->ld, NULL); + + /* Set the inital to feerate to zero, in case there is no plugin */ + payload->funding_feerate_per_kw = 0; + + tal_add_destructor2(dualopend, openchannel2_remove_dualopend, payload); + plugin_hook_call_openchannel2(dualopend->ld, payload); +} + static void peer_tx_sigs_msg(struct subd *dualopend, const u8 *msg) {