From 29d4b065d1763c6713b66579227dcf920d7e26df Mon Sep 17 00:00:00 2001 From: Matt Holtzman Date: Wed, 15 Sep 2021 13:00:28 -0400 Subject: [PATCH 1/2] allow adding a chain when no account is selected --- main/accounts/Account/index.js | 3 +-- main/accounts/index.js | 4 ++-- main/index.js | 3 ++- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/main/accounts/Account/index.js b/main/accounts/Account/index.js index 1c1b8e3df..0dd12bc02 100644 --- a/main/accounts/Account/index.js +++ b/main/accounts/Account/index.js @@ -119,8 +119,7 @@ class Account { } } - addChain (chain, req = {}) { - if (chain) store.addNetwork(chain) + resolveRequest (req = {}) { if (this.requests[req.handlerId]) { if (this.requests[req.handlerId].res) this.requests[req.handlerId].res() delete this.requests[req.handlerId] diff --git a/main/accounts/index.js b/main/accounts/index.js index e7c188700..4d80c2ea5 100644 --- a/main/accounts/index.js +++ b/main/accounts/index.js @@ -502,9 +502,9 @@ class Accounts extends EventEmitter { } } - addChain (chain, req) { + resolveRequest (req) { if (this.current() && this.current().addChain) { - this.current().addChain(chain, req) + this.current().resolveRequest(req) } } diff --git a/main/index.js b/main/index.js index a20c10328..ec0ac4958 100644 --- a/main/index.js +++ b/main/index.js @@ -133,7 +133,8 @@ ipcMain.on('tray:giveAccess', (e, req, access) => { }) ipcMain.on('tray:addChain', (e, chain, req) => { - accounts.addChain(chain, req) + if (chain) store.addNetwork(chain) + accounts.resolveRequest(req) }) ipcMain.on('tray:adjustNonce', (e, handlerId, nonceAdjust) => { From 9aeec4a26c8b76624e3cfc868c35a0b5b40b8a44 Mon Sep 17 00:00:00 2001 From: Matt Holtzman Date: Thu, 16 Sep 2021 16:05:14 -0400 Subject: [PATCH 2/2] add tests --- main/accounts/index.js | 5 +++-- test/main/accounts/index.test.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/main/accounts/index.js b/main/accounts/index.js index 4d80c2ea5..059d7b3a4 100644 --- a/main/accounts/index.js +++ b/main/accounts/index.js @@ -503,8 +503,9 @@ class Accounts extends EventEmitter { } resolveRequest (req) { - if (this.current() && this.current().addChain) { - this.current().resolveRequest(req) + const currentAccount = this.current() + if (currentAccount && currentAccount.resolveRequest) { + currentAccount.resolveRequest(req) } } diff --git a/test/main/accounts/index.test.js b/test/main/accounts/index.test.js index d2219e4e0..ca57f53ba 100644 --- a/test/main/accounts/index.test.js +++ b/test/main/accounts/index.test.js @@ -704,3 +704,31 @@ describe('#adjustNonce', () => { expect(Accounts.current().requests[1].data.nonce).toBe(expectedNonce) }) }) + +describe('#resolveRequest', () => { + it ('does nothing with an unknown request', () => { + Accounts.addRequest(request, () => { + throw new Error('unexpected callback!') + }) + + Accounts.resolveRequest({ handlerId: '-1' }) + + expect(Object.keys(Accounts.current().requests)).toHaveLength(1) + }) + + it ('resolves a request with a callback', done => { + Accounts.addRequest(request, done) + + Accounts.resolveRequest(request) + + expect(Object.keys(Accounts.current().requests)).toHaveLength(0) + }) + + it ('resolves a request with no callback', () => { + Accounts.addRequest(request) + + Accounts.resolveRequest(request) + + expect(Object.keys(Accounts.current().requests)).toHaveLength(0) + }) +})