feat(traverse): Provide access to original Datum hash (#189)
This commit is contained in:
parent
e3d9d8f9a3
commit
2495903434
9 changed files with 299 additions and 158 deletions
|
|
@ -1159,7 +1159,7 @@ pub struct BootstrapWitness {
|
|||
|
||||
#[derive(Serialize, Deserialize, Encode, Decode, Debug, PartialEq, Clone)]
|
||||
#[cbor(map)]
|
||||
pub struct TransactionWitnessSet {
|
||||
pub struct WitnessSet {
|
||||
#[n(0)]
|
||||
pub vkeywitness: Option<Vec<VKeyWitness>>,
|
||||
|
||||
|
|
@ -1179,6 +1179,43 @@ pub struct TransactionWitnessSet {
|
|||
pub redeemer: Option<Vec<Redeemer>>,
|
||||
}
|
||||
|
||||
#[derive(Encode, Decode, Debug, PartialEq, Clone)]
|
||||
#[cbor(map)]
|
||||
pub struct MintedWitnessSet<'b> {
|
||||
#[n(0)]
|
||||
pub vkeywitness: Option<Vec<VKeyWitness>>,
|
||||
|
||||
#[n(1)]
|
||||
pub native_script: Option<Vec<NativeScript>>,
|
||||
|
||||
#[n(2)]
|
||||
pub bootstrap_witness: Option<Vec<BootstrapWitness>>,
|
||||
|
||||
#[n(3)]
|
||||
pub plutus_script: Option<Vec<PlutusScript>>,
|
||||
|
||||
#[b(4)]
|
||||
pub plutus_data: Option<Vec<KeepRaw<'b, PlutusData>>>,
|
||||
|
||||
#[n(5)]
|
||||
pub redeemer: Option<Vec<Redeemer>>,
|
||||
}
|
||||
|
||||
impl<'b> From<MintedWitnessSet<'b>> for WitnessSet {
|
||||
fn from(x: MintedWitnessSet<'b>) -> Self {
|
||||
WitnessSet {
|
||||
vkeywitness: x.vkeywitness,
|
||||
native_script: x.native_script,
|
||||
bootstrap_witness: x.bootstrap_witness,
|
||||
plutus_script: x.plutus_script,
|
||||
plutus_data: x
|
||||
.plutus_data
|
||||
.map(|x| x.into_iter().map(|x| x.unwrap()).collect()),
|
||||
redeemer: x.redeemer,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Encode, Decode, Debug, PartialEq, Clone)]
|
||||
#[cbor(map)]
|
||||
pub struct PostAlonzoAuxiliaryData {
|
||||
|
|
@ -1328,7 +1365,7 @@ pub struct Block {
|
|||
pub transaction_bodies: Vec<TransactionBody>,
|
||||
|
||||
#[n(2)]
|
||||
pub transaction_witness_sets: Vec<TransactionWitnessSet>,
|
||||
pub transaction_witness_sets: Vec<WitnessSet>,
|
||||
|
||||
#[n(3)]
|
||||
pub auxiliary_data_set: BTreeMap<TransactionIndex, AuxiliaryData>,
|
||||
|
|
@ -1351,7 +1388,7 @@ pub struct MintedBlock<'b> {
|
|||
pub transaction_bodies: MaybeIndefArray<KeepRaw<'b, TransactionBody>>,
|
||||
|
||||
#[n(2)]
|
||||
pub transaction_witness_sets: MaybeIndefArray<KeepRaw<'b, TransactionWitnessSet>>,
|
||||
pub transaction_witness_sets: MaybeIndefArray<KeepRaw<'b, MintedWitnessSet<'b>>>,
|
||||
|
||||
#[n(3)]
|
||||
pub auxiliary_data_set: KeyValuePairs<TransactionIndex, KeepRaw<'b, AuxiliaryData>>,
|
||||
|
|
@ -1375,6 +1412,7 @@ impl<'b> From<MintedBlock<'b>> for Block {
|
|||
.to_vec()
|
||||
.into_iter()
|
||||
.map(|x| x.unwrap())
|
||||
.map(|x| WitnessSet::from(x))
|
||||
.collect(),
|
||||
auxiliary_data_set: x
|
||||
.auxiliary_data_set
|
||||
|
|
@ -1393,7 +1431,7 @@ pub struct Tx {
|
|||
pub transaction_body: TransactionBody,
|
||||
|
||||
#[n(1)]
|
||||
pub transaction_witness_set: TransactionWitnessSet,
|
||||
pub transaction_witness_set: WitnessSet,
|
||||
|
||||
#[n(2)]
|
||||
pub success: bool,
|
||||
|
|
@ -1408,7 +1446,7 @@ pub struct MintedTx<'b> {
|
|||
pub transaction_body: KeepRaw<'b, TransactionBody>,
|
||||
|
||||
#[n(1)]
|
||||
pub transaction_witness_set: KeepRaw<'b, TransactionWitnessSet>,
|
||||
pub transaction_witness_set: KeepRaw<'b, MintedWitnessSet<'b>>,
|
||||
|
||||
#[n(2)]
|
||||
pub success: bool,
|
||||
|
|
|
|||
|
|
@ -375,7 +375,7 @@ pub use crate::alonzo::BootstrapWitness;
|
|||
|
||||
#[derive(Serialize, Deserialize, Encode, Decode, Debug, PartialEq, Clone)]
|
||||
#[cbor(map)]
|
||||
pub struct TransactionWitnessSet {
|
||||
pub struct WitnessSet {
|
||||
#[n(0)]
|
||||
pub vkeywitness: Option<Vec<VKeyWitness>>,
|
||||
|
||||
|
|
@ -398,6 +398,47 @@ pub struct TransactionWitnessSet {
|
|||
pub plutus_v2_script: Option<Vec<PlutusV2Script>>,
|
||||
}
|
||||
|
||||
#[derive(Encode, Decode, Debug, PartialEq, Clone)]
|
||||
#[cbor(map)]
|
||||
pub struct MintedWitnessSet<'b> {
|
||||
#[n(0)]
|
||||
pub vkeywitness: Option<Vec<VKeyWitness>>,
|
||||
|
||||
#[n(1)]
|
||||
pub native_script: Option<Vec<NativeScript>>,
|
||||
|
||||
#[n(2)]
|
||||
pub bootstrap_witness: Option<Vec<BootstrapWitness>>,
|
||||
|
||||
#[n(3)]
|
||||
pub plutus_v1_script: Option<Vec<PlutusV1Script>>,
|
||||
|
||||
#[b(4)]
|
||||
pub plutus_data: Option<Vec<KeepRaw<'b, PlutusData>>>,
|
||||
|
||||
#[n(5)]
|
||||
pub redeemer: Option<Vec<Redeemer>>,
|
||||
|
||||
#[n(6)]
|
||||
pub plutus_v2_script: Option<Vec<PlutusV2Script>>,
|
||||
}
|
||||
|
||||
impl<'b> From<MintedWitnessSet<'b>> for WitnessSet {
|
||||
fn from(x: MintedWitnessSet<'b>) -> Self {
|
||||
WitnessSet {
|
||||
vkeywitness: x.vkeywitness,
|
||||
native_script: x.native_script,
|
||||
bootstrap_witness: x.bootstrap_witness,
|
||||
plutus_v1_script: x.plutus_v1_script,
|
||||
plutus_data: x
|
||||
.plutus_data
|
||||
.map(|x| x.into_iter().map(|x| x.unwrap()).collect()),
|
||||
redeemer: x.redeemer,
|
||||
plutus_v2_script: x.plutus_v2_script,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Encode, Decode, Debug, PartialEq, Clone)]
|
||||
#[cbor(map)]
|
||||
pub struct PostAlonzoAuxiliaryData {
|
||||
|
|
@ -521,7 +562,7 @@ pub struct Block {
|
|||
pub transaction_bodies: Vec<TransactionBody>,
|
||||
|
||||
#[n(2)]
|
||||
pub transaction_witness_sets: Vec<TransactionWitnessSet>,
|
||||
pub transaction_witness_sets: Vec<WitnessSet>,
|
||||
|
||||
#[n(3)]
|
||||
pub auxiliary_data_set: BTreeMap<TransactionIndex, AuxiliaryData>,
|
||||
|
|
@ -544,7 +585,7 @@ pub struct MintedBlock<'b> {
|
|||
pub transaction_bodies: MaybeIndefArray<KeepRaw<'b, TransactionBody>>,
|
||||
|
||||
#[n(2)]
|
||||
pub transaction_witness_sets: MaybeIndefArray<KeepRaw<'b, TransactionWitnessSet>>,
|
||||
pub transaction_witness_sets: MaybeIndefArray<KeepRaw<'b, MintedWitnessSet<'b>>>,
|
||||
|
||||
#[n(3)]
|
||||
pub auxiliary_data_set: KeyValuePairs<TransactionIndex, KeepRaw<'b, AuxiliaryData>>,
|
||||
|
|
@ -568,6 +609,7 @@ impl<'b> From<MintedBlock<'b>> for Block {
|
|||
.to_vec()
|
||||
.into_iter()
|
||||
.map(|x| x.unwrap())
|
||||
.map(|x| WitnessSet::from(x))
|
||||
.collect(),
|
||||
auxiliary_data_set: x
|
||||
.auxiliary_data_set
|
||||
|
|
@ -586,7 +628,7 @@ pub struct Tx {
|
|||
pub transaction_body: TransactionBody,
|
||||
|
||||
#[n(1)]
|
||||
pub transaction_witness_set: TransactionWitnessSet,
|
||||
pub transaction_witness_set: WitnessSet,
|
||||
|
||||
#[n(2)]
|
||||
pub success: bool,
|
||||
|
|
@ -601,7 +643,7 @@ pub struct MintedTx<'b> {
|
|||
pub transaction_body: KeepRaw<'b, TransactionBody>,
|
||||
|
||||
#[n(1)]
|
||||
pub transaction_witness_set: KeepRaw<'b, TransactionWitnessSet>,
|
||||
pub transaction_witness_set: KeepRaw<'b, MintedWitnessSet<'b>>,
|
||||
|
||||
#[n(2)]
|
||||
pub success: bool,
|
||||
|
|
@ -614,7 +656,7 @@ impl<'b> From<MintedTx<'b>> for Tx {
|
|||
fn from(x: MintedTx<'b>) -> Self {
|
||||
Tx {
|
||||
transaction_body: x.transaction_body.unwrap(),
|
||||
transaction_witness_set: x.transaction_witness_set.unwrap(),
|
||||
transaction_witness_set: x.transaction_witness_set.unwrap().into(),
|
||||
success: x.success,
|
||||
auxiliary_data: x.auxiliary_data.map(|x| x.unwrap()),
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue