From 2b730c0ab2f5f737186b445b4f2e82f299ad40e9 Mon Sep 17 00:00:00 2001 From: Clark Alesna Date: Thu, 8 Dec 2022 02:21:19 +0800 Subject: [PATCH 1/4] Added config and logic to expose invalid_transactions from block data --- src/mapper/babbage.rs | 18 ++++++++++++++++++ src/mapper/byron.rs | 2 ++ src/mapper/map.rs | 1 + src/mapper/prelude.rs | 3 +++ src/model.rs | 1 + 5 files changed, 25 insertions(+) diff --git a/src/mapper/babbage.rs b/src/mapper/babbage.rs index 3da6b3d4..d98de262 100644 --- a/src/mapper/babbage.rs +++ b/src/mapper/babbage.rs @@ -8,6 +8,8 @@ use pallas::ledger::primitives::babbage::{ use pallas::crypto::hash::Hash; +use std::ops::Deref; + use crate::model::{BlockRecord, Era, TransactionRecord}; use crate::utils::time::TimeProvider; use crate::{ @@ -142,15 +144,31 @@ impl EventWriter { false => None, }, transactions: None, + invalid_transactions: None }; if self.config.include_block_details { record.transactions = Some(self.collect_babbage_tx_records(source)?); } + if self.config.include_invalid_transaction_details { + record.invalid_transactions = self.collect_invalid_tx_indices(source); + } + Ok(record) } + pub fn collect_invalid_tx_indices( + &self, + block: &MintedBlock, + ) -> Option> { + if let Some(im) = &block.invalid_transactions { + Some((*im.deref()).to_vec()) + } else { + None + } + } + pub fn collect_babbage_tx_records( &self, block: &MintedBlock, diff --git a/src/mapper/byron.rs b/src/mapper/byron.rs index c83d877b..35f34b00 100644 --- a/src/mapper/byron.rs +++ b/src/mapper/byron.rs @@ -175,6 +175,7 @@ impl EventWriter { false => None, }, transactions: None, + invalid_transactions: None }; if self.config.include_block_details { @@ -235,6 +236,7 @@ impl EventWriter { false => None, }, transactions: None, + invalid_transactions: None }) } diff --git a/src/mapper/map.rs b/src/mapper/map.rs index 378e7448..2e37ce75 100644 --- a/src/mapper/map.rs +++ b/src/mapper/map.rs @@ -495,6 +495,7 @@ impl EventWriter { false => None, }, transactions: None, + invalid_transactions: None }; if self.config.include_block_details { diff --git a/src/mapper/prelude.rs b/src/mapper/prelude.rs index 4564bb92..08432f5c 100644 --- a/src/mapper/prelude.rs +++ b/src/mapper/prelude.rs @@ -25,6 +25,9 @@ pub struct Config { #[serde(default)] pub include_transaction_end_events: bool, + #[serde(default)] + pub include_invalid_transaction_details: bool, + #[serde(default)] pub include_block_details: bool, diff --git a/src/model.rs b/src/model.rs index ede19ba6..c4c3de88 100644 --- a/src/model.rs +++ b/src/model.rs @@ -275,6 +275,7 @@ pub struct BlockRecord { pub previous_hash: String, pub cbor_hex: Option, pub transactions: Option>, + pub invalid_transactions: Option> } impl From for EventData { From 0af19bfe4b31465bb808d4a3a311f9547c1c64fc Mon Sep 17 00:00:00 2001 From: Clark Alesna Date: Thu, 8 Dec 2022 02:30:31 +0800 Subject: [PATCH 2/4] better and shorter version? --- src/mapper/babbage.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/mapper/babbage.rs b/src/mapper/babbage.rs index d98de262..53782170 100644 --- a/src/mapper/babbage.rs +++ b/src/mapper/babbage.rs @@ -162,11 +162,7 @@ impl EventWriter { &self, block: &MintedBlock, ) -> Option> { - if let Some(im) = &block.invalid_transactions { - Some((*im.deref()).to_vec()) - } else { - None - } + block.invalid_transactions.clone().map(|im| im.deref().to_vec()) } pub fn collect_babbage_tx_records( From e20102da560de1f65249473c094aad1782f28295 Mon Sep 17 00:00:00 2001 From: Clark Alesna Date: Thu, 8 Dec 2022 02:36:20 +0800 Subject: [PATCH 3/4] this is even better? --- src/mapper/babbage.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mapper/babbage.rs b/src/mapper/babbage.rs index 53782170..f0158ef4 100644 --- a/src/mapper/babbage.rs +++ b/src/mapper/babbage.rs @@ -162,7 +162,7 @@ impl EventWriter { &self, block: &MintedBlock, ) -> Option> { - block.invalid_transactions.clone().map(|im| im.deref().to_vec()) + block.invalid_transactions.as_ref().map(|im| im.deref().to_vec()) } pub fn collect_babbage_tx_records( From 183b166f274fb27ee8a1d04f56dcda189736b536 Mon Sep 17 00:00:00 2001 From: Clark Alesna Date: Sat, 10 Dec 2022 01:10:36 +0800 Subject: [PATCH 4/4] removed include_invalid_transaction_details config and now exposes invalid transaction indices by default --- src/mapper/babbage.rs | 6 +----- src/mapper/prelude.rs | 3 --- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/mapper/babbage.rs b/src/mapper/babbage.rs index f0158ef4..b8dc3c8e 100644 --- a/src/mapper/babbage.rs +++ b/src/mapper/babbage.rs @@ -144,17 +144,13 @@ impl EventWriter { false => None, }, transactions: None, - invalid_transactions: None + invalid_transactions: self.collect_invalid_tx_indices(source) }; if self.config.include_block_details { record.transactions = Some(self.collect_babbage_tx_records(source)?); } - if self.config.include_invalid_transaction_details { - record.invalid_transactions = self.collect_invalid_tx_indices(source); - } - Ok(record) } diff --git a/src/mapper/prelude.rs b/src/mapper/prelude.rs index 08432f5c..4564bb92 100644 --- a/src/mapper/prelude.rs +++ b/src/mapper/prelude.rs @@ -25,9 +25,6 @@ pub struct Config { #[serde(default)] pub include_transaction_end_events: bool, - #[serde(default)] - pub include_invalid_transaction_details: bool, - #[serde(default)] pub include_block_details: bool,