Interface SyncCryptoCallbacksInternal

The methods which crypto implementations should expose to the Sync api

interface SyncCryptoCallbacks {
    onCryptoEvent(room: Room, event: MatrixEvent): Promise<void>;
    onSyncCompleted(syncState: OnSyncCompletedData): void;
    preprocessToDeviceMessages(events: IToDeviceEvent[]): Promise<IToDeviceEvent[]>;
    processDeviceLists(deviceLists: IDeviceLists): Promise<void>;
    processKeyCounts(oneTimeKeysCounts?: Record<string, number>, unusedFallbackKeys?: string[]): Promise<void>;
}

Hierarchy (view full)

Methods

  • Called by the /sync loop whenever an m.room.encryption event is received.

    This is called before RoomStateEvents are emitted for any of the events in the /sync response (even if the other events technically happened first). This works around a problem if the client uses a RoomStateEvent (typically a membership event) as a trigger to send a message in a new room (or one where encryption has been newly enabled): that would otherwise leave the crypto layer confused because it expects crypto to be set up, but it has not yet been.

    Parameters

    • room: Room

      in which the event was received

    • event: MatrixEvent

      encryption event to be processed

    Returns Promise<void>

  • Called by the /sync loop after each /sync response is processed.

    Used to complete batch processing, or to initiate background processes

    Parameters

    Returns void

  • Called by the /sync loop whenever there are incoming to-device messages.

    The implementation may preprocess the received messages (eg, decrypt them) and return an updated list of messages for dispatch to the rest of the system.

    Note that, unlike ClientEvent.ToDeviceEvent events, this is called on the raw to-device messages, rather than the results of any decryption attempts.

    Parameters

    Returns Promise<IToDeviceEvent[]>

    A list of preprocessed to-device messages.

  • Called by the /sync loop when one time key counts and unused fallback key details are received.

    Parameters

    • OptionaloneTimeKeysCounts: Record<string, number>

      the received one time key counts

    • OptionalunusedFallbackKeys: string[]

      the received unused fallback keys

    Returns Promise<void>