You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We got a report in ledgerjs repo that a user of cardano-serialization-lib with a transaction containing tokens only in some of its outputs had an empty token bundle in all of them when serialized, which then breaks compatibility with hw wallets which never add this empty token bundle to non-token outputs. Is including an empty token bundle in the CBOR-serialized outputs intended?
I asked to get a repro of this issue written in code as a unit test that way we can easily tell if this is a user issue or not and validate a fix if it is an issue with the txbuilder interface.
I have today been able to test this a bit more and narrowed it down to a problem with add_change_if_needed() helper method to tx builder. This helper method adds the empty token map instead of omitting it completely. If I manually build the change output (without adding MultiAsset to Value) and add it to the builder and calculate/set the fee there is no issue and ledgerjs handles the witnessing of tx body correctly.
As per spec in CIP-0021 (updated today) a new section was added that mentions:
**Optional empty lists and maps**
Unless mentioned otherwise in this CIP, optional empty lists and maps must not be included as part of the transaction body or its elements.
We got a report in ledgerjs repo that a user of cardano-serialization-lib with a transaction containing tokens only in some of its outputs had an empty token bundle in all of them when serialized, which then breaks compatibility with hw wallets which never add this empty token bundle to non-token outputs. Is including an empty token bundle in the CBOR-serialized outputs intended?
Link to related issue: vacuumlabs/ledgerjs-cardano-shelley#125
The text was updated successfully, but these errors were encountered: