use log::*;
use std::time::Duration;
const LOG_TARGET: &str = "wallet::transaction_service::config";
#[derive(Clone)]
pub struct TransactionServiceConfig {
pub broadcast_monitoring_timeout: Duration,
pub chain_monitoring_timeout: Duration,
pub direct_send_timeout: Duration,
pub broadcast_send_timeout: Duration,
pub low_power_polling_timeout: Duration,
pub transaction_resend_period: Duration,
pub resend_response_cooldown: Duration,
pub pending_transaction_cancellation_timeout: Duration,
pub num_confirmations_required: u64,
pub peer_dial_retry_timeout: Duration,
}
impl Default for TransactionServiceConfig {
fn default() -> Self {
Self {
broadcast_monitoring_timeout: Duration::from_secs(60),
chain_monitoring_timeout: Duration::from_secs(60),
direct_send_timeout: Duration::from_secs(20),
broadcast_send_timeout: Duration::from_secs(60),
low_power_polling_timeout: Duration::from_secs(300),
transaction_resend_period: Duration::from_secs(3600),
resend_response_cooldown: Duration::from_secs(300),
pending_transaction_cancellation_timeout: Duration::from_secs(259200), num_confirmations_required: 3,
peer_dial_retry_timeout: Duration::from_secs(20),
}
}
}
impl TransactionServiceConfig {
pub fn new(
broadcast_monitoring_timeout: Duration,
chain_monitoring_timeout: Duration,
direct_send_timeout: Duration,
broadcast_send_timeout: Duration,
) -> Self
{
trace!(
target: LOG_TARGET,
"Timeouts - Broadcast monitoring: {} s, Chain monitoring: {} s, Direct send: {} s, Broadcast send: {} s",
broadcast_monitoring_timeout.as_secs(),
chain_monitoring_timeout.as_secs(),
direct_send_timeout.as_secs(),
broadcast_send_timeout.as_secs(),
);
Self {
broadcast_monitoring_timeout,
chain_monitoring_timeout,
direct_send_timeout,
broadcast_send_timeout,
..Default::default()
}
}
}