Skip to content

Commit 6b5e80d

Browse files
committed
Add RefundingV2 phase (for splicing)
1 parent 875f474 commit 6b5e80d

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

lightning/src/ln/channel.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1183,6 +1183,9 @@ enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
11831183
UnfundedInboundV1(InboundV1Channel<SP>),
11841184
UnfundedV2(PendingV2Channel<SP>),
11851185
Funded(FundedChannel<SP>),
1186+
/// Used during splicing, channel is funded but a new funding is being renegotiated.
1187+
#[cfg(splicing)]
1188+
RefundingV2(FundedChannel<SP>),
11861189
}
11871190

11881191
impl<SP: Deref> Channel<SP> where
@@ -1196,6 +1199,8 @@ impl<SP: Deref> Channel<SP> where
11961199
ChannelPhase::UnfundedOutboundV1(chan) => &chan.context,
11971200
ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
11981201
ChannelPhase::UnfundedV2(chan) => &chan.context,
1202+
#[cfg(splicing)]
1203+
ChannelPhase::RefundingV2(chan) => &chan.context,
11991204
}
12001205
}
12011206

@@ -1206,6 +1211,8 @@ impl<SP: Deref> Channel<SP> where
12061211
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.context,
12071212
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.context,
12081213
ChannelPhase::UnfundedV2(chan) => &mut chan.context,
1214+
#[cfg(splicing)]
1215+
ChannelPhase::RefundingV2(chan) => &mut chan.context,
12091216
}
12101217
}
12111218

@@ -1216,6 +1223,8 @@ impl<SP: Deref> Channel<SP> where
12161223
ChannelPhase::UnfundedOutboundV1(chan) => &chan.funding,
12171224
ChannelPhase::UnfundedInboundV1(chan) => &chan.funding,
12181225
ChannelPhase::UnfundedV2(chan) => &chan.funding,
1226+
#[cfg(splicing)]
1227+
ChannelPhase::RefundingV2(chan) => &chan.funding,
12191228
}
12201229
}
12211230

@@ -1227,6 +1236,8 @@ impl<SP: Deref> Channel<SP> where
12271236
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.funding,
12281237
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.funding,
12291238
ChannelPhase::UnfundedV2(chan) => &mut chan.funding,
1239+
#[cfg(splicing)]
1240+
ChannelPhase::RefundingV2(chan) => &mut chan.funding,
12301241
}
12311242
}
12321243

@@ -1237,6 +1248,8 @@ impl<SP: Deref> Channel<SP> where
12371248
ChannelPhase::UnfundedOutboundV1(chan) => (&chan.funding, &mut chan.context),
12381249
ChannelPhase::UnfundedInboundV1(chan) => (&chan.funding, &mut chan.context),
12391250
ChannelPhase::UnfundedV2(chan) => (&chan.funding, &mut chan.context),
1251+
#[cfg(splicing)]
1252+
ChannelPhase::RefundingV2(chan) => (&chan.funding, &mut chan.context),
12401253
}
12411254
}
12421255

@@ -1247,6 +1260,8 @@ impl<SP: Deref> Channel<SP> where
12471260
ChannelPhase::UnfundedOutboundV1(chan) => Some(&mut chan.unfunded_context),
12481261
ChannelPhase::UnfundedInboundV1(chan) => Some(&mut chan.unfunded_context),
12491262
ChannelPhase::UnfundedV2(chan) => Some(&mut chan.unfunded_context),
1263+
#[cfg(splicing)]
1264+
ChannelPhase::RefundingV2(_) => { debug_assert!(false); None },
12501265
}
12511266
}
12521267

@@ -1354,6 +1369,8 @@ impl<SP: Deref> Channel<SP> where
13541369
})
13551370
},
13561371
ChannelPhase::UnfundedV2(_) => None,
1372+
#[cfg(splicing)]
1373+
ChannelPhase::RefundingV2(chan) => Some(chan.signer_maybe_unblocked(logger)),
13571374
}
13581375
}
13591376

@@ -1373,6 +1390,8 @@ impl<SP: Deref> Channel<SP> where
13731390
ChannelPhase::UnfundedOutboundV1(chan) => chan.is_resumable(),
13741391
ChannelPhase::UnfundedInboundV1(_) => false,
13751392
ChannelPhase::UnfundedV2(_) => false,
1393+
#[cfg(splicing)]
1394+
ChannelPhase::RefundingV2(chan) => chan.remove_uncommitted_htlcs_and_mark_paused(logger).is_ok(),
13761395
}
13771396
}
13781397

@@ -1410,6 +1429,9 @@ impl<SP: Deref> Channel<SP> where
14101429
ReconnectionMsg::None
14111430
}
14121431
},
1432+
#[cfg(splicing)]
1433+
ChannelPhase::RefundingV2(chan) =>
1434+
ReconnectionMsg::Reestablish(chan.get_channel_reestablish(logger)),
14131435
}
14141436
}
14151437

@@ -1437,6 +1459,8 @@ impl<SP: Deref> Channel<SP> where
14371459
Ok(None)
14381460
}
14391461
},
1462+
#[cfg(splicing)]
1463+
ChannelPhase::RefundingV2(_) => Ok(None),
14401464
}
14411465
}
14421466

0 commit comments

Comments
 (0)