A Verifier is responsible for performing the verification using a particular method, such as via QR code or SAS (emojis).

A verifier object can be created by calling VerificationRequest.beginVerification; one is also created automatically when a m.key.verification.start event is received for an existing VerificationRequest.

Once a verifier object is created, the verification can be started by calling the Verifier#verify method.

interface Verifier {
    get hasBeenCancelled(): boolean;
    get userId(): string;
    addListener<T>(event: T, listener: Listener<VerifierEvent, VerifierEventHandlerMap, T>): this;
    cancel(e: Error): void;
    emit<T>(event: T, ...args: Parameters<VerifierEventHandlerMap[T]>): boolean;
    emit<T>(event: T, ...args: Parameters<VerifierEventHandlerMap[T]>): boolean;
    emitPromised<T>(event: T, ...args: Parameters<VerifierEventHandlerMap[T]>): Promise<boolean>;
    emitPromised<T>(event: T, ...args: Parameters<VerifierEventHandlerMap[T]>): Promise<boolean>;
    getReciprocateQrCodeCallbacks(): null | ShowQrCodeCallbacks;
    getShowSasCallbacks(): null | ShowSasCallbacks;
    listenerCount(event: EventEmitterEvents | VerifierEvent): number;
    listeners(event: EventEmitterEvents | VerifierEvent): Function[];
    off<T>(event: T, listener: Listener<VerifierEvent, VerifierEventHandlerMap, T>): this;
    on<T>(event: T, listener: Listener<VerifierEvent, VerifierEventHandlerMap, T>): this;
    once<T>(event: T, listener: Listener<VerifierEvent, VerifierEventHandlerMap, T>): this;
    prependListener<T>(event: T, listener: Listener<VerifierEvent, VerifierEventHandlerMap, T>): this;
    prependOnceListener<T>(event: T, listener: Listener<VerifierEvent, VerifierEventHandlerMap, T>): this;
    rawListeners(event: EventEmitterEvents | VerifierEvent): Function[];
    removeAllListeners(event?: EventEmitterEvents | VerifierEvent): this;
    removeListener<T>(event: T, listener: Listener<VerifierEvent, VerifierEventHandlerMap, T>): this;
    verify(): Promise<void>;
}

Hierarchy (view full)

Implemented by

Accessors

  • get hasBeenCancelled(): boolean
  • Returns true if the verification has been cancelled, either by us or the other side.

    Returns boolean

Methods

  • Cancel a verification.

    We will send an m.key.verification.cancel if the verification is still in flight. The verification promise will reject, and a VerifierEvent.Cancel will be emitted.

    Parameters

    • e: Error

      the reason for the cancellation.

    Returns void

  • Synchronously calls each of the listeners registered for the event named event, in the order they were registered, passing the supplied arguments to each.

    Type Parameters

    Parameters

    Returns boolean

    true if the event had listeners, false otherwise.

  • Synchronously calls each of the listeners registered for the event namedeventName, in the order they were registered, passing the supplied arguments to each.

    Returns true if the event had listeners, false otherwise.

    import EventEmitter from 'node:events';
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener

    Type Parameters

    Parameters

    Returns boolean

    v0.1.26

  • Get the details for reciprocating QR code verification, if one is in progress

    Returns null, unless this verifier is for reciprocating a QR-code-based verification (ie, the other user has already scanned our QR code), and we are waiting for the user to confirm.

    Returns null | ShowQrCodeCallbacks

  • Adds the listener function to the end of the listeners array for the event named event.

    No checks are made to see if the listener has already been added. Multiple calls passing the same combination of event and listener will result in the listener being added, and called, multiple times.

    By default, event listeners are invoked in the order they are added. The prependListener method can be used as an alternative to add the event listener to the beginning of the listeners array.

    Type Parameters

    Parameters

    Returns this

    a reference to the EventEmitter, so that calls can be chained.

  • Adds a one-time listener function for the event named event. The next time event is triggered, this listener is removed and then invoked.

    Returns a reference to the EventEmitter, so that calls can be chained.

    By default, event listeners are invoked in the order they are added. The prependOnceListener method can be used as an alternative to add the event listener to the beginning of the listeners array.

    Type Parameters

    Parameters

    Returns this

    a reference to the EventEmitter, so that calls can be chained.

  • Removes all listeners, or those of the specified event.

    It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

    Parameters

    Returns this

    a reference to the EventEmitter, so that calls can be chained.

  • Start the key verification, if it has not already been started.

    This means sending a m.key.verification.start if we are the first responder, or a m.key.verification.accept if the other side has already sent a start event.

    Returns Promise<void>

    Promise which resolves when the verification has completed, or rejects if the verification is cancelled or times out.