kaspa_consensus_core/api/
args.rs1use std::collections::HashMap;
2
3use crate::tx::TransactionId;
4
5#[derive(Clone, Debug, Default)]
7pub struct TransactionValidationArgs {
8 pub feerate_threshold: Option<f64>,
10}
11
12impl TransactionValidationArgs {
13 pub fn new(feerate_threshold: Option<f64>) -> Self {
14 Self { feerate_threshold }
15 }
16}
17
18pub struct TransactionValidationBatchArgs {
20 tx_args: HashMap<TransactionId, TransactionValidationArgs>,
21}
22
23impl TransactionValidationBatchArgs {
24 const DEFAULT_ARGS: TransactionValidationArgs = TransactionValidationArgs { feerate_threshold: None };
25
26 pub fn new() -> Self {
27 Self { tx_args: HashMap::new() }
28 }
29
30 pub fn set_feerate_threshold(&mut self, transaction_id: TransactionId, feerate_threshold: f64) {
32 self.tx_args
33 .entry(transaction_id)
34 .and_modify(|x| x.feerate_threshold = Some(feerate_threshold))
35 .or_insert(TransactionValidationArgs::new(Some(feerate_threshold)));
36 }
37
38 pub fn get(&self, transaction_id: &TransactionId) -> &TransactionValidationArgs {
39 self.tx_args.get(transaction_id).unwrap_or(&Self::DEFAULT_ARGS)
40 }
41}
42
43impl Default for TransactionValidationBatchArgs {
44 fn default() -> Self {
45 Self::new()
46 }
47}