@@ -1148,6 +1148,9 @@ enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
1148
1148
#[allow(dead_code)] // TODO(dual_funding): Remove once creating V2 channels is enabled.
1149
1149
UnfundedV2(PendingV2Channel<SP>),
1150
1150
Funded(FundedChannel<SP>),
1151
+ #[cfg(splicing)]
1152
+ /// Used during splicing, channel is funded but a new funding is being renegotiated.
1153
+ RefundingV2(FundedChannel<SP>),
1151
1154
}
1152
1155
1153
1156
impl<SP: Deref> Channel<SP> where
@@ -1161,6 +1164,8 @@ impl<SP: Deref> Channel<SP> where
1161
1164
ChannelPhase::UnfundedOutboundV1(chan) => &chan.context,
1162
1165
ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
1163
1166
ChannelPhase::UnfundedV2(chan) => &chan.context,
1167
+ #[cfg(splicing)]
1168
+ ChannelPhase::RefundingV2(chan) => &chan.context,
1164
1169
}
1165
1170
}
1166
1171
@@ -1171,6 +1176,8 @@ impl<SP: Deref> Channel<SP> where
1171
1176
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.context,
1172
1177
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.context,
1173
1178
ChannelPhase::UnfundedV2(chan) => &mut chan.context,
1179
+ #[cfg(splicing)]
1180
+ ChannelPhase::RefundingV2(ref mut chan) => &mut chan.context,
1174
1181
}
1175
1182
}
1176
1183
@@ -1181,6 +1188,8 @@ impl<SP: Deref> Channel<SP> where
1181
1188
ChannelPhase::UnfundedOutboundV1(chan) => Some(&mut chan.unfunded_context),
1182
1189
ChannelPhase::UnfundedInboundV1(chan) => Some(&mut chan.unfunded_context),
1183
1190
ChannelPhase::UnfundedV2(chan) => Some(&mut chan.unfunded_context),
1191
+ #[cfg(splicing)]
1192
+ ChannelPhase::RefundingV2(_) => { debug_assert!(false); None },
1184
1193
}
1185
1194
}
1186
1195
@@ -1288,6 +1297,8 @@ impl<SP: Deref> Channel<SP> where
1288
1297
})
1289
1298
},
1290
1299
ChannelPhase::UnfundedV2(_) => None,
1300
+ #[cfg(splicing)]
1301
+ ChannelPhase::RefundingV2(chan) => Some(chan.signer_maybe_unblocked(logger)),
1291
1302
}
1292
1303
}
1293
1304
@@ -1307,6 +1318,8 @@ impl<SP: Deref> Channel<SP> where
1307
1318
ChannelPhase::UnfundedOutboundV1(chan) => chan.is_resumable(),
1308
1319
ChannelPhase::UnfundedInboundV1(_) => false,
1309
1320
ChannelPhase::UnfundedV2(_) => false,
1321
+ #[cfg(splicing)]
1322
+ ChannelPhase::RefundingV2(chan) => chan.remove_uncommitted_htlcs_and_mark_paused(logger).is_ok(),
1310
1323
}
1311
1324
}
1312
1325
@@ -1347,6 +1360,9 @@ impl<SP: Deref> Channel<SP> where
1347
1360
},
1348
1361
#[cfg(not(dual_funding))]
1349
1362
ChannelPhase::UnfundedV2(_) => ReconnectionMsg::None,
1363
+ #[cfg(splicing)]
1364
+ ChannelPhase::RefundingV2(chan) =>
1365
+ ReconnectionMsg::Reestablish(chan.get_channel_reestablish(logger)),
1350
1366
}
1351
1367
}
1352
1368
@@ -1380,6 +1396,8 @@ impl<SP: Deref> Channel<SP> where
1380
1396
debug_assert!(false);
1381
1397
Ok(None)
1382
1398
},
1399
+ #[cfg(splicing)]
1400
+ ChannelPhase::RefundingV2(_) => Ok(None),
1383
1401
}
1384
1402
}
1385
1403
0 commit comments