From bfcb73ad533b7c2acea012a586c2a391811faf03 Mon Sep 17 00:00:00 2001 From: bitpshr Date: Thu, 4 Oct 2018 11:05:32 -0400 Subject: EIP-1102: add isEnabled convenience method to provider --- app/scripts/controllers/provider-approval.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'app/scripts/controllers/provider-approval.js') 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 + } }) } @@ -36,6 +44,16 @@ class ProviderApprovalController { this.openPopup && this.openPopup() } + /** + * 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 * -- cgit