From d2a47b92c85af07ea4cae27b2525fde51ebc792e Mon Sep 17 00:00:00 2001 From: junderw Date: Fri, 23 Jun 2023 23:06:13 -0700 Subject: [PATCH] Move conversion logic to struct file --- backend/rust-gbt/src/audit_transaction.rs | 26 +++++++++++++++++++++++ backend/rust-gbt/src/gbt.rs | 22 +------------------ 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/backend/rust-gbt/src/audit_transaction.rs b/backend/rust-gbt/src/audit_transaction.rs index 1bf9a049e..90fe275ae 100644 --- a/backend/rust-gbt/src/audit_transaction.rs +++ b/backend/rust-gbt/src/audit_transaction.rs @@ -1,3 +1,4 @@ +use crate::thread_transaction::ThreadTransaction; use std::{ cmp::Ordering, collections::HashSet, @@ -55,3 +56,28 @@ impl Ord for AuditTransaction { self.partial_cmp(other).unwrap() } } + +impl AuditTransaction { + pub fn from_thread_transaction(tx: &ThreadTransaction) -> Self { + AuditTransaction { + uid: tx.uid, + fee: tx.fee, + weight: tx.weight, + sigops: tx.sigops, + fee_per_vsize: tx.fee_per_vsize, + effective_fee_per_vsize: tx.effective_fee_per_vsize, + dependency_rate: f64::INFINITY, + inputs: tx.inputs.clone(), + relatives_set_flag: false, + ancestors: HashSet::new(), + children: HashSet::new(), + ancestor_fee: tx.fee, + ancestor_weight: tx.weight, + ancestor_sigops: tx.sigops, + score: 0.0, + used: false, + modified: false, + dirty: false, + } + } +} diff --git a/backend/rust-gbt/src/gbt.rs b/backend/rust-gbt/src/gbt.rs index 6cea51554..912ec5956 100644 --- a/backend/rust-gbt/src/gbt.rs +++ b/backend/rust-gbt/src/gbt.rs @@ -1,7 +1,6 @@ use priority_queue::PriorityQueue; use std::cmp::Ordering; use std::collections::{HashMap, HashSet, VecDeque}; -use std::f64::INFINITY; use crate::audit_transaction::AuditTransaction; use crate::thread_transaction::ThreadTransaction; @@ -60,26 +59,7 @@ fn make_block_templates(mempool: &mut HashMap) -> Option // Initialize working structs for (uid, tx) in mempool { - let audit_tx = AuditTransaction { - uid: tx.uid, - fee: tx.fee, - weight: tx.weight, - sigops: tx.sigops, - fee_per_vsize: tx.fee_per_vsize, - effective_fee_per_vsize: tx.effective_fee_per_vsize, - dependency_rate: INFINITY, - inputs: tx.inputs.clone(), - relatives_set_flag: false, - ancestors: HashSet::new(), - children: HashSet::new(), - ancestor_fee: tx.fee, - ancestor_weight: tx.weight, - ancestor_sigops: tx.sigops, - score: 0.0, - used: false, - modified: false, - dirty: false, - }; + let audit_tx = AuditTransaction::from_thread_transaction(tx); audit_pool.insert(audit_tx.uid, audit_tx); mempool_array.push_back(*uid); }