Proto/Michelson: make entrypoint type abstract
Context
Entrypoints are currently strings, which should be between 1 and 31 characters long. We had issues in the past on how entrypoints were serialized because we couldn't maintain this invariant.
This MR is based on !3746 (merged) and makes this type private abstract to ensure the invariant.
At first I made it abstract so a few added functions are remains of it: is_default, compare, Set/Map, in_memory_size, pp. I can remove them if needed.
I can also make the type abstract, which would basically just require adding a to_string.
-
Many of these changes were previously written by @rafoo_ in metastatedev/tezos!113 and I shall probably add him as a co-author of most commits.
Prerequisite for #2025 (closed).
Manually testing the MR
CI
Checklist
-
Document the interface of any function added or modified (see the coding guidelines) -
Document any change to the user interface, including configuration parameters (see node configuration) -
Provide automatic testing (see the testing guide). -
For new features and bug fixes, add an item in the appropriate changelog ( docs/protocols/alpha.rstfor the protocol and the environment, theDevelopment Versionsection ofCHANGES.mdfor everything else). -
Select suitable reviewers using the Reviewersfield below. -
Select as Assigneethe next person who should take action on that MR
Edited by Mehdi Bouaziz