mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-25 15:20:24 +01:00
Convert some vec_type
TLVs to required_vec
This converts some required TLVs to `required_vec` which are, in fact, required (and have been written forever). * `HTLCFailReason` hasn't changed since many structs were converted to TLVs in66784e32fe
. * `NodeInfo::channels` has been written since `NetworkGraph` structs were converted to TLVs in321b19c4d9
. * Several test-only TLV writes were converted.
This commit is contained in:
parent
32846d33db
commit
a04bf844d4
5 changed files with 17 additions and 19 deletions
|
@ -3760,7 +3760,7 @@ mod tests {
|
||||||
let test_bytes = vec![42u8; 1000];
|
let test_bytes = vec![42u8; 1000];
|
||||||
if let OnionHopDataFormat::NonFinalNode { short_channel_id } = payload.format {
|
if let OnionHopDataFormat::NonFinalNode { short_channel_id } = payload.format {
|
||||||
_encode_varint_length_prefixed_tlv!(&mut encoded_payload, {
|
_encode_varint_length_prefixed_tlv!(&mut encoded_payload, {
|
||||||
(1, test_bytes, vec_type),
|
(1, test_bytes, required_vec),
|
||||||
(2, HighZeroBytesDroppedBigSize(payload.amt_to_forward), required),
|
(2, HighZeroBytesDroppedBigSize(payload.amt_to_forward), required),
|
||||||
(4, HighZeroBytesDroppedBigSize(payload.outgoing_cltv_value), required),
|
(4, HighZeroBytesDroppedBigSize(payload.outgoing_cltv_value), required),
|
||||||
(6, short_channel_id, required)
|
(6, short_channel_id, required)
|
||||||
|
|
|
@ -645,7 +645,7 @@ impl_writeable_tlv_based_enum!(HTLCFailReasonRepr,
|
||||||
},
|
},
|
||||||
(1, Reason) => {
|
(1, Reason) => {
|
||||||
(0, failure_code, required),
|
(0, failure_code, required),
|
||||||
(2, data, vec_type),
|
(2, data, required_vec),
|
||||||
},
|
},
|
||||||
;);
|
;);
|
||||||
|
|
||||||
|
|
|
@ -169,7 +169,7 @@ impl<T: CustomOnionMessageContents> Writeable for (Payload<T>, [u8; 32]) {
|
||||||
match &self.0 {
|
match &self.0 {
|
||||||
Payload::Forward(ForwardControlTlvs::Blinded(encrypted_bytes)) => {
|
Payload::Forward(ForwardControlTlvs::Blinded(encrypted_bytes)) => {
|
||||||
_encode_varint_length_prefixed_tlv!(w, {
|
_encode_varint_length_prefixed_tlv!(w, {
|
||||||
(4, *encrypted_bytes, vec_type)
|
(4, *encrypted_bytes, required_vec)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
Payload::Receive {
|
Payload::Receive {
|
||||||
|
@ -177,7 +177,7 @@ impl<T: CustomOnionMessageContents> Writeable for (Payload<T>, [u8; 32]) {
|
||||||
} => {
|
} => {
|
||||||
_encode_varint_length_prefixed_tlv!(w, {
|
_encode_varint_length_prefixed_tlv!(w, {
|
||||||
(2, reply_path, option),
|
(2, reply_path, option),
|
||||||
(4, *encrypted_bytes, vec_type),
|
(4, *encrypted_bytes, required_vec),
|
||||||
(message.tlv_type(), message, required)
|
(message.tlv_type(), message, required)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
|
@ -1120,26 +1120,26 @@ impl Writeable for NodeAnnouncementInfo {
|
||||||
(4, self.rgb, required),
|
(4, self.rgb, required),
|
||||||
(6, self.alias, required),
|
(6, self.alias, required),
|
||||||
(8, self.announcement_message, option),
|
(8, self.announcement_message, option),
|
||||||
(10, empty_addresses, vec_type), // Versions prior to 0.0.115 require this field
|
(10, empty_addresses, required_vec), // Versions prior to 0.0.115 require this field
|
||||||
});
|
});
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Readable for NodeAnnouncementInfo {
|
impl Readable for NodeAnnouncementInfo {
|
||||||
fn read<R: io::Read>(reader: &mut R) -> Result<Self, DecodeError> {
|
fn read<R: io::Read>(reader: &mut R) -> Result<Self, DecodeError> {
|
||||||
_init_and_read_tlv_fields!(reader, {
|
_init_and_read_tlv_fields!(reader, {
|
||||||
(0, features, required),
|
(0, features, required),
|
||||||
(2, last_update, required),
|
(2, last_update, required),
|
||||||
(4, rgb, required),
|
(4, rgb, required),
|
||||||
(6, alias, required),
|
(6, alias, required),
|
||||||
(8, announcement_message, option),
|
(8, announcement_message, option),
|
||||||
(10, _addresses, vec_type), // deprecated, not used anymore
|
(10, _addresses, optional_vec), // deprecated, not used anymore
|
||||||
});
|
});
|
||||||
let _: Option<Vec<NetAddress>> = _addresses;
|
let _: Option<Vec<NetAddress>> = _addresses;
|
||||||
Ok(Self { features: features.0.unwrap(), last_update: last_update.0.unwrap(), rgb: rgb.0.unwrap(),
|
Ok(Self { features: features.0.unwrap(), last_update: last_update.0.unwrap(), rgb: rgb.0.unwrap(),
|
||||||
alias: alias.0.unwrap(), announcement_message })
|
alias: alias.0.unwrap(), announcement_message })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A user-defined name for a node, which may be used when displaying the node in a graph.
|
/// A user-defined name for a node, which may be used when displaying the node in a graph.
|
||||||
|
@ -1205,7 +1205,7 @@ impl Writeable for NodeInfo {
|
||||||
write_tlv_fields!(writer, {
|
write_tlv_fields!(writer, {
|
||||||
// Note that older versions of LDK wrote the lowest inbound fees here at type 0
|
// Note that older versions of LDK wrote the lowest inbound fees here at type 0
|
||||||
(2, self.announcement_info, option),
|
(2, self.announcement_info, option),
|
||||||
(4, self.channels, vec_type),
|
(4, self.channels, required_vec),
|
||||||
});
|
});
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -1236,19 +1236,17 @@ impl Readable for NodeInfo {
|
||||||
// with zero inbound fees, causing that heuristic to provide little gain. Worse, because it
|
// with zero inbound fees, causing that heuristic to provide little gain. Worse, because it
|
||||||
// requires additional complexity and lookups during routing, it ends up being a
|
// requires additional complexity and lookups during routing, it ends up being a
|
||||||
// performance loss. Thus, we simply ignore the old field here and no longer track it.
|
// performance loss. Thus, we simply ignore the old field here and no longer track it.
|
||||||
let mut _lowest_inbound_channel_fees: Option<RoutingFees> = None;
|
_init_and_read_tlv_fields!(reader, {
|
||||||
let mut announcement_info_wrap: Option<NodeAnnouncementInfoDeserWrapper> = None;
|
|
||||||
_init_tlv_field_var!(channels, vec_type);
|
|
||||||
|
|
||||||
read_tlv_fields!(reader, {
|
|
||||||
(0, _lowest_inbound_channel_fees, option),
|
(0, _lowest_inbound_channel_fees, option),
|
||||||
(2, announcement_info_wrap, upgradable_option),
|
(2, announcement_info_wrap, upgradable_option),
|
||||||
(4, channels, vec_type),
|
(4, channels, required_vec),
|
||||||
});
|
});
|
||||||
|
let _: Option<RoutingFees> = _lowest_inbound_channel_fees;
|
||||||
|
let announcement_info_wrap: Option<NodeAnnouncementInfoDeserWrapper> = announcement_info_wrap;
|
||||||
|
|
||||||
Ok(NodeInfo {
|
Ok(NodeInfo {
|
||||||
announcement_info: announcement_info_wrap.map(|w| w.0),
|
announcement_info: announcement_info_wrap.map(|w| w.0),
|
||||||
channels: _init_tlv_based_struct_field!(channels, vec_type),
|
channels,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -341,9 +341,9 @@ mod tests {
|
||||||
field3: Vec<u8>,
|
field3: Vec<u8>,
|
||||||
}
|
}
|
||||||
impl_writeable_tlv_based!(TestWriteable, {
|
impl_writeable_tlv_based!(TestWriteable, {
|
||||||
(1, field1, vec_type),
|
(1, field1, required_vec),
|
||||||
(2, field2, vec_type),
|
(2, field2, required_vec),
|
||||||
(3, field3, vec_type),
|
(3, field3, required_vec),
|
||||||
});
|
});
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
Loading…
Add table
Reference in a new issue