From 3fa5274ee8622dc2e12ab9f0760b7cf824f63f2e Mon Sep 17 00:00:00 2001 From: Santiago Carmuega Date: Sat, 14 Dec 2024 13:15:24 -0300 Subject: [PATCH] simplify encoding and fix tests --- pallas-traverse/src/redeemers.rs | 8 ++++++++ pallas-utxorpc/src/lib.rs | 17 ++++------------ test_data/u5c1.json | 34 ++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 13 deletions(-) diff --git a/pallas-traverse/src/redeemers.rs b/pallas-traverse/src/redeemers.rs index 9f96c9a9..5601e773 100644 --- a/pallas-traverse/src/redeemers.rs +++ b/pallas-traverse/src/redeemers.rs @@ -1,5 +1,6 @@ use std::borrow::Cow; +use pallas_codec::minicbor; use pallas_primitives::{alonzo, conway}; use crate::MultiEraRedeemer; @@ -78,4 +79,11 @@ impl<'b> MultiEraRedeemer<'b> { })), ) } + + pub fn encode(&self) -> Vec { + match self { + MultiEraRedeemer::AlonzoCompatible(x) => minicbor::to_vec(x).unwrap(), + MultiEraRedeemer::Conway(k, v) => minicbor::to_vec((k, v)).unwrap(), + } + } } diff --git a/pallas-utxorpc/src/lib.rs b/pallas-utxorpc/src/lib.rs index c363792b..78155c30 100644 --- a/pallas-utxorpc/src/lib.rs +++ b/pallas-utxorpc/src/lib.rs @@ -1,6 +1,6 @@ use std::{collections::HashMap, ops::Deref}; -use pallas_codec::{minicbor, utils::KeyValuePairs}; +use pallas_codec::utils::KeyValuePairs; use pallas_crypto::hash::Hash; use pallas_primitives::{alonzo, babbage, conway}; use pallas_traverse as trv; @@ -62,24 +62,15 @@ impl Mapper { } pub fn map_redeemer(&self, x: &trv::MultiEraRedeemer) -> u5c::Redeemer { - let cbor = match x { - trv::MultiEraRedeemer::AlonzoCompatible(_) => { - minicbor::to_vec(x.as_alonzo()).unwrap() - } - trv::MultiEraRedeemer::Conway(_,_) => { - minicbor::to_vec(x.as_conway()).unwrap() - } - _ => todo!(), - }; u5c::Redeemer { purpose: self.map_purpose(&x.tag()).into(), payload: self.map_plutus_datum(x.data()).into(), index: x.index().into(), - ex_units: Some(u5c::ExUnits{ + ex_units: Some(u5c::ExUnits { steps: x.ex_units().steps as u64, - memory: x.ex_units().mem as u64 + memory: x.ex_units().mem as u64, }), - original_cbor: cbor.into() + original_cbor: x.encode().into(), } } diff --git a/test_data/u5c1.json b/test_data/u5c1.json index 3badec88..b8e4880d 100644 --- a/test_data/u5c1.json +++ b/test_data/u5c1.json @@ -22,6 +22,11 @@ "inputs": [ { "redeemer": { + "exUnits": { + "memory": "2893153", + "steps": "1254988362" + }, + "originalCbor": "hAAAGgAtxsCCGgAsJWEaSs2aSg==", "payload": { "bigInt": { "int": "3000000" @@ -33,6 +38,12 @@ }, { "redeemer": { + "exUnits": { + "memory": "29039", + "steps": "9759373" + }, + "index": 1, + "originalCbor": "hAAB2HmAghlxbxoAlOqN", "payload": { "constr": { "tag": 121 @@ -45,6 +56,12 @@ { "outputIndex": 2, "redeemer": { + "exUnits": { + "memory": "23776", + "steps": "8949203" + }, + "index": 2, + "originalCbor": "hAAC2HmAghlc4BoAiI3T", "payload": { "constr": { "tag": 121 @@ -1384,6 +1401,12 @@ }, { "redeemer": { + "exUnits": { + "memory": "862260", + "steps": "283080173" + }, + "index": 1, + "originalCbor": "hAAB2HmAghoADSg0GhDfde0=", "payload": { "constr": { "tag": 121 @@ -2018,6 +2041,12 @@ }, { "redeemer": { + "exUnits": { + "memory": "312977", + "steps": "151500123" + }, + "index": 1, + "originalCbor": "hAAB2HqfUCgL7p8Ifi1y1Y0n3fHPaAb/ghoABMaRGgkHtVs=", "payload": { "constr": { "fields": [ @@ -2043,6 +2072,11 @@ ], "policyId": "J5+ELDPu2QVLnjxwzWo7MimCWcJLeLiVy0HZGg==", "redeemer": { + "exUnits": { + "memory": "56931", + "steps": "22622736" + }, + "originalCbor": "hAEA2HmAghneYxoBWTIQ", "payload": { "constr": { "tag": 121