Skip to content

Commit 366cacb

Browse files
remyersddustin
authored andcommitted
Fixed splice_locked messgae to include splice_txid field
1 parent 7b18184 commit 366cacb

File tree

3 files changed

+15
-8
lines changed

3 files changed

+15
-8
lines changed

channeld/channeld.c

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -511,13 +511,14 @@ static void check_mutual_splice_locked(struct peer *peer)
511511
}
512512

513513
/* Our peer told us they saw our splice confirm on chain with `splice_locked`.
514-
* If we see it to we jump into tansitioning to post-splice, otherwise we mark
514+
* If we see it to we jump into transitioning to post-splice, otherwise we mark
515515
* a flag and wait until we see it on chain too. */
516516
static void handle_peer_splice_locked(struct peer *peer, const u8 *msg)
517517
{
518518
struct channel_id chanid;
519+
struct bitcoin_txid splice_txid;
519520

520-
if (!fromwire_splice_locked(msg, &chanid))
521+
if (!fromwire_splice_locked(msg, &chanid, &splice_txid))
521522
peer_failed_warn(peer->pps, &peer->channel_id,
522523
"Bad splice_locked %s", tal_hex(msg, msg));
523524

@@ -5190,7 +5191,8 @@ static void peer_reconnect(struct peer *peer,
51905191
" chain -- resending splice_locked");
51915192
peer_write(peer->pps,
51925193
take(towire_splice_locked(NULL,
5193-
&peer->channel_id)));
5194+
&peer->channel_id,
5195+
&inflight->outpoint.txid)));
51945196
peer->splice_state->locked_ready[LOCAL] = true;
51955197
} else if (bitcoin_txid_eq(remote_next_funding,
51965198
&inflight->outpoint.txid)) {
@@ -5236,7 +5238,9 @@ static void peer_reconnect(struct peer *peer,
52365238
status_info("We have no pending splice but peer"
52375239
" expects one; resending splice_lock");
52385240
peer_write(peer->pps,
5239-
take(towire_splice_locked(NULL, &peer->channel_id)));
5241+
take(towire_splice_locked(NULL,
5242+
&peer->channel_id,
5243+
&peer->channel->funding.txid)));
52405244
}
52415245
else {
52425246
splice_abort(peer, "next_funding_txid not recognized."
@@ -5630,10 +5634,11 @@ static void handle_funding_depth(struct peer *peer, const u8 *msg)
56305634
}
56315635
}
56325636

5633-
msg = towire_splice_locked(NULL, &peer->channel_id);
5634-
56355637
peer->splice_state->locked_txid = txid;
56365638

5639+
msg = towire_splice_locked(NULL, &peer->channel_id,
5640+
&txid);
5641+
56375642
peer_write(peer->pps, take(msg));
56385643

56395644
peer->splice_state->locked_ready[LOCAL] = true;

tests/fuzz/fuzz-wire-splice_locked.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,19 @@
55

66
struct splice_locked {
77
struct channel_id channel_id;
8+
struct bitcoin_txid txid;
89
};
910

1011
static void *encode(const tal_t *ctx, const struct splice_locked *s)
1112
{
12-
return towire_splice_locked(ctx, &s->channel_id);
13+
return towire_splice_locked(ctx, &s->channel_id, &s->txid);
1314
}
1415

1516
static struct splice_locked *decode(const tal_t *ctx, const void *p)
1617
{
1718
struct splice_locked *s = tal(ctx, struct splice_locked);
1819

19-
if (fromwire_splice_locked(p, &s->channel_id))
20+
if (fromwire_splice_locked(p, &s->channel_id, &s->txid))
2021
return s;
2122
return tal_free(s);
2223
}

wire/peer_wire.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ msgdata,splice_ack,relative_satoshis,s64,
223223
msgdata,splice_ack,funding_pubkey,point,
224224
msgtype,splice_locked,77,
225225
msgdata,splice_locked,channel_id,channel_id,
226+
msgdata,splice_locked,splice_txid,sha256,
226227
msgtype,shutdown,38
227228
msgdata,shutdown,channel_id,channel_id,
228229
msgdata,shutdown,len,u16,

0 commit comments

Comments
 (0)