Use new Channel::update_config method to update base fee in test

This commit is contained in:
Wilmer Paulino 2022-06-15 16:34:30 -07:00
parent e14f25ce0c
commit 0f30d7643c
No known key found for this signature in database
GPG key ID: 6DF57B9F9514972F
2 changed files with 14 additions and 6 deletions

View file

@ -500,9 +500,6 @@ pub(crate) const EXPIRE_PREV_CONFIG_TICKS: usize = 5;
// Holder designates channel data owned for the benefice of the user client.
// Counterparty designates channel data owned by the another channel participant entity.
pub(super) struct Channel<Signer: Sign> {
#[cfg(any(test, feature = "_test_utils"))]
pub(crate) config: LegacyChannelConfig,
#[cfg(not(any(test, feature = "_test_utils")))]
config: LegacyChannelConfig,
// Track the previous `ChannelConfig` so that we can continue forwarding HTLCs that were

View file

@ -15,6 +15,7 @@ use chain::{ChannelMonitorUpdateErr, Confirm, Listen, Watch};
use chain::channelmonitor::{ANTI_REORG_DELAY, ChannelMonitor, LATENCY_GRACE_PERIOD_BLOCKS};
use chain::transaction::OutPoint;
use chain::keysinterface::KeysInterface;
use ln::channel::EXPIRE_PREV_CONFIG_TICKS;
use ln::channelmanager::{BREAKDOWN_TIMEOUT, ChannelManager, ChannelManagerReadArgs, MPP_TIMEOUT_TICKS, PaymentId, PaymentSendFailure};
use ln::features::{InitFeatures, InvoiceFeatures};
use ln::msgs;
@ -531,9 +532,19 @@ fn do_retry_with_no_persist(confirm_before_reload: bool) {
// Update the fee on the middle hop to ensure PaymentSent events have the correct (retried) fee
// and not the original fee. We also update node[1]'s relevant config as
// do_claim_payment_along_route expects us to never overpay.
nodes[1].node.channel_state.lock().unwrap().by_id.get_mut(&chan_id_2).unwrap()
.config.options.forwarding_fee_base_msat += 100_000;
new_route.paths[0][0].fee_msat += 100_000;
{
let mut channel_state = nodes[1].node.channel_state.lock().unwrap();
let mut channel = channel_state.by_id.get_mut(&chan_id_2).unwrap();
let mut new_config = channel.config();
new_config.forwarding_fee_base_msat += 100_000;
channel.update_config(&new_config);
new_route.paths[0][0].fee_msat += 100_000;
}
// Force expiration of the channel's previous config.
for _ in 0..EXPIRE_PREV_CONFIG_TICKS {
nodes[1].node.timer_tick_occurred();
}
assert!(nodes[0].node.retry_payment(&new_route, payment_id_1).is_err()); // Shouldn't be allowed to retry a fulfilled payment
nodes[0].node.retry_payment(&new_route, payment_id).unwrap();