@@ -11853,15 +11853,14 @@ mod tests {
11853
11853
use crate::ln::script::ShutdownScript;
11854
11854
use crate::ln::chan_utils::{self, htlc_success_tx_weight, htlc_timeout_tx_weight};
11855
11855
use crate::chain::BestBlock;
11856
- use crate::chain::chaininterface::{FeeEstimator, LowerBoundedFeeEstimator, ConfirmationTarget} ;
11856
+ use crate::chain::chaininterface::LowerBoundedFeeEstimator;
11857
11857
use crate::sign::{ChannelSigner, InMemorySigner, EntropySource, SignerProvider};
11858
11858
use crate::chain::transaction::OutPoint;
11859
11859
use crate::routing::router::{Path, RouteHop};
11860
11860
use crate::util::config::UserConfig;
11861
11861
use crate::util::errors::APIError;
11862
11862
use crate::util::ser::{ReadableArgs, Writeable};
11863
- use crate::util::test_utils;
11864
- use crate::util::test_utils::{OnGetShutdownScriptpubkey, TestKeysInterface};
11863
+ use crate::util::test_utils::{self, OnGetShutdownScriptpubkey, TestKeysInterface, TestFeeEstimator, TestLogger};
11865
11864
use bitcoin::secp256k1::{Secp256k1, ecdsa::Signature};
11866
11865
use bitcoin::secp256k1::ffi::Signature as FFISignature;
11867
11866
use bitcoin::secp256k1::{SecretKey,PublicKey};
@@ -11885,15 +11884,6 @@ mod tests {
11885
11884
assert!(ChannelState::ChannelReady(ChannelReadyFlags::new()) < ChannelState::ShutdownComplete);
11886
11885
}
11887
11886
11888
- struct TestFeeEstimator {
11889
- fee_est: u32
11890
- }
11891
- impl FeeEstimator for TestFeeEstimator {
11892
- fn get_est_sat_per_1000_weight(&self, _: ConfirmationTarget) -> u32 {
11893
- self.fee_est
11894
- }
11895
- }
11896
-
11897
11887
#[test]
11898
11888
fn test_max_funding_satoshis_no_wumbo() {
11899
11889
assert_eq!(TOTAL_BITCOIN_SUPPLY_SATOSHIS, 21_000_000 * 100_000_000);
@@ -11952,16 +11942,16 @@ mod tests {
11952
11942
11953
11943
let seed = [42; 32];
11954
11944
let network = Network::Testnet;
11955
- let keys_provider = test_utils:: TestKeysInterface::new(&seed, network);
11945
+ let keys_provider = TestKeysInterface::new(&seed, network);
11956
11946
keys_provider.expect(OnGetShutdownScriptpubkey {
11957
11947
returns: non_v0_segwit_shutdown_script.clone(),
11958
11948
});
11959
- let logger = test_utils:: TestLogger::new();
11949
+ let logger = TestLogger::new();
11960
11950
11961
11951
let secp_ctx = Secp256k1::new();
11962
11952
let node_id = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
11963
11953
let config = UserConfig::default();
11964
- match OutboundV1Channel::<&TestKeysInterface>::new(&LowerBoundedFeeEstimator::new(&TestFeeEstimator { fee_est: 253 } ), &&keys_provider, &&keys_provider, node_id, &features, 10000000, 100000, 42, &config, 0, 42, None, &logger) {
11954
+ match OutboundV1Channel::<&TestKeysInterface>::new(&LowerBoundedFeeEstimator::new(&TestFeeEstimator::new( 253) ), &&keys_provider, &&keys_provider, node_id, &features, 10000000, 100000, 42, &config, 0, 42, None, &logger) {
11965
11955
Err(APIError::IncompatibleShutdownScript { script }) => {
11966
11956
assert_eq!(script.into_inner(), non_v0_segwit_shutdown_script.into_inner());
11967
11957
},
@@ -11975,21 +11965,21 @@ mod tests {
11975
11965
#[test]
11976
11966
fn test_open_channel_msg_fee() {
11977
11967
let original_fee = 253;
11978
- let mut fee_est = TestFeeEstimator{fee_est: original_fee } ;
11968
+ let fee_est = TestFeeEstimator::new( original_fee) ;
11979
11969
let bounded_fee_estimator = LowerBoundedFeeEstimator::new(&fee_est);
11980
11970
let secp_ctx = Secp256k1::new();
11981
11971
let seed = [42; 32];
11982
11972
let network = Network::Testnet;
11983
- let keys_provider = test_utils:: TestKeysInterface::new(&seed, network);
11984
- let logger = test_utils:: TestLogger::new();
11973
+ let keys_provider = TestKeysInterface::new(&seed, network);
11974
+ let logger = TestLogger::new();
11985
11975
11986
11976
let node_a_node_id = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
11987
11977
let config = UserConfig::default();
11988
11978
let mut node_a_chan = OutboundV1Channel::<&TestKeysInterface>::new(&bounded_fee_estimator, &&keys_provider, &&keys_provider, node_a_node_id, &channelmanager::provided_init_features(&config), 10000000, 100000, 42, &config, 0, 42, None, &logger).unwrap();
11989
11979
11990
11980
// Now change the fee so we can check that the fee in the open_channel message is the
11991
11981
// same as the old fee.
11992
- fee_est.fee_est = 500;
11982
+ * fee_est.sat_per_kw.lock().unwrap() = 500;
11993
11983
let open_channel_msg = node_a_chan.get_open_channel(ChainHash::using_genesis_block(network), &&logger).unwrap();
11994
11984
assert_eq!(open_channel_msg.common_fields.commitment_feerate_sat_per_1000_weight, original_fee);
11995
11985
}
@@ -11998,12 +11988,13 @@ mod tests {
11998
11988
fn test_holder_vs_counterparty_dust_limit() {
11999
11989
// Test that when calculating the local and remote commitment transaction fees, the correct
12000
11990
// dust limits are used.
12001
- let feeest = LowerBoundedFeeEstimator::new(&TestFeeEstimator{fee_est: 15000});
11991
+ let test_est = TestFeeEstimator::new(15000);
11992
+ let feeest = LowerBoundedFeeEstimator::new(&test_est);
12002
11993
let secp_ctx = Secp256k1::new();
12003
11994
let seed = [42; 32];
12004
11995
let network = Network::Testnet;
12005
- let keys_provider = test_utils:: TestKeysInterface::new(&seed, network);
12006
- let logger = test_utils:: TestLogger::new();
11996
+ let keys_provider = TestKeysInterface::new(&seed, network);
11997
+ let logger = TestLogger::new();
12007
11998
let best_block = BestBlock::from_network(network);
12008
11999
12009
12000
// Go through the flow of opening a channel between two nodes, making sure
@@ -12089,12 +12080,13 @@ mod tests {
12089
12080
// calculate the real dust limits for HTLCs (i.e. the dust limit given by the counterparty
12090
12081
// *plus* the fees paid for the HTLC) they don't swap `HTLC_SUCCESS_TX_WEIGHT` for
12091
12082
// `HTLC_TIMEOUT_TX_WEIGHT`, and vice versa.
12092
- let fee_est = LowerBoundedFeeEstimator::new(&TestFeeEstimator{fee_est: 253 });
12083
+ let test_est = TestFeeEstimator::new(253);
12084
+ let fee_est = LowerBoundedFeeEstimator::new(&test_est);
12093
12085
let secp_ctx = Secp256k1::new();
12094
12086
let seed = [42; 32];
12095
12087
let network = Network::Testnet;
12096
- let keys_provider = test_utils:: TestKeysInterface::new(&seed, network);
12097
- let logger = test_utils:: TestLogger::new();
12088
+ let keys_provider = TestKeysInterface::new(&seed, network);
12089
+ let logger = TestLogger::new();
12098
12090
12099
12091
let node_id = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
12100
12092
let config = UserConfig::default();
@@ -12133,14 +12125,15 @@ mod tests {
12133
12125
12134
12126
#[test]
12135
12127
fn channel_reestablish_no_updates() {
12136
- let feeest = LowerBoundedFeeEstimator::new(&TestFeeEstimator{fee_est: 15000});
12137
- let logger = test_utils::TestLogger::new();
12128
+ let test_est = TestFeeEstimator::new(15000);
12129
+ let feeest = LowerBoundedFeeEstimator::new(&test_est);
12130
+ let logger = TestLogger::new();
12138
12131
let secp_ctx = Secp256k1::new();
12139
12132
let seed = [42; 32];
12140
12133
let network = Network::Testnet;
12141
12134
let best_block = BestBlock::from_network(network);
12142
12135
let chain_hash = ChainHash::using_genesis_block(network);
12143
- let keys_provider = test_utils:: TestKeysInterface::new(&seed, network);
12136
+ let keys_provider = TestKeysInterface::new(&seed, network);
12144
12137
12145
12138
// Go through the flow of opening a channel between two nodes.
12146
12139
@@ -12190,12 +12183,13 @@ mod tests {
12190
12183
12191
12184
#[test]
12192
12185
fn test_configured_holder_max_htlc_value_in_flight() {
12193
- let feeest = LowerBoundedFeeEstimator::new(&TestFeeEstimator{fee_est: 15000});
12194
- let logger = test_utils::TestLogger::new();
12186
+ let test_est = TestFeeEstimator::new(15000);
12187
+ let feeest = LowerBoundedFeeEstimator::new(&test_est);
12188
+ let logger = TestLogger::new();
12195
12189
let secp_ctx = Secp256k1::new();
12196
12190
let seed = [42; 32];
12197
12191
let network = Network::Testnet;
12198
- let keys_provider = test_utils:: TestKeysInterface::new(&seed, network);
12192
+ let keys_provider = TestKeysInterface::new(&seed, network);
12199
12193
let outbound_node_id = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
12200
12194
let inbound_node_id = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[7; 32]).unwrap());
12201
12195
@@ -12284,12 +12278,13 @@ mod tests {
12284
12278
}
12285
12279
12286
12280
fn test_self_and_counterparty_channel_reserve(channel_value_satoshis: u64, outbound_selected_channel_reserve_perc: f64, inbound_selected_channel_reserve_perc: f64) {
12287
- let fee_est = LowerBoundedFeeEstimator::new(&TestFeeEstimator { fee_est: 15_000 });
12288
- let logger = test_utils::TestLogger::new();
12281
+ let test_est = TestFeeEstimator::new(15000);
12282
+ let fee_est = LowerBoundedFeeEstimator::new(&test_est);
12283
+ let logger = TestLogger::new();
12289
12284
let secp_ctx = Secp256k1::new();
12290
12285
let seed = [42; 32];
12291
12286
let network = Network::Testnet;
12292
- let keys_provider = test_utils:: TestKeysInterface::new(&seed, network);
12287
+ let keys_provider = TestKeysInterface::new(&seed, network);
12293
12288
let outbound_node_id = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
12294
12289
let inbound_node_id = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[7; 32]).unwrap());
12295
12290
@@ -12321,14 +12316,15 @@ mod tests {
12321
12316
12322
12317
#[test]
12323
12318
fn channel_update() {
12324
- let feeest = LowerBoundedFeeEstimator::new(&TestFeeEstimator{fee_est: 15000});
12325
- let logger = test_utils::TestLogger::new();
12319
+ let test_est = TestFeeEstimator::new(15000);
12320
+ let feeest = LowerBoundedFeeEstimator::new(&test_est);
12321
+ let logger = TestLogger::new();
12326
12322
let secp_ctx = Secp256k1::new();
12327
12323
let seed = [42; 32];
12328
12324
let network = Network::Testnet;
12329
12325
let best_block = BestBlock::from_network(network);
12330
12326
let chain_hash = ChainHash::using_genesis_block(network);
12331
- let keys_provider = test_utils:: TestKeysInterface::new(&seed, network);
12327
+ let keys_provider = TestKeysInterface::new(&seed, network);
12332
12328
12333
12329
// Create Node A's channel pointing to Node B's pubkey
12334
12330
let node_b_node_id = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
@@ -12398,13 +12394,14 @@ mod tests {
12398
12394
fn blinding_point_skimmed_fee_malformed_ser() {
12399
12395
// Ensure that channel blinding points, skimmed fees, and malformed HTLCs are (de)serialized
12400
12396
// properly.
12401
- let logger = test_utils::TestLogger::new();
12402
- let feeest = LowerBoundedFeeEstimator::new(&TestFeeEstimator{fee_est: 15000});
12397
+ let logger = TestLogger::new();
12398
+ let test_est = TestFeeEstimator::new(15000);
12399
+ let feeest = LowerBoundedFeeEstimator::new(&test_est);
12403
12400
let secp_ctx = Secp256k1::new();
12404
12401
let seed = [42; 32];
12405
12402
let network = Network::Testnet;
12406
12403
let best_block = BestBlock::from_network(network);
12407
- let keys_provider = test_utils:: TestKeysInterface::new(&seed, network);
12404
+ let keys_provider = TestKeysInterface::new(&seed, network);
12408
12405
12409
12406
let node_b_node_id = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
12410
12407
let config = UserConfig::default();
@@ -12543,8 +12540,8 @@ mod tests {
12543
12540
use core::str::FromStr;
12544
12541
12545
12542
// Test vectors from BOLT 3 Appendices C and F (anchors):
12546
- let feeest = TestFeeEstimator{fee_est: 15000} ;
12547
- let logger : Arc<dyn Logger> = Arc::new(test_utils:: TestLogger::new());
12543
+ let feeest = TestFeeEstimator::new( 15000) ;
12544
+ let logger : Arc<dyn Logger> = Arc::new(TestLogger::new());
12548
12545
let secp_ctx = Secp256k1::new();
12549
12546
12550
12547
let signer = InMemorySigner::new(
@@ -13304,12 +13301,13 @@ mod tests {
13304
13301
13305
13302
#[test]
13306
13303
fn test_zero_conf_channel_type_support() {
13307
- let feeest = LowerBoundedFeeEstimator::new(&TestFeeEstimator{fee_est: 15000});
13304
+ let test_est = TestFeeEstimator::new(15000);
13305
+ let feeest = LowerBoundedFeeEstimator::new(&test_est);
13308
13306
let secp_ctx = Secp256k1::new();
13309
13307
let seed = [42; 32];
13310
13308
let network = Network::Testnet;
13311
- let keys_provider = test_utils:: TestKeysInterface::new(&seed, network);
13312
- let logger = test_utils:: TestLogger::new();
13309
+ let keys_provider = TestKeysInterface::new(&seed, network);
13310
+ let logger = TestLogger::new();
13313
13311
13314
13312
let node_b_node_id = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[42; 32]).unwrap());
13315
13313
let config = UserConfig::default();
@@ -13372,10 +13370,11 @@ mod tests {
13372
13370
13373
13371
fn do_test_supports_channel_type(config: UserConfig, expected_channel_type: ChannelTypeFeatures) {
13374
13372
let secp_ctx = Secp256k1::new();
13375
- let fee_estimator = LowerBoundedFeeEstimator::new(&TestFeeEstimator{fee_est: 15000});
13373
+ let test_est = TestFeeEstimator::new(15000);
13374
+ let fee_estimator = LowerBoundedFeeEstimator::new(&test_est);
13376
13375
let network = Network::Testnet;
13377
- let keys_provider = test_utils:: TestKeysInterface::new(&[42; 32], network);
13378
- let logger = test_utils:: TestLogger::new();
13376
+ let keys_provider = TestKeysInterface::new(&[42; 32], network);
13377
+ let logger = TestLogger::new();
13379
13378
13380
13379
let node_id_a = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[1; 32]).unwrap());
13381
13380
let node_id_b = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[2; 32]).unwrap());
@@ -13418,10 +13417,11 @@ mod tests {
13418
13417
// Tests that if `option_anchors` is being negotiated implicitly through the intersection of
13419
13418
// each side's `InitFeatures`, it is rejected.
13420
13419
let secp_ctx = Secp256k1::new();
13421
- let fee_estimator = LowerBoundedFeeEstimator::new(&TestFeeEstimator{fee_est: 15000});
13420
+ let test_est = TestFeeEstimator::new(15000);
13421
+ let fee_estimator = LowerBoundedFeeEstimator::new(&test_est);
13422
13422
let network = Network::Testnet;
13423
- let keys_provider = test_utils:: TestKeysInterface::new(&[42; 32], network);
13424
- let logger = test_utils:: TestLogger::new();
13423
+ let keys_provider = TestKeysInterface::new(&[42; 32], network);
13424
+ let logger = TestLogger::new();
13425
13425
13426
13426
let node_id_a = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[1; 32]).unwrap());
13427
13427
let node_id_b = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[2; 32]).unwrap());
@@ -13459,10 +13459,11 @@ mod tests {
13459
13459
// Tests that if `option_anchors` is being negotiated through the `channel_type` feature,
13460
13460
// it is rejected.
13461
13461
let secp_ctx = Secp256k1::new();
13462
- let fee_estimator = LowerBoundedFeeEstimator::new(&TestFeeEstimator{fee_est: 15000});
13462
+ let test_est = TestFeeEstimator::new(15000);
13463
+ let fee_estimator = LowerBoundedFeeEstimator::new(&test_est);
13463
13464
let network = Network::Testnet;
13464
- let keys_provider = test_utils:: TestKeysInterface::new(&[42; 32], network);
13465
- let logger = test_utils:: TestLogger::new();
13465
+ let keys_provider = TestKeysInterface::new(&[42; 32], network);
13466
+ let logger = TestLogger::new();
13466
13467
13467
13468
let node_id_a = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[1; 32]).unwrap());
13468
13469
let node_id_b = PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&[2; 32]).unwrap());
@@ -13525,14 +13526,15 @@ mod tests {
13525
13526
13526
13527
#[test]
13527
13528
fn test_waiting_for_batch() {
13528
- let feeest = LowerBoundedFeeEstimator::new(&TestFeeEstimator{fee_est: 15000});
13529
- let logger = test_utils::TestLogger::new();
13529
+ let test_est = TestFeeEstimator::new(15000);
13530
+ let feeest = LowerBoundedFeeEstimator::new(&test_est);
13531
+ let logger = TestLogger::new();
13530
13532
let secp_ctx = Secp256k1::new();
13531
13533
let seed = [42; 32];
13532
13534
let network = Network::Testnet;
13533
13535
let best_block = BestBlock::from_network(network);
13534
13536
let chain_hash = ChainHash::using_genesis_block(network);
13535
- let keys_provider = test_utils:: TestKeysInterface::new(&seed, network);
13537
+ let keys_provider = TestKeysInterface::new(&seed, network);
13536
13538
13537
13539
let mut config = UserConfig::default();
13538
13540
// Set trust_own_funding_0conf while ensuring we don't send channel_ready for a
0 commit comments