Skip to content

Commit 1a8b76b

Browse files
committed
Add RefundingV2 phase (for splicing)
1 parent 35ee5c0 commit 1a8b76b

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
@@ -1186,6 +1186,9 @@ enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
11861186
UnfundedInboundV1(InboundV1Channel<SP>),
11871187
UnfundedV2(PendingV2Channel<SP>),
11881188
Funded(FundedChannel<SP>),
1189+
/// Used during splicing, channel is funded but a new funding is being renegotiated.
1190+
#[cfg(splicing)]
1191+
RefundingV2(FundedChannel<SP>),
11891192
}
11901193

11911194
impl<SP: Deref> Channel<SP> where
@@ -1199,6 +1202,8 @@ impl<SP: Deref> Channel<SP> where
11991202
ChannelPhase::UnfundedOutboundV1(chan) => &chan.context,
12001203
ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
12011204
ChannelPhase::UnfundedV2(chan) => &chan.context,
1205+
#[cfg(splicing)]
1206+
ChannelPhase::RefundingV2(chan) => &chan.context,
12021207
}
12031208
}
12041209

@@ -1209,6 +1214,8 @@ impl<SP: Deref> Channel<SP> where
12091214
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.context,
12101215
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.context,
12111216
ChannelPhase::UnfundedV2(chan) => &mut chan.context,
1217+
#[cfg(splicing)]
1218+
ChannelPhase::RefundingV2(chan) => &mut chan.context,
12121219
}
12131220
}
12141221

@@ -1219,6 +1226,8 @@ impl<SP: Deref> Channel<SP> where
12191226
ChannelPhase::UnfundedOutboundV1(chan) => &chan.funding,
12201227
ChannelPhase::UnfundedInboundV1(chan) => &chan.funding,
12211228
ChannelPhase::UnfundedV2(chan) => &chan.funding,
1229+
#[cfg(splicing)]
1230+
ChannelPhase::RefundingV2(chan) => &chan.funding,
12221231
}
12231232
}
12241233

@@ -1230,6 +1239,8 @@ impl<SP: Deref> Channel<SP> where
12301239
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.funding,
12311240
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.funding,
12321241
ChannelPhase::UnfundedV2(chan) => &mut chan.funding,
1242+
#[cfg(splicing)]
1243+
ChannelPhase::RefundingV2(chan) => &mut chan.funding,
12331244
}
12341245
}
12351246

@@ -1240,6 +1251,8 @@ impl<SP: Deref> Channel<SP> where
12401251
ChannelPhase::UnfundedOutboundV1(chan) => (&chan.funding, &mut chan.context),
12411252
ChannelPhase::UnfundedInboundV1(chan) => (&chan.funding, &mut chan.context),
12421253
ChannelPhase::UnfundedV2(chan) => (&chan.funding, &mut chan.context),
1254+
#[cfg(splicing)]
1255+
ChannelPhase::RefundingV2(chan) => (&chan.funding, &mut chan.context),
12431256
}
12441257
}
12451258

@@ -1250,6 +1263,8 @@ impl<SP: Deref> Channel<SP> where
12501263
ChannelPhase::UnfundedOutboundV1(chan) => Some(&mut chan.unfunded_context),
12511264
ChannelPhase::UnfundedInboundV1(chan) => Some(&mut chan.unfunded_context),
12521265
ChannelPhase::UnfundedV2(chan) => Some(&mut chan.unfunded_context),
1266+
#[cfg(splicing)]
1267+
ChannelPhase::RefundingV2(_) => { debug_assert!(false); None },
12531268
}
12541269
}
12551270

@@ -1357,6 +1372,8 @@ impl<SP: Deref> Channel<SP> where
13571372
})
13581373
},
13591374
ChannelPhase::UnfundedV2(_) => None,
1375+
#[cfg(splicing)]
1376+
ChannelPhase::RefundingV2(chan) => Some(chan.signer_maybe_unblocked(logger)),
13601377
}
13611378
}
13621379

@@ -1376,6 +1393,8 @@ impl<SP: Deref> Channel<SP> where
13761393
ChannelPhase::UnfundedOutboundV1(chan) => chan.is_resumable(),
13771394
ChannelPhase::UnfundedInboundV1(_) => false,
13781395
ChannelPhase::UnfundedV2(_) => false,
1396+
#[cfg(splicing)]
1397+
ChannelPhase::RefundingV2(chan) => chan.remove_uncommitted_htlcs_and_mark_paused(logger).is_ok(),
13791398
}
13801399
}
13811400

@@ -1413,6 +1432,9 @@ impl<SP: Deref> Channel<SP> where
14131432
ReconnectionMsg::None
14141433
}
14151434
},
1435+
#[cfg(splicing)]
1436+
ChannelPhase::RefundingV2(chan) =>
1437+
ReconnectionMsg::Reestablish(chan.get_channel_reestablish(logger)),
14161438
}
14171439
}
14181440

@@ -1440,6 +1462,8 @@ impl<SP: Deref> Channel<SP> where
14401462
Ok(None)
14411463
}
14421464
},
1465+
#[cfg(splicing)]
1466+
ChannelPhase::RefundingV2(_) => Ok(None),
14431467
}
14441468
}
14451469

0 commit comments

Comments
 (0)