Skip to content

Commit 39331f8

Browse files
committed
Fix to_json of lists
1 parent 66f911b commit 39331f8

File tree

2 files changed

+3
-5
lines changed

2 files changed

+3
-5
lines changed

pycardano/plutus.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -529,16 +529,14 @@ def _dfs(obj):
529529
return {"int": obj}
530530
elif isinstance(obj, bytes):
531531
return {"bytes": obj.hex()}
532-
elif isinstance(obj, list):
533-
return [_dfs(item) for item in obj]
534-
elif isinstance(obj, IndefiniteList):
532+
elif isinstance(obj, IndefiniteList) or isinstance(obj, list):
535533
return {"list": [_dfs(item) for item in obj]}
536534
elif isinstance(obj, dict):
537535
return {"map": [{"v": _dfs(v), "k": _dfs(k)} for k, v in obj.items()]}
538536
elif isinstance(obj, PlutusData):
539537
return {
540538
"constructor": obj.CONSTR_ID,
541-
"fields": _dfs([getattr(obj, f.name) for f in fields(obj)]),
539+
"fields": [_dfs(getattr(obj, f.name)) for f in fields(obj)],
542540
}
543541
else:
544542
raise TypeError(f"Unexpected type {type(obj)}")

test/pycardano/test_plutus.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ def test_plutus_data_list_json():
121121
encoded_json = test.to_json(separators=(",", ":"))
122122

123123
assert (
124-
'{"constructor":0,"fields":[[{"constructor":9,"fields":[]},{"constructor":9,"fields":[]}]]}'
124+
'{"constructor":0,"fields":[{"list":[{"constructor":9,"fields":[]},{"constructor":9,"fields":[]}]}]}'
125125
== encoded_json
126126
)
127127

0 commit comments

Comments
 (0)