Skip to content

Commit 9b6ef9a

Browse files
committed
Test blinded Trampoline payload serialization.
1 parent ff54aaa commit 9b6ef9a

File tree

1 file changed

+33
-1
lines changed

1 file changed

+33
-1
lines changed

lightning/src/ln/msgs.rs

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3326,7 +3326,7 @@ mod tests {
33263326
use crate::ln::types::ChannelId;
33273327
use crate::types::payment::{PaymentPreimage, PaymentHash, PaymentSecret};
33283328
use crate::types::features::{ChannelFeatures, ChannelTypeFeatures, InitFeatures, NodeFeatures};
3329-
use crate::ln::msgs::{self, FinalOnionHopData, OnionErrorPacket, CommonOpenChannelFields, CommonAcceptChannelFields, TrampolineOnionPacket};
3329+
use crate::ln::msgs::{self, FinalOnionHopData, OnionErrorPacket, CommonOpenChannelFields, CommonAcceptChannelFields, OutboundTrampolinePayload, TrampolineOnionPacket};
33303330
use crate::ln::msgs::SocketAddress;
33313331
use crate::routing::gossip::{NodeAlias, NodeId};
33323332
use crate::util::ser::{BigSize, FixedLengthReader, Hostname, LengthReadable, Readable, ReadableArgs, TransactionU16LenLimited, Writeable};
@@ -3352,6 +3352,8 @@ mod tests {
33523352

33533353
#[cfg(feature = "std")]
33543354
use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6, ToSocketAddrs};
3355+
use types::features::{BlindedHopFeatures, Bolt12InvoiceFeatures};
3356+
use crate::blinded_path::payment::{BlindedPayInfo, BlindedPaymentPath};
33553357
#[cfg(feature = "std")]
33563358
use crate::ln::msgs::SocketAddressParseError;
33573359

@@ -4699,6 +4701,36 @@ mod tests {
46994701
assert_eq!(encoded_trampoline_packet, expected_eclair_trampoline_packet);
47004702
}
47014703

4704+
#[test]
4705+
fn encoding_outbound_trampoline_payload() {
4706+
let mut trampoline_features = Bolt12InvoiceFeatures::empty();
4707+
trampoline_features.set_basic_mpp_optional();
4708+
let introduction_node = PublicKey::from_slice(&<Vec<u8>>::from_hex("032c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991").unwrap()).unwrap();
4709+
let blinding_point = PublicKey::from_slice(&<Vec<u8>>::from_hex("02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619").unwrap()).unwrap();
4710+
let trampoline_payload = OutboundTrampolinePayload::LegacyBlindedPathEntry {
4711+
amt_to_forward: 150_000_000,
4712+
outgoing_cltv_value: 800_000,
4713+
payment_paths: vec![
4714+
BlindedPaymentPath::from_raw(
4715+
introduction_node,
4716+
blinding_point,
4717+
vec![],
4718+
BlindedPayInfo{
4719+
fee_base_msat: 500,
4720+
fee_proportional_millionths: 1_000,
4721+
cltv_expiry_delta: 36,
4722+
htlc_minimum_msat: 1,
4723+
htlc_maximum_msat: 500_000_000,
4724+
features: BlindedHopFeatures::empty(),
4725+
}
4726+
)
4727+
],
4728+
invoice_features: Some(trampoline_features),
4729+
};
4730+
let serialized_payload = trampoline_payload.encode().to_lower_hex_string();
4731+
assert_eq!(serialized_payload, "71020408f0d18004030c35001503020000165f032c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e66868099102eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f28368661900000001f4000003e800240000000000000001000000001dcd65000000");
4732+
}
4733+
47024734
#[test]
47034735
fn query_channel_range_end_blocknum() {
47044736
let tests: Vec<(u32, u32, u32)> = vec![

0 commit comments

Comments
 (0)