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.