create<T extends EventBodyModel> static method

Future<EventModel<T>> create<T extends EventBodyModel>({
  1. required String deviceKey,
  2. required int sequence,
  3. required String? prevHash,
  4. required T body,
})

Implementation

static Future<EventModel<T>> create<T extends EventBodyModel>({
  required String deviceKey,
  required int sequence,
  required String? prevHash,
  required T body,
}) async {
  final draft = EventModel.draft<T>(
    deviceKey: deviceKey,
    sequence: sequence,
    prevHash: prevHash,
    body: body,
  );

  final signature = await Signing.instance.signDeviceMessage(
    draft.unsignedMessage,
  );
  final hash = await Signing.instance.hash(
    "${draft.unsignedMessage}|$signature",
  );

  return EventModel<T>(
    nonce: draft.nonce,
    deviceKey: draft.deviceKey,
    sequence: draft.sequence,
    prevHash: draft.prevHash,
    timestamp: draft.timestamp,
    body: draft.body,
    signature: signature,
    hash: hash,
  );
}