diff --git a/src/crypto/verification/Base.js b/src/crypto/verification/Base.js index c3a8e0ec6..d9580aa49 100644 --- a/src/crypto/verification/Base.js +++ b/src/crypto/verification/Base.js @@ -122,6 +122,11 @@ export class VerificationBase extends EventEmitter { if (this._done) { return Promise.reject(new Error("Verification is already done")); } + const existingEvent = this.request.getEventFromOtherParty(type); + if (existingEvent) { + return Promise.resolve(existingEvent); + } + this._expectedEvent = type; return new Promise((resolve, reject) => { this._resolveEvent = resolve; diff --git a/src/crypto/verification/request/VerificationRequest.js b/src/crypto/verification/request/VerificationRequest.js index 47fa44657..a0d0998d9 100644 --- a/src/crypto/verification/request/VerificationRequest.js +++ b/src/crypto/verification/request/VerificationRequest.js @@ -877,4 +877,8 @@ export class VerificationRequest extends EventEmitter { this._setPhase(newTransitions[newTransitions.length - 1].phase); } } + + getEventFromOtherParty(type) { + return this._eventsByThem.get(type); + } }