Open
Description
As we are making changes to the API it would make sense thinking about how to version imports in contracts.
Immediately an option comes to mind where either the namespace or the function name is version, for example following GCC's <symbol>@<version>
scheme.
If we version functions does it mean that multiple versions of the functions are accepted in a contract? I would say that is a bad idea.
If we version the namespace does it mean that multiple versions of the namespaces are accepted in a contract? Again, I think we shouldn't do that.
I would propose one of the following two options:
- Version the namespace (as
ethereum@3
- the current revision), but disallow multiple versions. - Have a custom section with the version in it.
Option 2) means that the Sentinel contract would need to verify the contract based on the value in the custom section.