Encode channel update type in failure messages.
[rust-lightning] / lightning / src / ln / priv_short_conf_tests.rs
index fa44a0655c1462cdf321fede0aeb0de83141626b..d7b940eb90e09dfce8e6557656327440fb987159 100644 (file)
@@ -19,7 +19,8 @@ use routing::network_graph::RoutingFees;
 use routing::router::{PaymentParameters, RouteHint, RouteHintHop};
 use ln::features::{InitFeatures, InvoiceFeatures};
 use ln::msgs;
-use ln::msgs::{ChannelMessageHandler, RoutingMessageHandler, OptionalField};
+use ln::msgs::{ChannelMessageHandler, RoutingMessageHandler, OptionalField, ChannelUpdate};
+use ln::wire::Encode;
 use util::enforcing_trait_impls::EnforcingSigner;
 use util::events::{Event, MessageSendEvent, MessageSendEventsProvider};
 use util::config::UserConfig;
@@ -528,12 +529,17 @@ fn test_scid_alias_returned() {
                excess_data: Vec::new(),
        };
        let msg_hash = Sha256dHash::hash(&contents.encode()[..]);
-       let signature = Secp256k1::new().sign(&hash_to_message!(&msg_hash[..]), &nodes[1].keys_manager.get_node_secret(Recipient::Node).unwrap());
+       let signature = Secp256k1::new().sign_ecdsa(&hash_to_message!(&msg_hash[..]), &nodes[1].keys_manager.get_node_secret(Recipient::Node).unwrap());
        let msg = msgs::ChannelUpdate { signature, contents };
 
+       let mut err_data = Vec::new();
+       err_data.extend_from_slice(&(msg.serialized_length() as u16 + 2).to_be_bytes());
+       err_data.extend_from_slice(&ChannelUpdate::TYPE.to_be_bytes());
+       err_data.extend_from_slice(&msg.encode());
+
        expect_payment_failed_conditions!(nodes[0], payment_hash, false,
                PaymentFailedConditions::new().blamed_scid(last_hop[0].inbound_scid_alias.unwrap())
-                       .blamed_chan_closed(false).expected_htlc_error_data(0x1000|7, &msg.encode_with_len()));
+                       .blamed_chan_closed(false).expected_htlc_error_data(0x1000|7, &err_data));
 
        route.paths[0][1].fee_msat = 10_000; // Reset to the correct payment amount
        route.paths[0][0].fee_msat = 0; // But set fee paid to the middle hop to 0
@@ -551,7 +557,9 @@ fn test_scid_alias_returned() {
 
        let mut err_data = Vec::new();
        err_data.extend_from_slice(&10_000u64.to_be_bytes());
-       err_data.extend_from_slice(&msg.encode_with_len());
+       err_data.extend_from_slice(&(msg.serialized_length() as u16 + 2).to_be_bytes());
+       err_data.extend_from_slice(&ChannelUpdate::TYPE.to_be_bytes());
+       err_data.extend_from_slice(&msg.encode());
        expect_payment_failed_conditions!(nodes[0], payment_hash, false,
                PaymentFailedConditions::new().blamed_scid(last_hop[0].inbound_scid_alias.unwrap())
                        .blamed_chan_closed(false).expected_htlc_error_data(0x1000|12, &err_data));