diff options
author | bitpshr <mail@bitpshr.net> | 2018-10-04 23:05:32 +0800 |
---|---|---|
committer | Dan Finlay <542863+danfinlay@users.noreply.github.com> | 2018-11-06 07:07:09 +0800 |
commit | bfcb73ad533b7c2acea012a586c2a391811faf03 (patch) | |
tree | ff3f8290e01d56396aa93424eadcd535ea0ec954 /app/scripts/controllers | |
parent | 89b4aa5d62237f36fac9dcce9c546005ec18968b (diff) | |
download | tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar.gz tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar.bz2 tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar.lz tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar.xz tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.tar.zst tangerine-wallet-browser-bfcb73ad533b7c2acea012a586c2a391811faf03.zip |
EIP-1102: add isEnabled convenience method to provider
Diffstat (limited to 'app/scripts/controllers')
-rw-r--r-- | app/scripts/controllers/provider-approval.js | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/app/scripts/controllers/provider-approval.js b/app/scripts/controllers/provider-approval.js index 8c7520d59..918fc8ad0 100644 --- a/app/scripts/controllers/provider-approval.js +++ b/app/scripts/controllers/provider-approval.js @@ -18,7 +18,15 @@ class ProviderApprovalController { this.publicConfigStore = publicConfigStore this.approvedOrigins = {} platform && platform.addMessageListener && platform.addMessageListener(({ action, origin }) => { - action && action === 'init-provider-request' && this.handleProviderRequest(origin) + if (!action) { return } + switch (action) { + case 'init-provider-request': + this.handleProviderRequest(origin) + break + case 'provider-status-request': + this.handleProviderStatusRequest(origin) + break + } }) } @@ -37,6 +45,16 @@ class ProviderApprovalController { } /** + * Called by a tab to detemrine if a full Ethereum provider API is exposed + * + * @param {string} origin - Origin of the window requesting provider status + */ + async handleProviderStatusRequest (origin) { + const isEnabled = await this.isApproved(origin) + this.platform && this.platform.sendMessage({ action: 'provider-status', isEnabled }, { active: true }) + } + + /** * Called when a user approves access to a full Ethereum provider API * * @param {string} origin - Origin of the target window to approve provider access |