mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-22 06:41:44 +01:00
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.
35 lines
929 B
C
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;
|
|
}
|