File tree 1 file changed +18
-5
lines changed
1 file changed +18
-5
lines changed Original file line number Diff line number Diff line change 14
14
RawPlutusData ,
15
15
Redeemer ,
16
16
Redeemers ,
17
+ RedeemerMap ,
18
+ RedeemerKey ,
19
+ RedeemerValue ,
20
+ ExecutionUnits ,
21
+ RedeemerTag ,
17
22
)
18
23
from pycardano .serialization import (
19
24
ArrayCBORSerializable ,
@@ -116,11 +121,19 @@ def _get_plutus_v2_scripts(data: Any):
116
121
return [PlutusV2Script (script ) for script in data ] if data else None
117
122
118
123
def _get_redeemers (data : Any ):
119
- return (
120
- [Redeemer .from_primitive (redeemer ) for redeemer in data ]
121
- if data
122
- else None
123
- )
124
+ if not data :
125
+ return None
126
+ if isinstance (data , dict ):
127
+ redeemer_map = RedeemerMap ()
128
+ for (tag , index ), value in data .items ():
129
+ key = RedeemerKey (RedeemerTag (tag ), index )
130
+ redeemer_value = RedeemerValue (value [0 ], ExecutionUnits (* value [1 ]))
131
+ redeemer_map [key ] = redeemer_value
132
+ return redeemer_map
133
+ elif isinstance (data , list ):
134
+ return [Redeemer .from_primitive (redeemer ) for redeemer in data ]
135
+ else :
136
+ raise ValueError (f"Unexpected redeemer data format: { type (data )} " )
124
137
125
138
def _get_cls (data : Any ):
126
139
return cls (
You can’t perform that action at this time.
0 commit comments