-
-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Round trip plutus datum serialization/deserialization error #330
Comments
I was able to recreate just by adding another test to def test_datum_witness():
@dataclass
class TestDatum(PlutusData):
CONSTR_ID = 0
a: int
b: bytes
tx_body = make_transaction_body()
signed_tx = Transaction(
tx_body, TransactionWitnessSet(plutus_data=[TestDatum(1, b"test")])
)
restored_tx = Transaction.from_cbor(signed_tx.to_cbor())
assert signed_tx.to_cbor_hex() == restored_tx.to_cbor_hex() Edit: Compare cbor instead of using the utility function that compares objects. Maybe that doesn't matter. |
Is there any fundamental difference between this and #311 ? |
Originally I wasn't sure, but now that I've looked into it I think they are the same. It all traces back to the decoder not properly distinguishing between definite/indefinite lists. I think either of these could be closed, maybe copying over some of the info from one to the other. In other news, I've been making progress on the |
Closing this issue due to duplication #311 |
Describe the bug
When adding a script input to a transaction in the transaction builder, the datum is improperly serialized.
To Reproduce
I will create a small working example later today, but the basic steps are:
Additional context: Generating the hash of the datum before serialization is correct.
Expected behavior
Roundtrip serializing and deserializing of a transaction without mutations in the data.
Environment and software version (please complete the following information):
The text was updated successfully, but these errors were encountered: