Skip to content

Always use transaction extensions version 0 when working with v4 transactions, and find latest match when using v5 #1998

Description

@jsdw

v4 transactions should always be encoded or decoded using the transaciton extensions under version 0 in the metadata. Currently, they would use the latest available version (which is ok at the moment because there only exists one version anyway; 0).

This is more complicated than just setting which version we'll look at, because V4 and V5 transactions will differ in their behaviour.

  • V4 transactions should always use version 0
  • V5 transactions should tend to using the latest version, but really should look for the version that lines up with the configured transaction extensions for the chain, and use that.
    • In the event that there is a version change, but the transaction extension names remain identical (only the properties of one or more of them change), we would have a dilemma as to which version to select. Thus, perhaps we should allow the user to explicitly configure which version of extensions to try to use, falling back to a sane default (use the latest that matches?) otherwise. Names changing would be an issue though and so I would expect that this wouldn't happen, so we can probably just be clever and pick the latest matching set.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions