test fixes and petersburg,istanbul addition

pull/7/head
aniket-engg 5 years ago committed by Aniket
parent 64c1e1e461
commit eed8fcd9dc
  1. 12
      remix-lib/src/execution/execution-context.js
  2. 17
      remix-lib/src/execution/txRunner.js
  3. 10
      remix-lib/src/web3Provider/web3VmProvider.js
  4. 2
      remix-simulator/src/genesis.js
  5. 2
      remix-simulator/src/methods/txProcess.js

@ -95,7 +95,9 @@ function createVm (hardfork) {
var vms = {
byzantium: createVm('byzantium'),
constantinople: createVm('constantinople')
constantinople: createVm('constantinople'),
petersburg: createVm('petersburg'),
istanbul: createVm('istanbul')
}
var mainNetGenesisHash = '0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3'
@ -141,7 +143,7 @@ function ExecutionContext () {
}
this.web3 = function () {
return this.isVM() ? vms.constantinople.web3vm : web3
return this.isVM() ? vms.istanbul.web3vm : web3
}
this.detectNetwork = function (callback) {
@ -196,7 +198,7 @@ function ExecutionContext () {
}
this.vm = function () {
return vms.constantinople.vm
return vms.istanbul.vm
}
this.setContext = function (context, endPointUrl, confirmCb, infoCb) {
@ -209,8 +211,8 @@ function ExecutionContext () {
if (context === 'vm') {
executionContext = context
vms.constantinople.stateManager.revert(() => {
vms.constantinople.stateManager.checkpoint(() => {})
vms.istanbul.stateManager.revert(() => {
vms.istanbul.stateManager.checkpoint(() => {})
})
self.event.trigger('contextChanged', ['vm'])
return cb()

@ -115,7 +115,6 @@ class TxRunner {
data: Buffer.from(data.slice(2), 'hex')
})
tx.sign(account.privateKey)
const coinbases = ['0x0e9281e9c6a0808672eaba6bd1220e144c9bb07a', '0x8945a1288dc78a6d8952a92c77aee6730b414778', '0x94d76e24f818426ae84aa404140e8d5f60e10e7e']
const difficulties = [new BN('69762765929000', 10), new BN('70762765929000', 10), new BN('71762765929000', 10)]
var block = new EthJSBlock({
@ -146,24 +145,20 @@ class TxRunner {
}
runBlockInVm (tx, block, callback) {
executionContext.vm().runBlock({ block: block, generate: true, skipBlockValidation: true, skipBalance: false }, function (err, results) {
err = err ? err.message : err
if (err) {
return callback(err)
}
executionContext.vm().runBlock({ block: block, generate: true, skipBlockValidation: true, skipBalance: false }).then(function (results) {
let result = results.results[0]
if (result) {
result.status = '0x' + result.vm.exception.toString(16)
result.status = '0x' + (result.execResult.exceptionError ? 0 : 1)
}
executionContext.addBlock(block)
executionContext.trackTx('0x' + tx.hash().toString('hex'), block)
callback(err, {
callback(null, {
result: result,
transactionHash: ethJSUtil.bufferToHex(Buffer.from(tx.hash()))
})
}).catch(function (err) {
err = err ? err.message : err
callback(err)
})
}

@ -107,8 +107,8 @@ web3VmProvider.prototype.txProcessed = function (self, data) {
self.vmTraces[self.processingHash].gas = '0x' + data.gasUsed.toString(16)
var logs = []
for (var l in data.vm.logs) {
var log = data.vm.logs[l]
for (var l in data.execResult.logs) {
var log = data.execResult.logs[l]
var topics = []
if (log[1].length > 0) {
for (var k in log[1]) {
@ -126,14 +126,14 @@ web3VmProvider.prototype.txProcessed = function (self, data) {
}
self.txsReceipt[self.processingHash].logs = logs
self.txsReceipt[self.processingHash].transactionHash = self.processingHash
self.txsReceipt[self.processingHash].status = '0x' + data.vm.exception.toString(16)
self.txsReceipt[self.processingHash].status = '0x' + (data.execResult.exceptionError ? 0 : 1)
if (data.createdAddress) {
var address = util.hexConvert(data.createdAddress)
self.vmTraces[self.processingHash].return = address
self.txsReceipt[self.processingHash].contractAddress = address
} else if (data.vm.return) {
self.vmTraces[self.processingHash].return = util.hexConvert(data.vm.return)
} else if (data.execResult.returnValue) {
self.vmTraces[self.processingHash].return = util.hexConvert(data.execResult.returnValue)
} else {
self.vmTraces[self.processingHash].return = '0x'
}

@ -17,7 +17,7 @@ function generateBlock () {
uncleHeaders: []
})
executionContext.vm().runBlock({ block: block, generate: true, skipBlockValidation: true, skipBalance: false }, function () {
executionContext.vm().runBlock({ block: block, generate: true, skipBlockValidation: true, skipBalance: false }).then(function () {
executionContext.addBlock(block)
})
}

@ -9,7 +9,7 @@ function runCall (payload, from, to, data, value, gasLimit, txRunner, callbacks,
return callback(err)
}
let toReturn = '0x' + result.result.vm.return.toString('hex')
let toReturn = '0x' + result.result.execResult.returnValue.toString('hex')
if (toReturn === '0x') {
toReturn = '0x0'
}

Loading…
Cancel
Save