encodeEvent method
Encode a RuntimeEvent with specific pallet and event names This is a convenience method for encoding events when you know the names
Implementation
Uint8List encodeEvent({
required String palletName,
required String eventName,
required Map<String, dynamic> data,
}) {
// Get pallet
final pallet = registry.palletByName(palletName);
if (pallet == null) {
throw MetadataException('Pallet $palletName not found');
}
// Get event variant
final eventTypeId = pallet.event?.type;
if (eventTypeId == null) {
throw MetadataException('Pallet $palletName has no events');
}
final eventVariant = registry.getVariant(eventTypeId, eventName);
if (eventVariant == null) {
throw MetadataException('Event $eventName not found in pallet $palletName');
}
// Create RuntimeEvent
final event = RuntimeEvent(
palletName: palletName,
palletIndex: pallet.index,
eventName: eventName,
eventIndex: eventVariant.index,
data: data,
);
// Encode and return
return encode(event);
}