Skip to content

Commit 07da6c1

Browse files
committed
Implement From<OutboundV1Channel> for ChannelPhase
Exposing ChannelPhase in ChannelManager has led to verbose match statements, which need to be modified each time a ChannelPhase is added. Making ChannelPhase an implementation detail of Channel would help avoid this. As a step in this direction, define a conversion from OutboundV1Channel to ChannelPhase (to be renamed Channel).
1 parent 9ee673c commit 07da6c1

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

lightning/src/ln/channel.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1358,6 +1358,16 @@ impl<'a, SP: Deref> ChannelPhase<SP> where
13581358
}
13591359
}
13601360

1361+
impl<SP: Deref> From<OutboundV1Channel<SP>> for ChannelPhase<SP>
1362+
where
1363+
SP::Target: SignerProvider,
1364+
<SP::Target as SignerProvider>::EcdsaSigner: ChannelSigner,
1365+
{
1366+
fn from(channel: OutboundV1Channel<SP>) -> Self {
1367+
ChannelPhase::UnfundedOutboundV1(channel)
1368+
}
1369+
}
1370+
13611371
impl<SP: Deref> From<Channel<SP>> for ChannelPhase<SP>
13621372
where
13631373
SP::Target: SignerProvider,

lightning/src/ln/channelmanager.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3668,7 +3668,7 @@ where
36683668
panic!("RNG is bad???");
36693669
}
36703670
},
3671-
hash_map::Entry::Vacant(entry) => { entry.insert(ChannelPhase::UnfundedOutboundV1(channel)); }
3671+
hash_map::Entry::Vacant(entry) => { entry.insert(ChannelPhase::from(channel)); }
36723672
}
36733673

36743674
if let Some(msg) = res {
@@ -5116,7 +5116,7 @@ where
51165116
return Err(APIError::ChannelUnavailable { err });
51175117
}
51185118
}
5119-
e.insert(ChannelPhase::UnfundedOutboundV1(chan));
5119+
e.insert(ChannelPhase::from(chan));
51205120
}
51215121
}
51225122
Ok(())

0 commit comments

Comments
 (0)