Skip to content

Commit 372e7f0

Browse files
committed
Remove From implementations for MonitorName
Now that MonitorName can be represented by either an OutPoint for V1 established channels or a ChannelId for V2 established channels, having a From implementation converting from those types may be misleading. Remove these implementations since the enum variants are at least explicit about what version channels the MonitorName is applicable, even if still possible to create a MonitorName incorrectly.
1 parent b8a1f84 commit 372e7f0

File tree

2 files changed

+10
-33
lines changed

2 files changed

+10
-33
lines changed

lightning/src/chain/channelmonitor.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1480,9 +1480,9 @@ impl<Signer: EcdsaChannelSigner> ChannelMonitor<Signer> {
14801480
let funding_outpoint = inner.first_confirmed_funding_txo;
14811481
let channel_id = inner.channel_id;
14821482
if ChannelId::v1_from_funding_outpoint(funding_outpoint) == channel_id {
1483-
MonitorName::from(funding_outpoint)
1483+
MonitorName::V1Channel(funding_outpoint)
14841484
} else {
1485-
MonitorName::from(channel_id)
1485+
MonitorName::V2Channel(channel_id)
14861486
}
14871487
}
14881488

lightning/src/util/persist.rs

+8-31
Original file line numberDiff line numberDiff line change
@@ -911,12 +911,12 @@ where
911911
/// txid: Txid::from_str("deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef").unwrap(),
912912
/// index: 1,
913913
/// };
914-
/// let monitor_name = MonitorName::from(outpoint);
914+
/// let monitor_name = MonitorName::V1Channel(outpoint);
915915
/// assert_eq!(&monitor_name.to_string(), "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef_1");
916916
///
917917
/// // v2 channel
918918
/// let channel_id = ChannelId(<[u8; 32]>::from_hex("deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef").unwrap());
919-
/// let monitor_name = MonitorName::from(channel_id);
919+
/// let monitor_name = MonitorName::V2Channel(channel_id);
920920
/// assert_eq!(&monitor_name.to_string(), "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef");
921921
///
922922
/// // Using MonitorName to generate a storage key
@@ -959,26 +959,6 @@ impl MonitorName {
959959
}
960960
}
961961

962-
impl From<OutPoint> for MonitorName {
963-
/// Creates a `MonitorName` from an `OutPoint`.
964-
///
965-
/// This is typically used when you need to generate a storage key or identifier
966-
/// for a new or existing channel monitor for a v1 channel.
967-
fn from(outpoint: OutPoint) -> Self {
968-
MonitorName::V1Channel(outpoint)
969-
}
970-
}
971-
972-
impl From<ChannelId> for MonitorName {
973-
/// Creates a `MonitorName` from a `ChannelId`.
974-
///
975-
/// This is typically used when you need to generate a storage key or identifier
976-
/// for a new or existing channel monitor for a v2 channel.
977-
fn from(channel_id: ChannelId) -> Self {
978-
MonitorName::V2Channel(channel_id)
979-
}
980-
}
981-
982962
impl core::fmt::Display for MonitorName {
983963
fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error> {
984964
match self {
@@ -1108,7 +1088,7 @@ mod tests {
11081088

11091089
#[test]
11101090
fn creates_monitor_from_outpoint() {
1111-
let monitor_name = MonitorName::from(OutPoint {
1091+
let monitor_name = MonitorName::V1Channel(OutPoint {
11121092
txid: Txid::from_str(
11131093
"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
11141094
)
@@ -1119,9 +1099,8 @@ mod tests {
11191099
&monitor_name.to_string(),
11201100
"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef_1"
11211101
);
1122-
assert!(matches!(monitor_name, MonitorName::V1Channel(_)));
11231102

1124-
let monitor_name = MonitorName::from(OutPoint {
1103+
let monitor_name = MonitorName::V1Channel(OutPoint {
11251104
txid: Txid::from_str(
11261105
"f33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeef",
11271106
)
@@ -1132,12 +1111,11 @@ mod tests {
11321111
&monitor_name.to_string(),
11331112
"f33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeeff33dbeef_65535"
11341113
);
1135-
assert!(matches!(monitor_name, MonitorName::V1Channel(_)));
11361114
}
11371115

11381116
#[test]
11391117
fn creates_monitor_from_channel_id() {
1140-
let monitor_name = MonitorName::from(ChannelId(
1118+
let monitor_name = MonitorName::V2Channel(ChannelId(
11411119
<[u8; 32]>::from_hex(
11421120
"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
11431121
)
@@ -1147,7 +1125,6 @@ mod tests {
11471125
&monitor_name.to_string(),
11481126
"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"
11491127
);
1150-
assert!(matches!(monitor_name, MonitorName::V2Channel(_)));
11511128
}
11521129

11531130
#[test]
@@ -1234,7 +1211,7 @@ mod tests {
12341211
// check that when we read it, we got the right update id
12351212
assert_eq!(mon.get_latest_update_id(), $expected_update_id);
12361213

1237-
let monitor_name = MonitorName::from(mon.get_funding_txo());
1214+
let monitor_name = mon.persistence_key();
12381215
assert_eq!(
12391216
persister_0
12401217
.kv_store
@@ -1253,7 +1230,7 @@ mod tests {
12531230
assert_eq!(persisted_chan_data_1.len(), 1);
12541231
for (_, mon) in persisted_chan_data_1.iter() {
12551232
assert_eq!(mon.get_latest_update_id(), $expected_update_id);
1256-
let monitor_name = MonitorName::from(mon.get_funding_txo());
1233+
let monitor_name = mon.persistence_key();
12571234
assert_eq!(
12581235
persister_1
12591236
.kv_store
@@ -1449,7 +1426,7 @@ mod tests {
14491426
// Get the monitor and make a fake stale update at update_id=1 (lowest height of an update possible)
14501427
let persisted_chan_data = persister_0.read_all_channel_monitors_with_updates().unwrap();
14511428
let (_, monitor) = &persisted_chan_data[0];
1452-
let monitor_name = MonitorName::from(monitor.get_funding_txo());
1429+
let monitor_name = monitor.persistence_key();
14531430
persister_0
14541431
.kv_store
14551432
.write(

0 commit comments

Comments
 (0)