@@ -1183,6 +1183,9 @@ enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
1183
1183
UnfundedInboundV1(InboundV1Channel<SP>),
1184
1184
UnfundedV2(PendingV2Channel<SP>),
1185
1185
Funded(FundedChannel<SP>),
1186
+ /// Used during splicing, channel is funded but a new funding is being renegotiated.
1187
+ #[cfg(splicing)]
1188
+ RefundingV2(FundedChannel<SP>),
1186
1189
}
1187
1190
1188
1191
impl<SP: Deref> Channel<SP> where
@@ -1196,6 +1199,8 @@ impl<SP: Deref> Channel<SP> where
1196
1199
ChannelPhase::UnfundedOutboundV1(chan) => &chan.context,
1197
1200
ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
1198
1201
ChannelPhase::UnfundedV2(chan) => &chan.context,
1202
+ #[cfg(splicing)]
1203
+ ChannelPhase::RefundingV2(chan) => &chan.context,
1199
1204
}
1200
1205
}
1201
1206
@@ -1206,6 +1211,8 @@ impl<SP: Deref> Channel<SP> where
1206
1211
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.context,
1207
1212
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.context,
1208
1213
ChannelPhase::UnfundedV2(chan) => &mut chan.context,
1214
+ #[cfg(splicing)]
1215
+ ChannelPhase::RefundingV2(chan) => &mut chan.context,
1209
1216
}
1210
1217
}
1211
1218
@@ -1216,6 +1223,8 @@ impl<SP: Deref> Channel<SP> where
1216
1223
ChannelPhase::UnfundedOutboundV1(chan) => &chan.funding,
1217
1224
ChannelPhase::UnfundedInboundV1(chan) => &chan.funding,
1218
1225
ChannelPhase::UnfundedV2(chan) => &chan.funding,
1226
+ #[cfg(splicing)]
1227
+ ChannelPhase::RefundingV2(chan) => &chan.funding,
1219
1228
}
1220
1229
}
1221
1230
@@ -1227,6 +1236,8 @@ impl<SP: Deref> Channel<SP> where
1227
1236
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.funding,
1228
1237
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.funding,
1229
1238
ChannelPhase::UnfundedV2(chan) => &mut chan.funding,
1239
+ #[cfg(splicing)]
1240
+ ChannelPhase::RefundingV2(chan) => &mut chan.funding,
1230
1241
}
1231
1242
}
1232
1243
@@ -1237,6 +1248,8 @@ impl<SP: Deref> Channel<SP> where
1237
1248
ChannelPhase::UnfundedOutboundV1(chan) => (&chan.funding, &mut chan.context),
1238
1249
ChannelPhase::UnfundedInboundV1(chan) => (&chan.funding, &mut chan.context),
1239
1250
ChannelPhase::UnfundedV2(chan) => (&chan.funding, &mut chan.context),
1251
+ #[cfg(splicing)]
1252
+ ChannelPhase::RefundingV2(chan) => (&chan.funding, &mut chan.context),
1240
1253
}
1241
1254
}
1242
1255
@@ -1247,6 +1260,8 @@ impl<SP: Deref> Channel<SP> where
1247
1260
ChannelPhase::UnfundedOutboundV1(chan) => Some(&mut chan.unfunded_context),
1248
1261
ChannelPhase::UnfundedInboundV1(chan) => Some(&mut chan.unfunded_context),
1249
1262
ChannelPhase::UnfundedV2(chan) => Some(&mut chan.unfunded_context),
1263
+ #[cfg(splicing)]
1264
+ ChannelPhase::RefundingV2(_) => { debug_assert!(false); None },
1250
1265
}
1251
1266
}
1252
1267
@@ -1354,6 +1369,8 @@ impl<SP: Deref> Channel<SP> where
1354
1369
})
1355
1370
},
1356
1371
ChannelPhase::UnfundedV2(_) => None,
1372
+ #[cfg(splicing)]
1373
+ ChannelPhase::RefundingV2(chan) => Some(chan.signer_maybe_unblocked(logger)),
1357
1374
}
1358
1375
}
1359
1376
@@ -1373,6 +1390,8 @@ impl<SP: Deref> Channel<SP> where
1373
1390
ChannelPhase::UnfundedOutboundV1(chan) => chan.is_resumable(),
1374
1391
ChannelPhase::UnfundedInboundV1(_) => false,
1375
1392
ChannelPhase::UnfundedV2(_) => false,
1393
+ #[cfg(splicing)]
1394
+ ChannelPhase::RefundingV2(chan) => chan.remove_uncommitted_htlcs_and_mark_paused(logger).is_ok(),
1376
1395
}
1377
1396
}
1378
1397
@@ -1410,6 +1429,9 @@ impl<SP: Deref> Channel<SP> where
1410
1429
ReconnectionMsg::None
1411
1430
}
1412
1431
},
1432
+ #[cfg(splicing)]
1433
+ ChannelPhase::RefundingV2(chan) =>
1434
+ ReconnectionMsg::Reestablish(chan.get_channel_reestablish(logger)),
1413
1435
}
1414
1436
}
1415
1437
@@ -1437,6 +1459,8 @@ impl<SP: Deref> Channel<SP> where
1437
1459
Ok(None)
1438
1460
}
1439
1461
},
1462
+ #[cfg(splicing)]
1463
+ ChannelPhase::RefundingV2(_) => Ok(None),
1440
1464
}
1441
1465
}
1442
1466
0 commit comments