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