///
/// This implementation performs no policy checks and is insufficient by itself as
/// a secure external signer.
+#[derive(Debug)]
pub struct InMemorySigner {
/// Holder secret key in the 2-of-2 multisig script of a channel. This key also backs the
/// holder's anchor output in a commitment transaction, if one is present.
rand_bytes_index: AtomicCounter,
}
+impl PartialEq for InMemorySigner {
+ fn eq(&self, other: &Self) -> bool {
+ self.funding_key == other.funding_key &&
+ self.revocation_base_key == other.revocation_base_key &&
+ self.payment_key == other.payment_key &&
+ self.delayed_payment_base_key == other.delayed_payment_base_key &&
+ self.htlc_base_key == other.htlc_base_key &&
+ self.commitment_seed == other.commitment_seed &&
+ self.holder_channel_pubkeys == other.holder_channel_pubkeys &&
+ self.channel_parameters == other.channel_parameters &&
+ self.channel_value_satoshis == other.channel_value_satoshis &&
+ self.channel_keys_id == other.channel_keys_id
+ }
+}
+
impl Clone for InMemorySigner {
fn clone(&self) -> Self {
Self {
let _signer: Box<dyn EcdsaChannelSigner>;
}
-#[cfg(all(test, feature = "_bench_unstable", not(feature = "no-std")))]
-mod benches {
+#[cfg(ldk_bench)]
+pub mod benches {
use std::sync::{Arc, mpsc};
use std::sync::mpsc::TryRecvError;
use std::thread;
use bitcoin::Network;
use crate::sign::{EntropySource, KeysManager};
- use test::Bencher;
+ use criterion::Criterion;
- #[bench]
- fn bench_get_secure_random_bytes(bench: &mut Bencher) {
+ pub fn bench_get_secure_random_bytes(bench: &mut Criterion) {
let seed = [0u8; 32];
let now = Duration::from_secs(genesis_block(Network::Testnet).header.time as u64);
let keys_manager = Arc::new(KeysManager::new(&seed, now.as_secs(), now.subsec_micros()));
stops.push(stop_sender);
}
- bench.iter(|| {
- for _ in 1..100 {
- keys_manager.get_secure_random_bytes();
- }
- });
+ bench.bench_function("get_secure_random_bytes", |b| b.iter(||
+ keys_manager.get_secure_random_bytes()));
for stop in stops {
let _ = stop.send(());
handle.join().unwrap();
}
}
-
}