@@ -1186,6 +1186,9 @@ enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
1186
1186
UnfundedInboundV1(InboundV1Channel<SP>),
1187
1187
UnfundedV2(PendingV2Channel<SP>),
1188
1188
Funded(FundedChannel<SP>),
1189
+ /// Used during splicing, channel is funded but a new funding is being renegotiated.
1190
+ #[cfg(splicing)]
1191
+ RefundingV2(FundedChannel<SP>),
1189
1192
}
1190
1193
1191
1194
impl<SP: Deref> Channel<SP> where
@@ -1199,6 +1202,8 @@ impl<SP: Deref> Channel<SP> where
1199
1202
ChannelPhase::UnfundedOutboundV1(chan) => &chan.context,
1200
1203
ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
1201
1204
ChannelPhase::UnfundedV2(chan) => &chan.context,
1205
+ #[cfg(splicing)]
1206
+ ChannelPhase::RefundingV2(chan) => &chan.context,
1202
1207
}
1203
1208
}
1204
1209
@@ -1209,6 +1214,8 @@ impl<SP: Deref> Channel<SP> where
1209
1214
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.context,
1210
1215
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.context,
1211
1216
ChannelPhase::UnfundedV2(chan) => &mut chan.context,
1217
+ #[cfg(splicing)]
1218
+ ChannelPhase::RefundingV2(chan) => &mut chan.context,
1212
1219
}
1213
1220
}
1214
1221
@@ -1219,6 +1226,8 @@ impl<SP: Deref> Channel<SP> where
1219
1226
ChannelPhase::UnfundedOutboundV1(chan) => &chan.funding,
1220
1227
ChannelPhase::UnfundedInboundV1(chan) => &chan.funding,
1221
1228
ChannelPhase::UnfundedV2(chan) => &chan.funding,
1229
+ #[cfg(splicing)]
1230
+ ChannelPhase::RefundingV2(chan) => &chan.funding,
1222
1231
}
1223
1232
}
1224
1233
@@ -1230,6 +1239,8 @@ impl<SP: Deref> Channel<SP> where
1230
1239
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.funding,
1231
1240
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.funding,
1232
1241
ChannelPhase::UnfundedV2(chan) => &mut chan.funding,
1242
+ #[cfg(splicing)]
1243
+ ChannelPhase::RefundingV2(chan) => &mut chan.funding,
1233
1244
}
1234
1245
}
1235
1246
@@ -1240,6 +1251,8 @@ impl<SP: Deref> Channel<SP> where
1240
1251
ChannelPhase::UnfundedOutboundV1(chan) => (&chan.funding, &mut chan.context),
1241
1252
ChannelPhase::UnfundedInboundV1(chan) => (&chan.funding, &mut chan.context),
1242
1253
ChannelPhase::UnfundedV2(chan) => (&chan.funding, &mut chan.context),
1254
+ #[cfg(splicing)]
1255
+ ChannelPhase::RefundingV2(chan) => (&chan.funding, &mut chan.context),
1243
1256
}
1244
1257
}
1245
1258
@@ -1250,6 +1263,8 @@ impl<SP: Deref> Channel<SP> where
1250
1263
ChannelPhase::UnfundedOutboundV1(chan) => Some(&mut chan.unfunded_context),
1251
1264
ChannelPhase::UnfundedInboundV1(chan) => Some(&mut chan.unfunded_context),
1252
1265
ChannelPhase::UnfundedV2(chan) => Some(&mut chan.unfunded_context),
1266
+ #[cfg(splicing)]
1267
+ ChannelPhase::RefundingV2(_) => { debug_assert!(false); None },
1253
1268
}
1254
1269
}
1255
1270
@@ -1357,6 +1372,8 @@ impl<SP: Deref> Channel<SP> where
1357
1372
})
1358
1373
},
1359
1374
ChannelPhase::UnfundedV2(_) => None,
1375
+ #[cfg(splicing)]
1376
+ ChannelPhase::RefundingV2(chan) => Some(chan.signer_maybe_unblocked(logger)),
1360
1377
}
1361
1378
}
1362
1379
@@ -1376,6 +1393,8 @@ impl<SP: Deref> Channel<SP> where
1376
1393
ChannelPhase::UnfundedOutboundV1(chan) => chan.is_resumable(),
1377
1394
ChannelPhase::UnfundedInboundV1(_) => false,
1378
1395
ChannelPhase::UnfundedV2(_) => false,
1396
+ #[cfg(splicing)]
1397
+ ChannelPhase::RefundingV2(chan) => chan.remove_uncommitted_htlcs_and_mark_paused(logger).is_ok(),
1379
1398
}
1380
1399
}
1381
1400
@@ -1413,6 +1432,9 @@ impl<SP: Deref> Channel<SP> where
1413
1432
ReconnectionMsg::None
1414
1433
}
1415
1434
},
1435
+ #[cfg(splicing)]
1436
+ ChannelPhase::RefundingV2(chan) =>
1437
+ ReconnectionMsg::Reestablish(chan.get_channel_reestablish(logger)),
1416
1438
}
1417
1439
}
1418
1440
@@ -1440,6 +1462,8 @@ impl<SP: Deref> Channel<SP> where
1440
1462
Ok(None)
1441
1463
}
1442
1464
},
1465
+ #[cfg(splicing)]
1466
+ ChannelPhase::RefundingV2(_) => Ok(None),
1443
1467
}
1444
1468
}
1445
1469
0 commit comments