From afa397f4ea340f8ffc1fc851bb9bcbb0f7a5f825 Mon Sep 17 00:00:00 2001 From: Harper Date: Tue, 2 Jan 2024 10:17:40 +0000 Subject: [PATCH] fix: return witness objects for conway era multieratx (#346) --- pallas-primitives/src/alonzo/model.rs | 6 +- pallas-primitives/src/babbage/model.rs | 50 +++++++++---- pallas-primitives/src/conway/model.rs | 100 +++++++++---------------- pallas-traverse/src/hashes.rs | 6 ++ pallas-traverse/src/output.rs | 6 +- pallas-traverse/src/witnesses.rs | 88 +++++++++++++++++++--- pallas-txbuilder/src/babbage.rs | 6 +- pallas-utxorpc/src/lib.rs | 12 +-- 8 files changed, 171 insertions(+), 103 deletions(-) diff --git a/pallas-primitives/src/alonzo/model.rs b/pallas-primitives/src/alonzo/model.rs index efc08a28..4f752b3d 100644 --- a/pallas-primitives/src/alonzo/model.rs +++ b/pallas-primitives/src/alonzo/model.rs @@ -1293,7 +1293,7 @@ pub struct MintedWitnessSet<'b> { pub vkeywitness: Option>, #[n(1)] - pub native_script: Option>, + pub native_script: Option>>, #[n(2)] pub bootstrap_witness: Option>, @@ -1312,7 +1312,9 @@ impl<'b> From> for WitnessSet { fn from(x: MintedWitnessSet<'b>) -> Self { WitnessSet { vkeywitness: x.vkeywitness, - native_script: x.native_script, + native_script: x + .native_script + .map(|x| x.into_iter().map(|x| x.unwrap()).collect()), bootstrap_witness: x.bootstrap_witness, plutus_script: x.plutus_script, plutus_data: x diff --git a/pallas-primitives/src/babbage/model.rs b/pallas-primitives/src/babbage/model.rs index 959243a8..72d673db 100644 --- a/pallas-primitives/src/babbage/model.rs +++ b/pallas-primitives/src/babbage/model.rs @@ -370,7 +370,7 @@ impl<'b> From> for TransactionOutput { #[derive(Encode, Decode, Debug, PartialEq, Clone)] #[cbor(map)] -pub struct PseudoPostAlonzoTransactionOutput { +pub struct PseudoPostAlonzoTransactionOutput { #[n(0)] pub address: Bytes, @@ -381,13 +381,13 @@ pub struct PseudoPostAlonzoTransactionOutput { pub datum_option: Option, #[n(3)] - pub script_ref: Option, + pub script_ref: Option>, } -pub type PostAlonzoTransactionOutput = PseudoPostAlonzoTransactionOutput; +pub type PostAlonzoTransactionOutput = PseudoPostAlonzoTransactionOutput; pub type MintedPostAlonzoTransactionOutput<'b> = - PseudoPostAlonzoTransactionOutput>; + PseudoPostAlonzoTransactionOutput, MintedScriptRef<'b>>; impl<'b> From> for PostAlonzoTransactionOutput { fn from(value: MintedPostAlonzoTransactionOutput<'b>) -> Self { @@ -395,7 +395,7 @@ impl<'b> From> for PostAlonzoTransactionOu address: value.address, value: value.value, datum_option: value.datum_option.map(|x| x.into()), - script_ref: value.script_ref, + script_ref: value.script_ref.map(|x| CborWrap(x.unwrap().into())), } } } @@ -464,7 +464,7 @@ pub struct MintedWitnessSet<'b> { pub vkeywitness: Option>, #[n(1)] - pub native_script: Option>, + pub native_script: Option>>, #[n(2)] pub bootstrap_witness: Option>, @@ -486,7 +486,9 @@ impl<'b> From> for WitnessSet { fn from(x: MintedWitnessSet<'b>) -> Self { WitnessSet { vkeywitness: x.vkeywitness, - native_script: x.native_script, + native_script: x + .native_script + .map(|x| x.into_iter().map(|x| x.unwrap()).collect()), bootstrap_witness: x.bootstrap_witness, plutus_v1_script: x.plutus_v1_script, plutus_data: x @@ -573,18 +575,33 @@ impl<'b> From> for DatumOption { } } -// script_ref = #6.24(bytes .cbor script) -pub type ScriptRef = CborWrap