From 6a89261f2891f3c4abedb9f0ff0617f4067bc21b Mon Sep 17 00:00:00 2001 From: Thomas Huang Date: Tue, 2 Feb 2021 07:25:30 -0800 Subject: [PATCH] Reject Trezor eth_getEncryptionPublicKey requests (#10330) Further implements request rejection on eth_getEncryptionPublicKey for Trezor as they do not implement this method either. --- app/scripts/metamask-controller.js | 38 +++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/app/scripts/metamask-controller.js b/app/scripts/metamask-controller.js index 732db7006..b9d6c598f 100644 --- a/app/scripts/metamask-controller.js +++ b/app/scripts/metamask-controller.js @@ -1645,18 +1645,34 @@ export default class MetamaskController extends EventEmitter { async newRequestEncryptionPublicKey(msgParams, req) { const address = msgParams const keyring = await this.keyringController.getKeyringForAccount(address) - if (keyring.type === 'Ledger Hardware') { - return new Promise((_, reject) => { - reject(new Error('Ledger does not support eth_getEncryptionPublicKey.')) - }) + + switch (keyring.type) { + case 'Ledger Hardware': { + return new Promise((_, reject) => { + reject( + new Error('Ledger does not support eth_getEncryptionPublicKey.'), + ) + }) + } + + case 'Trezor Hardware': { + return new Promise((_, reject) => { + reject( + new Error('Trezor does not support eth_getEncryptionPublicKey.'), + ) + }) + } + + default: { + const promise = this.encryptionPublicKeyManager.addUnapprovedMessageAsync( + msgParams, + req, + ) + this.sendUpdate() + this.opts.showUserConfirmation() + return promise + } } - const promise = this.encryptionPublicKeyManager.addUnapprovedMessageAsync( - msgParams, - req, - ) - this.sendUpdate() - this.opts.showUserConfirmation() - return promise } /**