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() } }