encodeTo method
Encode a RuntimeEvent to output
Implementation
@override
void encodeTo(RuntimeEvent value, Output output) {
final outerEnums = registry.outerEnums;
late final PalletMetadata pallet;
if (outerEnums != null) {
pallet = _findPalletV15FromRuntimeEvent(value, output, outerEnums.eventType);
} else {
pallet = _findPalletV14FromRuntimeEvent(value, output);
}
final eventTypeId = pallet.event?.type;
if (eventTypeId == null) throw MetadataException('Pallet ${pallet.name} has no events');
final eventVariant = registry.getVariantByIndex(eventTypeId, value.eventIndex);
if (eventVariant == null) {
throw MetadataException(
'Event with index ${value.eventIndex} not found in pallet ${pallet.name}',
);
}
output.pushByte(value.eventIndex);
_encodeEventData(output, eventVariant, value.data);
}