From eed8fcd9dcff6c7c2a6162cb4926d951698fd3d8 Mon Sep 17 00:00:00 2001 From: aniket-engg Date: Mon, 2 Dec 2019 16:22:36 +0530 Subject: [PATCH] test fixes and petersburg,istanbul addition --- remix-lib/src/execution/execution-context.js | 12 +++++++----- remix-lib/src/execution/txRunner.js | 17 ++++++----------- remix-lib/src/web3Provider/web3VmProvider.js | 10 +++++----- remix-simulator/src/genesis.js | 2 +- remix-simulator/src/methods/txProcess.js | 2 +- 5 files changed, 20 insertions(+), 23 deletions(-) diff --git a/remix-lib/src/execution/execution-context.js b/remix-lib/src/execution/execution-context.js index 4f89b4628b..ce3d23b504 100644 --- a/remix-lib/src/execution/execution-context.js +++ b/remix-lib/src/execution/execution-context.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() diff --git a/remix-lib/src/execution/txRunner.js b/remix-lib/src/execution/txRunner.js index d0f3fdf3d9..60580e3378 100644 --- a/remix-lib/src/execution/txRunner.js +++ b/remix-lib/src/execution/txRunner.js @@ -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) }) } diff --git a/remix-lib/src/web3Provider/web3VmProvider.js b/remix-lib/src/web3Provider/web3VmProvider.js index f778cf190e..1e0211d10e 100644 --- a/remix-lib/src/web3Provider/web3VmProvider.js +++ b/remix-lib/src/web3Provider/web3VmProvider.js @@ -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' } diff --git a/remix-simulator/src/genesis.js b/remix-simulator/src/genesis.js index 5647db3296..7f602e1f36 100644 --- a/remix-simulator/src/genesis.js +++ b/remix-simulator/src/genesis.js @@ -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) }) } diff --git a/remix-simulator/src/methods/txProcess.js b/remix-simulator/src/methods/txProcess.js index 7346fc0665..4d7a6af90e 100644 --- a/remix-simulator/src/methods/txProcess.js +++ b/remix-simulator/src/methods/txProcess.js @@ -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' }