@@ -1189,6 +1189,9 @@ enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
1189
1189
UnfundedInboundV1(InboundV1Channel<SP>),
1190
1190
UnfundedV2(PendingV2Channel<SP>),
1191
1191
Funded(FundedChannel<SP>),
1192
+ /// Used during splicing, channel is funded but a new funding is being renegotiated.
1193
+ #[cfg(splicing)]
1194
+ RefundingV2(FundedChannel<SP>),
1192
1195
}
1193
1196
1194
1197
impl<SP: Deref> Channel<SP> where
@@ -1202,6 +1205,8 @@ impl<SP: Deref> Channel<SP> where
1202
1205
ChannelPhase::UnfundedOutboundV1(chan) => &chan.context,
1203
1206
ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
1204
1207
ChannelPhase::UnfundedV2(chan) => &chan.context,
1208
+ #[cfg(splicing)]
1209
+ ChannelPhase::RefundingV2(chan) => &chan.context,
1205
1210
}
1206
1211
}
1207
1212
@@ -1212,6 +1217,8 @@ impl<SP: Deref> Channel<SP> where
1212
1217
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.context,
1213
1218
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.context,
1214
1219
ChannelPhase::UnfundedV2(chan) => &mut chan.context,
1220
+ #[cfg(splicing)]
1221
+ ChannelPhase::RefundingV2(chan) => &mut chan.context,
1215
1222
}
1216
1223
}
1217
1224
@@ -1222,6 +1229,8 @@ impl<SP: Deref> Channel<SP> where
1222
1229
ChannelPhase::UnfundedOutboundV1(chan) => &chan.funding,
1223
1230
ChannelPhase::UnfundedInboundV1(chan) => &chan.funding,
1224
1231
ChannelPhase::UnfundedV2(chan) => &chan.funding,
1232
+ #[cfg(splicing)]
1233
+ ChannelPhase::RefundingV2(chan) => &chan.funding,
1225
1234
}
1226
1235
}
1227
1236
@@ -1233,6 +1242,8 @@ impl<SP: Deref> Channel<SP> where
1233
1242
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.funding,
1234
1243
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.funding,
1235
1244
ChannelPhase::UnfundedV2(chan) => &mut chan.funding,
1245
+ #[cfg(splicing)]
1246
+ ChannelPhase::RefundingV2(chan) => &mut chan.funding,
1236
1247
}
1237
1248
}
1238
1249
@@ -1243,6 +1254,8 @@ impl<SP: Deref> Channel<SP> where
1243
1254
ChannelPhase::UnfundedOutboundV1(chan) => (&chan.funding, &mut chan.context),
1244
1255
ChannelPhase::UnfundedInboundV1(chan) => (&chan.funding, &mut chan.context),
1245
1256
ChannelPhase::UnfundedV2(chan) => (&chan.funding, &mut chan.context),
1257
+ #[cfg(splicing)]
1258
+ ChannelPhase::RefundingV2(chan) => (&chan.funding, &mut chan.context),
1246
1259
}
1247
1260
}
1248
1261
@@ -1253,6 +1266,8 @@ impl<SP: Deref> Channel<SP> where
1253
1266
ChannelPhase::UnfundedOutboundV1(chan) => Some(&mut chan.unfunded_context),
1254
1267
ChannelPhase::UnfundedInboundV1(chan) => Some(&mut chan.unfunded_context),
1255
1268
ChannelPhase::UnfundedV2(chan) => Some(&mut chan.unfunded_context),
1269
+ #[cfg(splicing)]
1270
+ ChannelPhase::RefundingV2(_) => { debug_assert!(false); None },
1256
1271
}
1257
1272
}
1258
1273
@@ -1360,6 +1375,8 @@ impl<SP: Deref> Channel<SP> where
1360
1375
})
1361
1376
},
1362
1377
ChannelPhase::UnfundedV2(_) => None,
1378
+ #[cfg(splicing)]
1379
+ ChannelPhase::RefundingV2(chan) => Some(chan.signer_maybe_unblocked(logger)),
1363
1380
}
1364
1381
}
1365
1382
@@ -1379,6 +1396,8 @@ impl<SP: Deref> Channel<SP> where
1379
1396
ChannelPhase::UnfundedOutboundV1(chan) => chan.is_resumable(),
1380
1397
ChannelPhase::UnfundedInboundV1(_) => false,
1381
1398
ChannelPhase::UnfundedV2(_) => false,
1399
+ #[cfg(splicing)]
1400
+ ChannelPhase::RefundingV2(chan) => chan.remove_uncommitted_htlcs_and_mark_paused(logger).is_ok(),
1382
1401
}
1383
1402
}
1384
1403
@@ -1416,6 +1435,9 @@ impl<SP: Deref> Channel<SP> where
1416
1435
ReconnectionMsg::None
1417
1436
}
1418
1437
},
1438
+ #[cfg(splicing)]
1439
+ ChannelPhase::RefundingV2(chan) =>
1440
+ ReconnectionMsg::Reestablish(chan.get_channel_reestablish(logger)),
1419
1441
}
1420
1442
}
1421
1443
@@ -1443,6 +1465,8 @@ impl<SP: Deref> Channel<SP> where
1443
1465
Ok(None)
1444
1466
}
1445
1467
},
1468
+ #[cfg(splicing)]
1469
+ ChannelPhase::RefundingV2(_) => Ok(None),
1446
1470
}
1447
1471
}
1448
1472
0 commit comments