Skip to content

Metadata

The Runtime Metadata consists of all the necessary information on how to interact with the Runtime. Given that runtimes are upgradeable, changes to runtimes are applied to their metadata as well.

Supported versions

Gosemble supports the following versions:

Generation process

The original implementation of Gosemble Metadata was based on hard-coded definition types for all the necessary runtime types.

After the codebase was refactored and modularised, we began generating the metadata definitions with the help of Go's reflect package. We introduced a metadata generator, which builds and recursively adds the metadata type definitions.

Implementation is under development.

Currently, the metadata generator can generate metadata type definitions from:

  • Go types
  • A module's extrinsic calls
  • A module's errors
  • A module's constants
  • Extrinsic signed extensions

The goal is to add support for a module's storage types and remove all hard-coded definition types.

Future guidelines

We intend to refactor the metadata generation to be at compile-time.