-
-
Notifications
You must be signed in to change notification settings - Fork 251
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
feat(cardano): add support for CIP-36 Catalyst registration format #6735
feat(cardano): add support for CIP-36 Catalyst registration format #6735
Conversation
Would it be too painful to support old names as a fallback? so that we do not introduce any breaking changes? |
I'm afraid that apart from making the code a bit more complex, it might end up being even more confusing for clients (similar item names that seem related, when in fact representing the same data) than the breaking change, which requires only a trivial rename on the client side (easily pointed out by a typechecker). Also, the change is only related to Catalyst registrations, so ordinary Cardano txs are not even affected. Or do you consider maintaining and explaining the duplicated items preferrable anyway? (Btw, LedgerJS is doing the same rename.) |
still, it would break already existing implementations due to the nature of @trezor/connect which is updated "on the fly" for clients. We are basically facing one decision - are there any clients using
|
There are, but the next Catalyst round shouldn't happen sooner than in late December or January as far as I know, so there should be enough time for clients to update their Connect version.
Ah, so you mean keeping only the new type definitions? That would be much easier. (Though we should also do |
99% users receive update of connect automatically when we release it. There is a way how to "pin" your connect version, using
but since it is not very documented people are not using it.
Yes, keeping only the new definitions would be ok. Their code will still work after we roll out update and once they update their connect version, they will also receive the new types so they will update their code too.
Yes runtime should remain completely identical please 🙏 sorry for that. We already shot ourselves in leg once doing a breaking change update when we believed it would not affect anybody but it did. |
Alright, so a6c884e should fix this (sorry for the delay). I also tried signing a Catalyst registration with the legacy param (and expecting the legacy result) using a testing JS app, it should work as expected. |
Thanks, it looks great. We should be able to release together with firmware. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good and the tests are passing. 👍
This PR adds:
cardanoSignTransaction.md
changes for details.catalyst
occurences bygovernance
(so that it is clear that they serve also for other governance purposes, not only Catalyst).I believe that the only breaking change is renaming these two items in the public API:
catalystRegistrationParameters
togovernanceRegistrationParameters
(inCardanoAuxiliaryData
)catalystSignature
togovernanceSignature
(inCardanoAuxiliaryDataSupplement
)