pycardano icon indicating copy to clipboard operation
pycardano copied to clipboard

0.10.0 Inline Datum Serialisation Errors

Open while0x1 opened this issue 1 year ago • 4 comments

Describe the bug

Pycardano 0.10.0 cannot create an inline datum from CBOR hex - PlutusData().from_cbor(<CBOR_HEX>)

pycardano.exception.DeserializeException: Unexpected constructor ID for <class 'pycardano.plutus.PlutusData'>. Expect None, got 121 instead.

To Reproduce Find an Inline datum from a blockfrost request - create an empty PlutusData() object , empty = PlutusData() inline_datum = empty.from_cbor(<cbor_hex>)

empty = PlutusData() d = empty.from_cbor('d8799f581c7876ebac44945a88855442692b86400776e0a2987c5f54a19b457d86d8799f4040ff1b000000012a05f200d8799f1a001e84801a002191c01a0016e360d8799f19271000193a981a000249f0194e201a0006ddd01961a8d8799fd8799f581c0c8b9cc1657e5139be7a331036c5499f0c2dc09fd8680e9773e4a01affd8799fd8799fd8799f581c6e0defd3cf3a4307652e956b3ca65789ca5b7836ae5494ebc546ad8affffffffff1a001e84801a02faf0801a02faf0801a002dc6c01a000ab34ed8799f1a0006ddd01975301a000124f81a002dc6c0ffffd8799f581c8fef2d34078659493ce161a6c7fba4b56afefa8535296a5743f695874441414441ff1b000000012a05f2001a00011af11b00000052aeaea7801b0000006673cc7c5b1b0000018de01f5008582046ffb569dc0d84d965733a5ff92bb7b2244a6f72d4726558e49d1d41ad4fbc8fd8799f581c13dfcd07acf9c62ae28f7578e637210dddd7f77b393d0983b89c270758202f426424960c554bf256c1e7f2ee74013271613fd6cffdbe1b2f337600ed774cffd8799f581c13dfcd07acf9c62ae28f7578e637210dddd7f77b393d0983b89c270758202f426424960c554bf256c1e7f2ee74013271613fd6cffdbe1b2f337600ed774cffd87a80ff')

Expected behavior Pycardano 0.8.0 serialises the CBOR_HEX to create the object and deals with the CBOR tags appropriately , Pycardano 0.10.0 fails with error

Environment and software version (please complete the following information):

  • PyCardano Version [e.g. 0.8.0]
  • PyCardano Version [e.g. 0.10.0]

while0x1 avatar Feb 25 '24 23:02 while0x1