From: Jeffrey Czyz Date: Thu, 29 Feb 2024 21:03:31 +0000 (-0600) Subject: Test failing pay_for_offer on an unsupported chain X-Git-Tag: v0.0.123-beta~44^2~2 X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=07d766a5e9d227f05e86319ff1019aeab1e1126b;p=rust-lightning Test failing pay_for_offer on an unsupported chain --- diff --git a/lightning/src/ln/offers_tests.rs b/lightning/src/ln/offers_tests.rs index e16c0ed51..050df53f3 100644 --- a/lightning/src/ln/offers_tests.rs +++ b/lightning/src/ln/offers_tests.rs @@ -40,6 +40,7 @@ //! Nodes without channels are disconnected and connected as needed to ensure that deterministic //! blinded paths are used. +use bitcoin::network::constants::Network; use core::time::Duration; use crate::blinded_path::BlindedPath; use crate::events::{Event, MessageSendEventsProvider, PaymentPurpose}; @@ -732,6 +733,32 @@ fn fails_creating_refund_without_blinded_paths() { assert!(nodes[0].node.list_recent_payments().is_empty()); } +/// Fails creating an invoice request when the offer contains an unsupported chain. +#[test] +fn fails_creating_invoice_request_for_unsupported_chain() { + let chanmon_cfgs = create_chanmon_cfgs(2); + let node_cfgs = create_node_cfgs(2, &chanmon_cfgs); + let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]); + let nodes = create_network(2, &node_cfgs, &node_chanmgrs); + + create_announced_chan_between_nodes_with_value(&nodes, 0, 1, 10_000_000, 1_000_000_000); + + let alice = &nodes[0]; + let bob = &nodes[1]; + + let offer = alice.node + .create_offer_builder("coffee".to_string()).unwrap() + .clear_chains() + .chain(Network::Signet) + .build().unwrap(); + + let payment_id = PaymentId([1; 32]); + match bob.node.pay_for_offer(&offer, None, None, None, payment_id, Retry::Attempts(0), None) { + Ok(_) => panic!("Expected error"), + Err(e) => assert_eq!(e, Bolt12SemanticError::UnsupportedChain), + } +} + /// Fails creating an invoice request when a blinded reply path cannot be created without exposing /// the node's id. #[test] diff --git a/lightning/src/offers/offer.rs b/lightning/src/offers/offer.rs index e9e35836a..bf5e50deb 100644 --- a/lightning/src/offers/offer.rs +++ b/lightning/src/offers/offer.rs @@ -390,6 +390,12 @@ macro_rules! offer_builder_test_methods { ( $return_value } + #[cfg_attr(c_bindings, allow(dead_code))] + pub(crate) fn clear_chains($($self_mut)* $self: $self_type) -> $return_type { + $self.offer.chains = None; + $return_value + } + #[cfg_attr(c_bindings, allow(dead_code))] pub(crate) fn clear_paths($($self_mut)* $self: $self_type) -> $return_type { $self.offer.paths = None;