RuntimeVersion class

Runtime version. This should not be thought of as classic Semver (major/minor/tiny). This triplet have different semantics and mis-interpretation could cause problems. In particular: bug fixes should result in an increment of spec_version and possibly authoring_version, absolutely not impl_version since they change the semantics of the runtime.

Constructors

RuntimeVersion({required String specName, required String implName, required int authoringVersion, required int specVersion, required int implVersion, required List<ApiVersion> apis, required int transactionVersion, required int stateVersion})
const
RuntimeVersion.decode(Input input)
factory
RuntimeVersion.fromJson(Map<String, dynamic> json)
factory

Properties

apis List<ApiVersion>
List of supported API "features" along with their versions.
final
authoringVersion int
authoring_version is the version of the authorship interface. An authoring node will not attempt to author blocks unless this is equal to its native runtime.
final
hashCode int
The hash code for this object.
no setteroverride
implName String
Name of the implementation of the spec. This is of little consequence for the node and serves only to differentiate code of different implementation teams. For this codebase, it will be parity-polkadot. If there were a non-Rust implementation of the Polkadot runtime (e.g. C++), then it would identify itself with an accordingly different impl_name.
final
implVersion int
Version of the implementation of the specification. Nodes are free to ignore this; it serves only as an indication that the code is different; as long as the other two versions are the same then while the actual code may be different, it is nonetheless required to do the same thing. Non-consensus-breaking optimizations are about the only changes that could be made which would result in only the impl_version changing.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
specName String
Identifies the different Substrate runtimes. There'll be at least polkadot and node. A different on-chain spec_name to that of the native runtime would normally result in node not attempting to sync or author blocks.
final
specVersion int
Version of the runtime specification. A full-node will not attempt to use its native runtime in substitute for the on-chain Wasm runtime unless all of spec_name, spec_version and authoring_version are the same between Wasm and native.
final
stateVersion int
Version of the state implementation used by this runtime. Use of an incorrect version is consensus breaking.
final
transactionVersion int
All existing dispatches are fully compatible when this number doesn't change. If this number changes, then spec_version must change, also.
final

Methods

encode() Uint8List
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() Map<String, dynamic>
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
override

Constants

codec → const Codec<RuntimeVersion>