diff --git a/apps/remix-ide/src/app/tabs/hardhat-provider.js b/apps/remix-ide/src/app/tabs/hardhat-provider.js index e42812c7a7..5bc35ee57e 100644 --- a/apps/remix-ide/src/app/tabs/hardhat-provider.js +++ b/apps/remix-ide/src/app/tabs/hardhat-provider.js @@ -1,8 +1,5 @@ import * as packageJson from '../../../../../package.json' import { Plugin } from '@remixproject/engine' -const yo = require('yo-yo') -const modalDialogCustom = require('../ui/modal-dialog-custom') -import Web3 from 'web3' const profile = { name: 'hardhat-provider', @@ -14,38 +11,23 @@ const profile = { } export default class HardhatProvider extends Plugin { - constructor () { - super(profile) - this.provider = null - } + constructor () { + super(profile) + this.provider = null + } - hardhatProviderDialogBody () { - return yo` -
- Hardhat Provider Endpoint -
- ` - } - - sendAsync (data) { - console.log('Inside sendAsync - modalDialogCustom', modalDialogCustom) - modalDialogCustom.prompt('Hardhat node request', this.hardhatProviderDialogBody(), 'http://127.0.0.1:8545', (target) => { - console.log('target--->', target) - this.provider = new Web3.providers.HttpProvider(target) - return new Promise((resolve, reject) => { - console.log('inside sendAsync promise') - if (this.provider) { - this.provider[this.provider.sendAsync ? 'sendAsync' : 'send'](data, (error, message) => { - if (error) return reject(error) - resolve(message) - }) - } else { - resolve({"jsonrpc": "2.0", "result": [], "id": data.id}) - } + sendAsync (data) { + return new Promise((resolve, reject) => { + if (this.provider) { + this.provider[this.provider.sendAsync ? 'sendAsync' : 'send'](data, (error, message) => { + if (error) return reject(error) + resolve(message) }) - }) - + } else { + resolve({ jsonrpc: '2.0', result: [], id: data.id }) } + }) + } } -module.exports = HardhatProvider \ No newline at end of file +module.exports = HardhatProvider diff --git a/apps/remix-ide/src/app/tabs/runTab/settings.js b/apps/remix-ide/src/app/tabs/runTab/settings.js index dd726c09be..b3e3aaedc2 100644 --- a/apps/remix-ide/src/app/tabs/runTab/settings.js +++ b/apps/remix-ide/src/app/tabs/runTab/settings.js @@ -244,16 +244,29 @@ class SettingsUI { } setExecutionContext (context) { - this.blockchain.changeExecutionContext(context, () => { - modalDialogCustom.prompt('External node request', this.web3ProviderDialogBody(), 'http://127.0.0.1:8545', (target) => { - this.blockchain.setProviderFromEndpoint(target, context, (alertMsg) => { - if (alertMsg) addTooltip(alertMsg) - this.setFinalContext() - }) + if (context === 'Hardhat Provider') { + this.blockchain.changeExecutionContext(context, () => { + modalDialogCustom.prompt('Hardhat node request', this.hardhatProviderDialogBody(), 'http://127.0.0.1:8545', (target) => { + this.blockchain.setProviderFromEndpoint(target, context, (alertMsg) => { + if (alertMsg) addTooltip(alertMsg) + this.setFinalContext() + }) + }, this.setFinalContext.bind(this)) + }, (alertMsg) => { + addTooltip(alertMsg) + }, this.setFinalContext.bind(this)) + } else { + this.blockchain.changeExecutionContext(context, () => { + modalDialogCustom.prompt('External node request', this.web3ProviderDialogBody(), 'http://127.0.0.1:8545', (target) => { + this.blockchain.setProviderFromEndpoint(target, context, (alertMsg) => { + if (alertMsg) addTooltip(alertMsg) + this.setFinalContext() + }) + }, this.setFinalContext.bind(this)) + }, (alertMsg) => { + addTooltip(alertMsg) }, this.setFinalContext.bind(this)) - }, (alertMsg) => { - addTooltip(alertMsg) - }, this.setFinalContext.bind(this)) + } } web3ProviderDialogBody () { @@ -278,6 +291,14 @@ class SettingsUI { ` } + hardhatProviderDialogBody () { + return yo` +
+ Hardhat Provider Endpoint +
+ ` + } + setFinalContext () { // set the final context. Cause it is possible that this is not the one we've originaly selected this.selectExEnv.value = this.blockchain.getProvider() diff --git a/apps/remix-ide/src/blockchain/execution-context.js b/apps/remix-ide/src/blockchain/execution-context.js index 41588e3708..f71f670a41 100644 --- a/apps/remix-ide/src/blockchain/execution-context.js +++ b/apps/remix-ide/src/blockchain/execution-context.js @@ -142,7 +142,7 @@ export class ExecutionContext { } } - if (context === 'web3') { + if (context === 'web3' || context === 'Hardhat Provider') { confirmCb(cb) }