Skip to content

Versioning in contracts #121

Open
Open
@axic

Description

@axic

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:

  1. Version the namespace (as ethereum@3 - the current revision), but disallow multiple versions.
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions