Skip to content

Commit 82347ec

Browse files
committed
Avoid slices without inner references
As we cannot express slices without inner references in bindings wrappers.
1 parent 93ee743 commit 82347ec

File tree

8 files changed

+31
-31
lines changed

8 files changed

+31
-31
lines changed

lightning/src/blinded_path/payment.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ impl BlindedPaymentPath {
103103
// be in relation to a specific channel.
104104
let htlc_maximum_msat = u64::max_value();
105105
Self::new(
106-
&[],
106+
Vec::new(),
107107
payee_node_id,
108108
payee_tlvs,
109109
htlc_maximum_msat,
@@ -120,7 +120,7 @@ impl BlindedPaymentPath {
120120
/// * any unknown features are required in the provided [`ForwardTlvs`]
121121
// TODO: make all payloads the same size with padding + add dummy hops
122122
pub fn new<ES: Deref, T: secp256k1::Signing + secp256k1::Verification>(
123-
intermediate_nodes: &[PaymentForwardNode], payee_node_id: PublicKey,
123+
intermediate_nodes: Vec<PaymentForwardNode>, payee_node_id: PublicKey,
124124
payee_tlvs: ReceiveTlvs, htlc_maximum_msat: u64, min_final_cltv_expiry_delta: u16,
125125
entropy_source: ES, secp_ctx: &Secp256k1<T>,
126126
) -> Result<Self, ()>
@@ -135,7 +135,7 @@ impl BlindedPaymentPath {
135135
SecretKey::from_slice(&blinding_secret_bytes[..]).expect("RNG is busted");
136136

137137
let blinded_payinfo = compute_payinfo(
138-
intermediate_nodes,
138+
&intermediate_nodes,
139139
&payee_tlvs.tlvs,
140140
htlc_maximum_msat,
141141
min_final_cltv_expiry_delta,
@@ -146,7 +146,7 @@ impl BlindedPaymentPath {
146146
blinding_point: PublicKey::from_secret_key(secp_ctx, &blinding_secret),
147147
blinded_hops: blinded_hops(
148148
secp_ctx,
149-
intermediate_nodes,
149+
&intermediate_nodes,
150150
payee_node_id,
151151
payee_tlvs,
152152
&blinding_secret,

lightning/src/ln/blinded_payment_tests.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ pub fn blinded_payment_path(
9292

9393
let mut secp_ctx = Secp256k1::new();
9494
BlindedPaymentPath::new(
95-
&intermediate_nodes[..], *node_ids.last().unwrap(), payee_tlvs,
95+
intermediate_nodes, *node_ids.last().unwrap(), payee_tlvs,
9696
intro_node_max_htlc_opt.unwrap_or_else(|| channel_upds.last().unwrap().htlc_maximum_msat),
9797
TEST_FINAL_CLTV as u16, keys_manager, &secp_ctx
9898
).unwrap()
@@ -177,7 +177,7 @@ fn do_one_hop_blinded_path(success: bool) {
177177

178178
let mut secp_ctx = Secp256k1::new();
179179
let blinded_path = BlindedPaymentPath::new(
180-
&[], nodes[1].node.get_our_node_id(), payee_tlvs, u64::MAX, TEST_FINAL_CLTV as u16,
180+
vec![], nodes[1].node.get_our_node_id(), payee_tlvs, u64::MAX, TEST_FINAL_CLTV as u16,
181181
&chanmon_cfgs[1].keys_manager, &secp_ctx
182182
).unwrap();
183183

@@ -229,7 +229,7 @@ fn mpp_to_one_hop_blinded_path() {
229229
let expanded_key = chanmon_cfgs[3].keys_manager.get_expanded_key();
230230
let payee_tlvs = payee_tlvs.authenticate(nonce, &expanded_key);
231231
let blinded_path = BlindedPaymentPath::new(
232-
&[], nodes[3].node.get_our_node_id(), payee_tlvs, u64::MAX, TEST_FINAL_CLTV as u16,
232+
vec![], nodes[3].node.get_our_node_id(), payee_tlvs, u64::MAX, TEST_FINAL_CLTV as u16,
233233
&chanmon_cfgs[3].keys_manager, &secp_ctx
234234
).unwrap();
235235

@@ -1340,7 +1340,7 @@ fn custom_tlvs_to_blinded_path() {
13401340
let payee_tlvs = payee_tlvs.authenticate(nonce, &expanded_key);
13411341
let mut secp_ctx = Secp256k1::new();
13421342
let blinded_path = BlindedPaymentPath::new(
1343-
&[], nodes[1].node.get_our_node_id(), payee_tlvs, u64::MAX, TEST_FINAL_CLTV as u16,
1343+
vec![], nodes[1].node.get_our_node_id(), payee_tlvs, u64::MAX, TEST_FINAL_CLTV as u16,
13441344
&chanmon_cfgs[1].keys_manager, &secp_ctx
13451345
).unwrap();
13461346

@@ -1395,7 +1395,7 @@ fn fails_receive_tlvs_authentication() {
13951395

13961396
let mut secp_ctx = Secp256k1::new();
13971397
let blinded_path = BlindedPaymentPath::new(
1398-
&[], nodes[1].node.get_our_node_id(), payee_tlvs, u64::MAX, TEST_FINAL_CLTV as u16,
1398+
vec![], nodes[1].node.get_our_node_id(), payee_tlvs, u64::MAX, TEST_FINAL_CLTV as u16,
13991399
&chanmon_cfgs[1].keys_manager, &secp_ctx
14001400
).unwrap();
14011401

@@ -1426,7 +1426,7 @@ fn fails_receive_tlvs_authentication() {
14261426

14271427
let mut secp_ctx = Secp256k1::new();
14281428
let blinded_path = BlindedPaymentPath::new(
1429-
&[], nodes[1].node.get_our_node_id(), payee_tlvs, u64::MAX, TEST_FINAL_CLTV as u16,
1429+
vec![], nodes[1].node.get_our_node_id(), payee_tlvs, u64::MAX, TEST_FINAL_CLTV as u16,
14301430
&chanmon_cfgs[1].keys_manager, &secp_ctx
14311431
).unwrap();
14321432

lightning/src/ln/channelmanager.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6598,7 +6598,7 @@ where
65986598
/// [`APIMisuseError`]: APIError::APIMisuseError
65996599
#[rustfmt::skip]
66006600
pub fn update_partial_channel_config(
6601-
&self, counterparty_node_id: &PublicKey, channel_ids: &[ChannelId], config_update: &ChannelConfigUpdate,
6601+
&self, counterparty_node_id: &PublicKey, channel_ids: Vec<ChannelId>, config_update: &ChannelConfigUpdate,
66026602
) -> Result<(), APIError> {
66036603
if config_update.cltv_expiry_delta.map(|delta| delta < MIN_CLTV_EXPIRY_DELTA).unwrap_or(false) {
66046604
return Err(APIError::APIMisuseError {
@@ -6613,14 +6613,14 @@ where
66136613
let mut peer_state_lock = peer_state_mutex.lock().unwrap();
66146614
let peer_state = &mut *peer_state_lock;
66156615

6616-
for channel_id in channel_ids {
6616+
for channel_id in channel_ids.iter() {
66176617
if !peer_state.has_channel(channel_id) {
66186618
return Err(APIError::ChannelUnavailable {
66196619
err: format!("Channel with id {} not found for the passed counterparty node_id {}", channel_id, counterparty_node_id),
66206620
});
66216621
};
66226622
}
6623-
for channel_id in channel_ids {
6623+
for channel_id in channel_ids.iter() {
66246624
if let Some(channel) = peer_state.channel_by_id.get_mut(channel_id) {
66256625
let mut config = channel.context().config();
66266626
config.apply(config_update);
@@ -6677,7 +6677,7 @@ where
66776677
/// [`ChannelUnavailable`]: APIError::ChannelUnavailable
66786678
/// [`APIMisuseError`]: APIError::APIMisuseError
66796679
pub fn update_channel_config(
6680-
&self, counterparty_node_id: &PublicKey, channel_ids: &[ChannelId], config: &ChannelConfig,
6680+
&self, counterparty_node_id: &PublicKey, channel_ids: Vec<ChannelId>, config: &ChannelConfig,
66816681
) -> Result<(), APIError> {
66826682
self.update_partial_channel_config(counterparty_node_id, channel_ids, &(*config).into())
66836683
}
@@ -19034,7 +19034,7 @@ mod tests {
1903419034

1903519035
check_unkown_peer_error(nodes[0].node.forward_intercepted_htlc(intercept_id, &channel_id, unkown_public_key, 1_000_000), unkown_public_key);
1903619036

19037-
check_unkown_peer_error(nodes[0].node.update_channel_config(&unkown_public_key, &[channel_id], &ChannelConfig::default()), unkown_public_key);
19037+
check_unkown_peer_error(nodes[0].node.update_channel_config(&unkown_public_key, vec![channel_id], &ChannelConfig::default()), unkown_public_key);
1903819038
}
1903919039

1904019040
#[test]
@@ -19064,7 +19064,7 @@ mod tests {
1906419064

1906519065
check_channel_unavailable_error(nodes[0].node.forward_intercepted_htlc(InterceptId([0; 32]), &channel_id, counterparty_node_id, 1_000_000), channel_id, counterparty_node_id);
1906619066

19067-
check_channel_unavailable_error(nodes[0].node.update_channel_config(&counterparty_node_id, &[channel_id], &ChannelConfig::default()), channel_id, counterparty_node_id);
19067+
check_channel_unavailable_error(nodes[0].node.update_channel_config(&counterparty_node_id, vec![channel_id], &ChannelConfig::default()), channel_id, counterparty_node_id);
1906819068
}
1906919069

1907019070
#[test]
@@ -19279,12 +19279,12 @@ mod tests {
1927919279
let _ = create_announced_chan_between_nodes(&nodes, 0, 1);
1928019280
let channel = &nodes[0].node.list_channels()[0];
1928119281

19282-
nodes[0].node.update_channel_config(&channel.counterparty.node_id, &[channel.channel_id], &user_config.channel_config).unwrap();
19282+
nodes[0].node.update_channel_config(&channel.counterparty.node_id, vec![channel.channel_id], &user_config.channel_config).unwrap();
1928319283
let events = nodes[0].node.get_and_clear_pending_msg_events();
1928419284
assert_eq!(events.len(), 0);
1928519285

1928619286
user_config.channel_config.forwarding_fee_base_msat += 10;
19287-
nodes[0].node.update_channel_config(&channel.counterparty.node_id, &[channel.channel_id], &user_config.channel_config).unwrap();
19287+
nodes[0].node.update_channel_config(&channel.counterparty.node_id, vec![channel.channel_id], &user_config.channel_config).unwrap();
1928819288
assert_eq!(nodes[0].node.list_channels()[0].config.unwrap().forwarding_fee_base_msat, user_config.channel_config.forwarding_fee_base_msat);
1928919289
let events = nodes[0].node.get_and_clear_pending_msg_events();
1929019290
assert_eq!(events.len(), 1);
@@ -19293,12 +19293,12 @@ mod tests {
1929319293
_ => panic!("expected BroadcastChannelUpdate event"),
1929419294
}
1929519295

19296-
nodes[0].node.update_partial_channel_config(&channel.counterparty.node_id, &[channel.channel_id], &ChannelConfigUpdate::default()).unwrap();
19296+
nodes[0].node.update_partial_channel_config(&channel.counterparty.node_id, vec![channel.channel_id], &ChannelConfigUpdate::default()).unwrap();
1929719297
let events = nodes[0].node.get_and_clear_pending_msg_events();
1929819298
assert_eq!(events.len(), 0);
1929919299

1930019300
let new_cltv_expiry_delta = user_config.channel_config.cltv_expiry_delta + 6;
19301-
nodes[0].node.update_partial_channel_config(&channel.counterparty.node_id, &[channel.channel_id], &ChannelConfigUpdate {
19301+
nodes[0].node.update_partial_channel_config(&channel.counterparty.node_id, vec![channel.channel_id], &ChannelConfigUpdate {
1930219302
cltv_expiry_delta: Some(new_cltv_expiry_delta),
1930319303
..Default::default()
1930419304
}).unwrap();
@@ -19311,7 +19311,7 @@ mod tests {
1931119311
}
1931219312

1931319313
let new_fee = user_config.channel_config.forwarding_fee_proportional_millionths + 100;
19314-
nodes[0].node.update_partial_channel_config(&channel.counterparty.node_id, &[channel.channel_id], &ChannelConfigUpdate {
19314+
nodes[0].node.update_partial_channel_config(&channel.counterparty.node_id, vec![channel.channel_id], &ChannelConfigUpdate {
1931519315
forwarding_fee_proportional_millionths: Some(new_fee),
1931619316
accept_underpaying_htlcs: Some(true),
1931719317
..Default::default()
@@ -19333,7 +19333,7 @@ mod tests {
1933319333
let new_fee = current_fee + 100;
1933419334
assert!(
1933519335
matches!(
19336-
nodes[0].node.update_partial_channel_config(&channel.counterparty.node_id, &[channel.channel_id, bad_channel_id], &ChannelConfigUpdate {
19336+
nodes[0].node.update_partial_channel_config(&channel.counterparty.node_id, vec![channel.channel_id, bad_channel_id], &ChannelConfigUpdate {
1933719337
forwarding_fee_proportional_millionths: Some(new_fee),
1933819338
..Default::default()
1933919339
}),

lightning/src/ln/functional_tests.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9197,7 +9197,7 @@ fn do_test_nondust_htlc_fees_dust_exposure_delta(features: ChannelTypeFeatures)
91979197
)),
91989198
..ChannelConfigUpdate::default()
91999199
};
9200-
nodes[1].node.update_partial_channel_config(&node_a_id, &[chan_id], &config).unwrap();
9200+
nodes[1].node.update_partial_channel_config(&node_a_id, vec![chan_id], &config).unwrap();
92019201

92029202
// Check a successful payment
92039203
send_payment(&nodes[0], &[&nodes[1]], NON_DUST_HTLC_MSAT);
@@ -9231,7 +9231,7 @@ fn do_test_nondust_htlc_fees_dust_exposure_delta(features: ChannelTypeFeatures)
92319231
)),
92329232
..ChannelConfigUpdate::default()
92339233
};
9234-
nodes[1].node.update_partial_channel_config(&node_a_id, &[chan_id], &update).unwrap();
9234+
nodes[1].node.update_partial_channel_config(&node_a_id, vec![chan_id], &update).unwrap();
92359235

92369236
// Send an additional non-dust htlc from 1 to 0 using the pre-calculated route above, and check the immediate complaint
92379237
let onion = RecipientOnionFields::secret_only(payment_secret_1_0);
@@ -9265,7 +9265,7 @@ fn do_test_nondust_htlc_fees_dust_exposure_delta(features: ChannelTypeFeatures)
92659265
)),
92669266
..ChannelConfigUpdate::default()
92679267
};
9268-
nodes[1].node.update_partial_channel_config(&node_a_id, &[chan_id], &update).unwrap();
9268+
nodes[1].node.update_partial_channel_config(&node_a_id, vec![chan_id], &update).unwrap();
92699269

92709270
// Check a successful payment
92719271
send_payment(&nodes[1], &[&nodes[0]], NON_DUST_HTLC_MSAT);

lightning/src/ln/max_payment_path_len_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ fn one_hop_blinded_path_with_custom_tlv() {
226226
let payee_tlvs = payee_tlvs.authenticate(nonce, &expanded_key);
227227
let mut secp_ctx = Secp256k1::new();
228228
let blinded_path = BlindedPaymentPath::new(
229-
&[],
229+
vec![],
230230
nodes[2].node.get_our_node_id(),
231231
payee_tlvs,
232232
u64::MAX,

lightning/src/ln/onion_route_tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1654,7 +1654,7 @@ fn do_test_onion_failure_stale_channel_update(announce_for_forwarding: bool) {
16541654
-> Option<msgs::ChannelUpdate> {
16551655
nodes[1]
16561656
.node
1657-
.update_channel_config(channel_to_update_counterparty, &[channel_to_update.0], config)
1657+
.update_channel_config(channel_to_update_counterparty, vec![channel_to_update.0], config)
16581658
.unwrap();
16591659
let events = nodes[1].node.get_and_clear_pending_msg_events();
16601660
assert_eq!(events.len(), expect_new_update as usize);
@@ -1714,7 +1714,7 @@ fn do_test_onion_failure_stale_channel_update(announce_for_forwarding: bool) {
17141714
invalid_config.cltv_expiry_delta = 0;
17151715
match nodes[1].node.update_channel_config(
17161716
channel_to_update_counterparty,
1717-
&[channel_to_update.0],
1717+
vec![channel_to_update.0],
17181718
&invalid_config,
17191719
) {
17201720
Err(APIError::APIMisuseError { .. }) => {},

lightning/src/routing/gossip.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ impl NodeId {
105105
}
106106

107107
/// Get the public key as an array from this NodeId
108-
pub fn as_array(&self) -> &[u8; PUBLIC_KEY_SIZE] {
108+
pub fn as_array(&self) -> &[u8; 33] {
109109
&self.0
110110
}
111111

lightning/src/routing/router.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ where
191191
})
192192
.map(|forward_node| {
193193
BlindedPaymentPath::new(
194-
&[forward_node], recipient, tlvs.clone(), u64::MAX, MIN_FINAL_CLTV_EXPIRY_DELTA,
194+
vec![forward_node], recipient, tlvs.clone(), u64::MAX, MIN_FINAL_CLTV_EXPIRY_DELTA,
195195
&*self.entropy_source, secp_ctx
196196
)
197197
})
@@ -203,7 +203,7 @@ where
203203
_ => {
204204
if network_graph.nodes().contains_key(&NodeId::from_pubkey(&recipient)) {
205205
BlindedPaymentPath::new(
206-
&[], recipient, tlvs, u64::MAX, MIN_FINAL_CLTV_EXPIRY_DELTA, &*self.entropy_source,
206+
Vec::new(), recipient, tlvs, u64::MAX, MIN_FINAL_CLTV_EXPIRY_DELTA, &*self.entropy_source,
207207
secp_ctx
208208
).map(|path| vec![path])
209209
} else {

0 commit comments

Comments
 (0)