|
|
@ -8,7 +8,6 @@ var ethUtil = require('ethereumjs-util') |
|
|
|
var StateManager = require('ethereumjs-vm/lib/stateManager') |
|
|
|
var StateManager = require('ethereumjs-vm/lib/stateManager') |
|
|
|
var Web3VMProvider = remixLib.vm.Web3VMProvider |
|
|
|
var Web3VMProvider = remixLib.vm.Web3VMProvider |
|
|
|
var rlp = ethUtil.rlp |
|
|
|
var rlp = ethUtil.rlp |
|
|
|
var modalDialogCustom = require('./app/ui/modal-dialog-custom') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var injectedProvider |
|
|
|
var injectedProvider |
|
|
|
|
|
|
|
|
|
|
@ -145,23 +144,13 @@ function ExecutionContext () { |
|
|
|
return vm |
|
|
|
return vm |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
this.setContext = function (context, endPointUrl) { |
|
|
|
this.setContext = function (context, endPointUrl, confirmCb, infoCb) { |
|
|
|
executionContext = context |
|
|
|
executionContext = context |
|
|
|
this.executionContextChange(context, endPointUrl) |
|
|
|
this.executionContextChange(context, endPointUrl, confirmCb, infoCb) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
this.executionContextChange = function (context, endPointUrl, cb) { |
|
|
|
this.executionContextChange = function (context, endPointUrl, confirmCb, infoCb, cb) { |
|
|
|
if (!cb) cb = () => {} |
|
|
|
if (!cb) cb = () => {} |
|
|
|
function runPrompt () { |
|
|
|
|
|
|
|
if (!endPointUrl) { |
|
|
|
|
|
|
|
endPointUrl = 'http://localhost:8545' |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
modalDialogCustom.prompt(null, 'Web3 Provider Endpoint', endPointUrl, (target) => { |
|
|
|
|
|
|
|
setProviderFromEndpoint(target, context, cb) |
|
|
|
|
|
|
|
}, () => { |
|
|
|
|
|
|
|
cb() |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (context === 'vm') { |
|
|
|
if (context === 'vm') { |
|
|
|
executionContext = context |
|
|
|
executionContext = context |
|
|
@ -169,7 +158,7 @@ function ExecutionContext () { |
|
|
|
vm.stateManager.checkpoint() |
|
|
|
vm.stateManager.checkpoint() |
|
|
|
}) |
|
|
|
}) |
|
|
|
self.event.trigger('contextChanged', ['vm']) |
|
|
|
self.event.trigger('contextChanged', ['vm']) |
|
|
|
cb() |
|
|
|
return cb() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (context === 'injected') { |
|
|
|
if (context === 'injected') { |
|
|
@ -177,20 +166,18 @@ function ExecutionContext () { |
|
|
|
var alertMsg = 'No injected Web3 provider found. ' |
|
|
|
var alertMsg = 'No injected Web3 provider found. ' |
|
|
|
alertMsg += 'Make sure your provider (e.g. MetaMask) is active and running ' |
|
|
|
alertMsg += 'Make sure your provider (e.g. MetaMask) is active and running ' |
|
|
|
alertMsg += '(when recently activated you may have to reload the page).' |
|
|
|
alertMsg += '(when recently activated you may have to reload the page).' |
|
|
|
modalDialogCustom.alert(alertMsg) |
|
|
|
infoCb(alertMsg) |
|
|
|
cb() |
|
|
|
return cb() |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
executionContext = context |
|
|
|
executionContext = context |
|
|
|
web3.setProvider(injectedProvider) |
|
|
|
web3.setProvider(injectedProvider) |
|
|
|
self.event.trigger('contextChanged', ['injected']) |
|
|
|
self.event.trigger('contextChanged', ['injected']) |
|
|
|
cb() |
|
|
|
return cb() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (context === 'web3') { |
|
|
|
if (context === 'web3') { |
|
|
|
modalDialogCustom.confirm(null, 'Are you sure you want to connect to an ethereum node?', |
|
|
|
confirmCb(cb) |
|
|
|
() => { runPrompt(endPointUrl) }, () => { cb() } |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -213,6 +200,7 @@ function ExecutionContext () { |
|
|
|
} |
|
|
|
} |
|
|
|
}, 15000) |
|
|
|
}, 15000) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// TODO: not used here anymore and needs to be moved
|
|
|
|
function setProviderFromEndpoint (endpoint, context, cb) { |
|
|
|
function setProviderFromEndpoint (endpoint, context, cb) { |
|
|
|
var oldProvider = web3.currentProvider |
|
|
|
var oldProvider = web3.currentProvider |
|
|
|
|
|
|
|
|
|
|
@ -230,10 +218,10 @@ function ExecutionContext () { |
|
|
|
web3.setProvider(oldProvider) |
|
|
|
web3.setProvider(oldProvider) |
|
|
|
var alertMsg = 'Not possible to connect to the Web3 provider. ' |
|
|
|
var alertMsg = 'Not possible to connect to the Web3 provider. ' |
|
|
|
alertMsg += 'Make sure the provider is running and a connection is open (via IPC or RPC).' |
|
|
|
alertMsg += 'Make sure the provider is running and a connection is open (via IPC or RPC).' |
|
|
|
modalDialogCustom.alert(alertMsg) |
|
|
|
cb(alertMsg) |
|
|
|
cb() |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
this.setProviderFromEndpoint = setProviderFromEndpoint |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
module.exports = new ExecutionContext() |
|
|
|
module.exports = new ExecutionContext() |
|
|
|