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/Cargo.toml b/pallas-utxorpc/Cargo.toml index 14761c57..0b871990 100644 --- a/pallas-utxorpc/Cargo.toml +++ b/pallas-utxorpc/Cargo.toml @@ -12,7 +12,7 @@ authors = ["Santiago Carmuega "] [dependencies] # utxorpc-spec = { path = "../../../utxorpc/spec/gen/rust" } -utxorpc-spec = { version = "0.11.0" } +utxorpc-spec = { version = "0.14.0" } pallas-traverse = { version = "=0.31.0", path = "../pallas-traverse" } pallas-primitives = { version = "=0.31.0", path = "../pallas-primitives" } diff --git a/pallas-utxorpc/src/lib.rs b/pallas-utxorpc/src/lib.rs index 27edb75b..faee6fe9 100644 --- a/pallas-utxorpc/src/lib.rs +++ b/pallas-utxorpc/src/lib.rs @@ -65,6 +65,12 @@ impl Mapper { 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 { + steps: x.ex_units().steps, + memory: x.ex_units().mem, + }), + 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