Common protocol key type for serialization of Stm types #1108
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Content
This PR defines a new type in the common:
ProtocolKey
. This allow to replace previously hex encoded stm types to use the wrapped concrete types without changes to the (de)serialization of the parent types.The implementation of the two fist types that we worked on,
ProtocolSignerVerificationKey
&ProtocolSingleSignature
, is replaced with a simple type alias.Pre-submit checklist
Limitation
We can't implement to
ProtocolKey
From/ToString
(and&str
) alongside the already defined From/ToT
where T is (de)serilizable by serde. This is because String and &str are (de)serilizable by serde so the compiler can't decide which implementation to use if we define both.To circumvent that we implemented one 'genericly' (the conversion to from strings) and the other conversion is implemented manually for each types, the later operation is made trivial by defining a dedicated macro.
Issue(s)
Relates to #668