Skip to content

Commit fd1c251

Browse files
committed
Add RefundingV2 phase (for splicing)
1 parent d38ca62 commit fd1c251

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
@@ -1189,6 +1189,9 @@ enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
11891189
UnfundedInboundV1(InboundV1Channel<SP>),
11901190
UnfundedV2(PendingV2Channel<SP>),
11911191
Funded(FundedChannel<SP>),
1192+
/// Used during splicing, channel is funded but a new funding is being renegotiated.
1193+
#[cfg(splicing)]
1194+
RefundingV2(FundedChannel<SP>),
11921195
}
11931196

11941197
impl<SP: Deref> Channel<SP> where
@@ -1202,6 +1205,8 @@ impl<SP: Deref> Channel<SP> where
12021205
ChannelPhase::UnfundedOutboundV1(chan) => &chan.context,
12031206
ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
12041207
ChannelPhase::UnfundedV2(chan) => &chan.context,
1208+
#[cfg(splicing)]
1209+
ChannelPhase::RefundingV2(chan) => &chan.context,
12051210
}
12061211
}
12071212

@@ -1212,6 +1217,8 @@ impl<SP: Deref> Channel<SP> where
12121217
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.context,
12131218
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.context,
12141219
ChannelPhase::UnfundedV2(chan) => &mut chan.context,
1220+
#[cfg(splicing)]
1221+
ChannelPhase::RefundingV2(chan) => &mut chan.context,
12151222
}
12161223
}
12171224

@@ -1222,6 +1229,8 @@ impl<SP: Deref> Channel<SP> where
12221229
ChannelPhase::UnfundedOutboundV1(chan) => &chan.funding,
12231230
ChannelPhase::UnfundedInboundV1(chan) => &chan.funding,
12241231
ChannelPhase::UnfundedV2(chan) => &chan.funding,
1232+
#[cfg(splicing)]
1233+
ChannelPhase::RefundingV2(chan) => &chan.funding,
12251234
}
12261235
}
12271236

@@ -1233,6 +1242,8 @@ impl<SP: Deref> Channel<SP> where
12331242
ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.funding,
12341243
ChannelPhase::UnfundedInboundV1(chan) => &mut chan.funding,
12351244
ChannelPhase::UnfundedV2(chan) => &mut chan.funding,
1245+
#[cfg(splicing)]
1246+
ChannelPhase::RefundingV2(chan) => &mut chan.funding,
12361247
}
12371248
}
12381249

@@ -1243,6 +1254,8 @@ impl<SP: Deref> Channel<SP> where
12431254
ChannelPhase::UnfundedOutboundV1(chan) => (&chan.funding, &mut chan.context),
12441255
ChannelPhase::UnfundedInboundV1(chan) => (&chan.funding, &mut chan.context),
12451256
ChannelPhase::UnfundedV2(chan) => (&chan.funding, &mut chan.context),
1257+
#[cfg(splicing)]
1258+
ChannelPhase::RefundingV2(chan) => (&chan.funding, &mut chan.context),
12461259
}
12471260
}
12481261

@@ -1253,6 +1266,8 @@ impl<SP: Deref> Channel<SP> where
12531266
ChannelPhase::UnfundedOutboundV1(chan) => Some(&mut chan.unfunded_context),
12541267
ChannelPhase::UnfundedInboundV1(chan) => Some(&mut chan.unfunded_context),
12551268
ChannelPhase::UnfundedV2(chan) => Some(&mut chan.unfunded_context),
1269+
#[cfg(splicing)]
1270+
ChannelPhase::RefundingV2(_) => { debug_assert!(false); None },
12561271
}
12571272
}
12581273

@@ -1360,6 +1375,8 @@ impl<SP: Deref> Channel<SP> where
13601375
})
13611376
},
13621377
ChannelPhase::UnfundedV2(_) => None,
1378+
#[cfg(splicing)]
1379+
ChannelPhase::RefundingV2(chan) => Some(chan.signer_maybe_unblocked(logger)),
13631380
}
13641381
}
13651382

@@ -1379,6 +1396,8 @@ impl<SP: Deref> Channel<SP> where
13791396
ChannelPhase::UnfundedOutboundV1(chan) => chan.is_resumable(),
13801397
ChannelPhase::UnfundedInboundV1(_) => false,
13811398
ChannelPhase::UnfundedV2(_) => false,
1399+
#[cfg(splicing)]
1400+
ChannelPhase::RefundingV2(chan) => chan.remove_uncommitted_htlcs_and_mark_paused(logger).is_ok(),
13821401
}
13831402
}
13841403

@@ -1416,6 +1435,9 @@ impl<SP: Deref> Channel<SP> where
14161435
ReconnectionMsg::None
14171436
}
14181437
},
1438+
#[cfg(splicing)]
1439+
ChannelPhase::RefundingV2(chan) =>
1440+
ReconnectionMsg::Reestablish(chan.get_channel_reestablish(logger)),
14191441
}
14201442
}
14211443

@@ -1443,6 +1465,8 @@ impl<SP: Deref> Channel<SP> where
14431465
Ok(None)
14441466
}
14451467
},
1468+
#[cfg(splicing)]
1469+
ChannelPhase::RefundingV2(_) => Ok(None),
14461470
}
14471471
}
14481472

0 commit comments

Comments
 (0)