core-lightning/channeld/splice.c
Dusty Daemon a6a9e5b1e3 splice: Reestablish when commit or sig sends fail
Adds tests for when the connection fails during
1) splice tx_signature
2) splice commitment_signed

Fleshed out the reestablish flow for these two cases and implemented the fixes to make these reestablish flows work.

Part of this work required changing commit process for splices: Now we send a single commit_part for the splice where previously we sent all commits, and accordingly, we no longer revoke in response.

Changelog-Fixed: Implemented splicing restart logic for tx_signature and commitment_signed. Splice commitments are reworked in a manner incompatible with the last version.
2023-11-20 07:35:22 +01:00

35 lines
929 B
C

#include "config.h"
#include <ccan/tal/tal.h>
#include <channeld/splice.h>
struct splice_state *splice_state_new(const tal_t *ctx)
{
struct splice_state *splice_state = tal(ctx, struct splice_state);
splice_state->count = 0;
splice_state->locked_ready[LOCAL] = false;
splice_state->locked_ready[REMOTE] = false;
splice_state->await_commitment_succcess = false;
splice_state->inflights = NULL;
return splice_state;
}
struct splicing *splicing_new(const tal_t *ctx)
{
struct splicing *splicing = tal(ctx, struct splicing);
splicing->opener_relative = 0;
splicing->accepter_relative = 0;
splicing->feerate_per_kw = 0;
splicing->force_feerate = false;
splicing->force_sign_first = false;
splicing->mode = false;
splicing->tx_add_input_count = 0;
splicing->tx_add_output_count = 0;
splicing->current_psbt = NULL;
splicing->received_tx_complete = false;
splicing->sent_tx_complete = false;
return splicing;
}