File tree Expand file tree Collapse file tree 1 file changed +5
-13
lines changed
Expand file tree Collapse file tree 1 file changed +5
-13
lines changed Original file line number Diff line number Diff line change @@ -249,16 +249,16 @@ def script_data_hash(
249249 Returns:
250250 ScriptDataHash: Plutus script data hash
251251 """
252- # Handle empty redeemers case - should be encoded as an empty RedeemerMap (A0 in hex)
253- if not redeemers :
252+ if redeemers is None :
254253 redeemers = RedeemerMap ()
255254 cost_models = {}
255+ elif len (redeemers ) == 0 :
256+ cost_models = {}
256257 elif not cost_models :
257258 cost_models = COST_MODELS
258259
259260 redeemer_bytes = cbor2 .dumps (redeemers , default = default_encoder )
260261
261- # Handle datums - if no datums, use empty bytestring
262262 if datums :
263263 if not isinstance (datums , NonEmptyOrderedSet ):
264264 # If datums is not a NonEmptyOrderedSet, handle it as a list
@@ -270,19 +270,11 @@ def script_data_hash(
270270 else :
271271 datum_bytes = b""
272272
273- # Encode cost models - must use definite length encoding
274- cost_models_bytes = cbor2 .dumps (
275- cost_models ,
276- default = default_encoder ,
277- canonical = True , # Ensures definite length encoding and canonical map keys
278- )
279-
280- # Concatenate in order: redeemers || datums || language views
281- data = redeemer_bytes + datum_bytes + cost_models_bytes
273+ cost_models_bytes = cbor2 .dumps (cost_models , default = default_encoder )
282274
283275 return ScriptDataHash (
284276 blake2b (
285- data ,
277+ redeemer_bytes + datum_bytes + cost_models_bytes ,
286278 SCRIPT_DATA_HASH_SIZE ,
287279 encoder = RawEncoder ,
288280 )
You can’t perform that action at this time.
0 commit comments