restore platform/extension.js

feature/default_network_editable
brunobar79 6 years ago
parent 69f4c8c336
commit d65d018ad0
  1. 60
      app/scripts/platforms/extension.js

@ -1,4 +1,5 @@
const extension = require('extensionizer') const extension = require('extensionizer')
const explorerLink = require('etherscan-link').createExplorerLink
class ExtensionPlatform { class ExtensionPlatform {
@ -23,8 +24,11 @@ class ExtensionPlatform {
return extension.runtime.getManifest().version return extension.runtime.getManifest().version
} }
openExtensionInBrowser () { openExtensionInBrowser (route = null) {
const extensionURL = extension.runtime.getURL('home.html') let extensionURL = extension.runtime.getURL('home.html')
if (route) {
extensionURL += `#${route}`
}
this.openWindow({ url: extensionURL }) this.openWindow({ url: extensionURL })
} }
@ -38,10 +42,58 @@ class ExtensionPlatform {
} }
} }
addMessageListener (cb) { showTransactionNotification (txMeta) {
extension.runtime.onMessage.addListener(cb)
const status = txMeta.status
if (status === 'confirmed') {
this._showConfirmedTransaction(txMeta)
} else if (status === 'failed') {
this._showFailedTransaction(txMeta)
}
}
_showConfirmedTransaction (txMeta) {
this._subscribeToNotificationClicked()
const url = explorerLink(txMeta.hash, parseInt(txMeta.metamaskNetworkId))
const nonce = parseInt(txMeta.txParams.nonce, 16)
const title = 'Confirmed transaction'
const message = `Transaction ${nonce} confirmed! View on EtherScan`
this._showNotification(title, message, url)
} }
_showFailedTransaction (txMeta) {
const nonce = parseInt(txMeta.txParams.nonce, 16)
const title = 'Failed transaction'
const message = `Transaction ${nonce} failed! ${txMeta.err.message}`
this._showNotification(title, message)
}
_showNotification (title, message, url) {
extension.notifications.create(
url,
{
'type': 'basic',
'title': title,
'iconUrl': extension.extension.getURL('../../images/icon-64.png'),
'message': message,
})
}
_subscribeToNotificationClicked () {
if (!extension.notifications.onClicked.hasListener(this._viewOnEtherScan)) {
extension.notifications.onClicked.addListener(this._viewOnEtherScan)
}
}
_viewOnEtherScan (txId) {
if (txId.startsWith('http://')) {
global.metamaskController.platform.openWindow({ url: txId })
}
}
} }
module.exports = ExtensionPlatform module.exports = ExtensionPlatform
Loading…
Cancel
Save