diff --git a/src/mapper/byron.rs b/src/mapper/byron.rs index 6570c046..ba59f12f 100644 --- a/src/mapper/byron.rs +++ b/src/mapper/byron.rs @@ -45,6 +45,7 @@ impl EventWriter { amount: source.amount, assets: None, datum_hash: None, + datum_cbor: None }) } diff --git a/src/mapper/map.rs b/src/mapper/map.rs index 1db3698a..a6868a2d 100644 --- a/src/mapper/map.rs +++ b/src/mapper/map.rs @@ -1,7 +1,10 @@ use std::collections::HashMap; use pallas::{ - codec::{minicbor::bytes::ByteVec, utils::KeepRaw}, + codec::{ + minicbor::{bytes::ByteVec, to_vec}, + utils::KeepRaw, + }, crypto::hash::Hash, ledger::primitives::babbage::DatumOption, }; @@ -178,6 +181,7 @@ impl EventWriter { amount: get_tx_output_coin_value(&output.amount), assets: self.collect_asset_records(&output.amount).into(), datum_hash: output.datum_hash.map(|hash| hash.to_string()), + datum_cbor: None, }) } @@ -192,8 +196,13 @@ impl EventWriter { .encode_address(output.address.as_slice())?, amount: get_tx_output_coin_value(&output.value), assets: self.collect_asset_records(&output.value).into(), - datum_hash: match output.datum_option { + datum_hash: match &output.datum_option { Some(DatumOption::Hash(x)) => Some(x.to_string()), + Some(DatumOption::Data(x)) => Some(x.to_hash().to_string()), + _ => None, + }, + datum_cbor: match &output.datum_option { + Some(DatumOption::Data(x)) => Some(to_vec(&x.0)?.to_hex()), _ => None, }, }) diff --git a/src/model.rs b/src/model.rs index f3dae52a..358fe6b3 100644 --- a/src/model.rs +++ b/src/model.rs @@ -125,6 +125,7 @@ pub struct TxOutputRecord { pub amount: u64, pub assets: Option>, pub datum_hash: Option, + pub datum_cbor: Option, } impl From for EventData {