diff --git a/apps/remix-ide/src/app/tabs/network-module.js b/apps/remix-ide/src/app/tabs/network-module.js
index 58668123ff..fdae172c15 100644
--- a/apps/remix-ide/src/app/tabs/network-module.js
+++ b/apps/remix-ide/src/app/tabs/network-module.js
@@ -61,11 +61,8 @@ export class NetworkModule extends Plugin {
/** Add a custom network to the list of available networks */
addNetwork (network) { // { name, url }
- if (network.url === 'ipc') {
- this.blockchain.addProvider({ name: network.name, provider: new Web3.providers.IpcProvider() })
- } else {
- this.blockchain.addProvider({ name: network.name, provider: new Web3.providers.HttpProvider(network.url) })
- }
+ const provider = network.url === 'ipc' ? new Web3.providers.IpcProvider() : new Web3.providers.HttpProvider(network.url)
+ this.blockchain.addProvider({ name: network.name, provider })
}
/** Remove a network to the list of availble networks */
diff --git a/apps/remix-ide/src/app/tabs/runTab/settings.js b/apps/remix-ide/src/app/tabs/runTab/settings.js
index e22a3c0064..ad9ca9ecc6 100644
--- a/apps/remix-ide/src/app/tabs/runTab/settings.js
+++ b/apps/remix-ide/src/app/tabs/runTab/settings.js
@@ -158,13 +158,13 @@ class SettingsUI {
const addProvider = (network) => {
selectExEnv.appendChild(yo``)
- addTooltip(yo`${network.name} provider added ${network.url ? `- ${network.url}` : ''}`)
+ addTooltip(yo`${network.name} provider added`)
}
const removeProvider = (name) => {
@@ -243,7 +243,10 @@ class SettingsUI {
this.onPersonalChange()
}
break
- default:
+ default: {
+ plusBtn.classList.add(css.disableMouseEvents)
+ plusTitle.title = `Unfortunately it's not possible to create an account using an external wallet (${this.selectExEnv.value}).`
+ }
}
}
diff --git a/apps/remix-ide/src/app/udapp/run-tab.js b/apps/remix-ide/src/app/udapp/run-tab.js
index e6a40b5f15..a12adbb1d8 100644
--- a/apps/remix-ide/src/app/udapp/run-tab.js
+++ b/apps/remix-ide/src/app/udapp/run-tab.js
@@ -202,27 +202,28 @@ export class RunTab extends LibraryPlugin {
this.renderRecorder(this.udappUI, this.fileManager, this.config, this.logCallback)
this.renderRecorderCard()
- this.on('manager', 'pluginDeactivated', profile => {
- if (profile.kind === 'provider') this.blockchain.removeProvider(profile.name)
- })
- this.on('manager', 'pluginActivated', profile => {
+ const addPluginProvider = (profile) => {
if (profile.kind === 'provider') {
((profile, app) => {
const web3Provider = {
- sendAsync (payload, callback) {
- app.call(profile.name, 'sendAsync', payload)
- .then(result => {
- callback(null, result)
- })
- .catch(e => {
- callback(e)
- })
+ async sendAsync (payload, callback) {
+ try {
+ const result = await app.call(profile.name, 'sendAsync', payload)
+ callback(null, result)
+ } catch (e) {
+ callback(e)
+ }
}
}
- this.blockchain.addProvider({ name: profile.displayName, provider: web3Provider })
+ app.blockchain.addProvider({ name: profile.displayName, provider: web3Provider })
})(profile, this)
}
- })
+ }
+ const removePluginProvider = (profile) => {
+ if (profile.kind === 'provider') this.blockchain.removeProvider(profile.displayName)
+ }
+ this.on('manager', 'pluginActivated', addPluginProvider.bind(this))
+ this.on('manager', 'pluginDeactivated', removePluginProvider.bind(this))
return this.renderContainer()
}
}