Skip to content

Commit f4c36e5

Browse files
committed
Add RefundingV2 phase (for splicing)
1 parent 93891d3 commit f4c36e5

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

lightning/src/ln/channel.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1184,6 +1184,9 @@ enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
11841184
UnfundedInboundV1(InboundV1Channel<SP>),
11851185
UnfundedV2(PendingV2Channel<SP>),
11861186
Funded(FundedChannel<SP>),
1187+
/// Used during splicing, channel is funded but a new funding is being renegotiated.
1188+
#[cfg(splicing)]
1189+
RefundingV2(FundedChannel<SP>),
11871190
}
11881191

11891192
impl<SP: Deref> Channel<SP> where
@@ -1197,6 +1200,8 @@ impl<SP: Deref> Channel<SP> where
11971200
ChannelPhase::UnfundedOutboundV1(chan) => &chan.context,
11981201
ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
11991202
ChannelPhase::UnfundedV2(chan) => &chan.context,
1203+
#[cfg(splicing)]
1204+
ChannelPhase::RefundingV2(chan) => &chan.context,
12001205
}
12011206
}
12021207

@@ -1207,6 +1212,8 @@ impl<SP: Deref> Channel<SP> where
12071212
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.context,
12081213
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.context,
12091214
ChannelPhase::UnfundedV2(chan) => &mut chan.context,
1215+
#[cfg(splicing)]
1216+
ChannelPhase::RefundingV2(chan) => &mut chan.context,
12101217
}
12111218
}
12121219

@@ -1217,6 +1224,8 @@ impl<SP: Deref> Channel<SP> where
12171224
ChannelPhase::UnfundedOutboundV1(chan) => &chan.funding,
12181225
ChannelPhase::UnfundedInboundV1(chan) => &chan.funding,
12191226
ChannelPhase::UnfundedV2(chan) => &chan.funding,
1227+
#[cfg(splicing)]
1228+
ChannelPhase::RefundingV2(chan) => &chan.funding,
12201229
}
12211230
}
12221231

@@ -1228,6 +1237,8 @@ impl<SP: Deref> Channel<SP> where
12281237
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.funding,
12291238
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.funding,
12301239
ChannelPhase::UnfundedV2(chan) => &mut chan.funding,
1240+
#[cfg(splicing)]
1241+
ChannelPhase::RefundingV2(chan) => &mut chan.funding,
12311242
}
12321243
}
12331244

@@ -1238,6 +1249,8 @@ impl<SP: Deref> Channel<SP> where
12381249
ChannelPhase::UnfundedOutboundV1(chan) => (&chan.funding, &mut chan.context),
12391250
ChannelPhase::UnfundedInboundV1(chan) => (&chan.funding, &mut chan.context),
12401251
ChannelPhase::UnfundedV2(chan) => (&chan.funding, &mut chan.context),
1252+
#[cfg(splicing)]
1253+
ChannelPhase::RefundingV2(chan) => (&chan.funding, &mut chan.context),
12411254
}
12421255
}
12431256

@@ -1248,6 +1261,8 @@ impl<SP: Deref> Channel<SP> where
12481261
ChannelPhase::UnfundedOutboundV1(chan) => Some(&mut chan.unfunded_context),
12491262
ChannelPhase::UnfundedInboundV1(chan) => Some(&mut chan.unfunded_context),
12501263
ChannelPhase::UnfundedV2(chan) => Some(&mut chan.unfunded_context),
1264+
#[cfg(splicing)]
1265+
ChannelPhase::RefundingV2(_) => { debug_assert!(false); None },
12511266
}
12521267
}
12531268

@@ -1355,6 +1370,8 @@ impl<SP: Deref> Channel<SP> where
13551370
})
13561371
},
13571372
ChannelPhase::UnfundedV2(_) => None,
1373+
#[cfg(splicing)]
1374+
ChannelPhase::RefundingV2(chan) => Some(chan.signer_maybe_unblocked(logger)),
13581375
}
13591376
}
13601377

@@ -1374,6 +1391,8 @@ impl<SP: Deref> Channel<SP> where
13741391
ChannelPhase::UnfundedOutboundV1(chan) => chan.is_resumable(),
13751392
ChannelPhase::UnfundedInboundV1(_) => false,
13761393
ChannelPhase::UnfundedV2(_) => false,
1394+
#[cfg(splicing)]
1395+
ChannelPhase::RefundingV2(chan) => chan.remove_uncommitted_htlcs_and_mark_paused(logger).is_ok(),
13771396
}
13781397
}
13791398

@@ -1411,6 +1430,9 @@ impl<SP: Deref> Channel<SP> where
14111430
ReconnectionMsg::None
14121431
}
14131432
},
1433+
#[cfg(splicing)]
1434+
ChannelPhase::RefundingV2(chan) =>
1435+
ReconnectionMsg::Reestablish(chan.get_channel_reestablish(logger)),
14141436
}
14151437
}
14161438

@@ -1438,6 +1460,8 @@ impl<SP: Deref> Channel<SP> where
14381460
Ok(None)
14391461
}
14401462
},
1463+
#[cfg(splicing)]
1464+
ChannelPhase::RefundingV2(_) => Ok(None),
14411465
}
14421466
}
14431467

0 commit comments

Comments
 (0)