From 8d5b2274b840b5b88ac1fbcf68fbc2029c60a37a Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Wed, 25 Sep 2019 17:34:37 -0400 Subject: [PATCH] fix eth_getBlockByNumber when param is latest --- remix-lib/src/execution/execution-context.js | 2 ++ remix-lib/src/execution/txRunner.js | 3 --- remix-simulator/src/methods/accounts.js | 12 ------------ remix-simulator/src/methods/blocks.js | 8 ++------ remix-simulator/src/provider.js | 4 ---- remix-simulator/test/blocks.js | 2 +- 6 files changed, 5 insertions(+), 26 deletions(-) diff --git a/remix-lib/src/execution/execution-context.js b/remix-lib/src/execution/execution-context.js index 79eece0482..5167000101 100644 --- a/remix-lib/src/execution/execution-context.js +++ b/remix-lib/src/execution/execution-context.js @@ -115,6 +115,7 @@ function ExecutionContext () { this.blockGasLimit = this.blockGasLimitDefault this.customNetWorks = {} this.blocks = {} + this.latestBlockNumber = 0; this.txs = {} this.init = function (config) { @@ -309,6 +310,7 @@ function ExecutionContext () { self.blocks['0x' + block.hash().toString('hex')] = block self.blocks[blockNumber] = block + self.latestBlockNumber = blockNumber this.logsManager.checkBlock(blockNumber, block, this.web3()) } diff --git a/remix-lib/src/execution/txRunner.js b/remix-lib/src/execution/txRunner.js index 3f660d32d3..d0f3fdf3d9 100644 --- a/remix-lib/src/execution/txRunner.js +++ b/remix-lib/src/execution/txRunner.js @@ -133,9 +133,6 @@ class TxRunner { ++self.blockNumber this.runBlockInVm(tx, block, callback) } else { - console.dir("============") - console.dir("========= useCall") - console.dir("============") executionContext.vm().stateManager.checkpoint(() => { this.runBlockInVm(tx, block, (err, result) => { executionContext.vm().stateManager.revert(() => { diff --git a/remix-simulator/src/methods/accounts.js b/remix-simulator/src/methods/accounts.js index cf71cd792b..c3bdddd8a9 100644 --- a/remix-simulator/src/methods/accounts.js +++ b/remix-simulator/src/methods/accounts.js @@ -17,18 +17,6 @@ var Accounts = function () { Accounts.prototype.init = async function () { let setBalance = (account) => { return new Promise((resolve, reject) => { - // this.accountsKeys[ethJSUtil.toChecksumAddress(account.address).toLowerCase()] = account.privateKey - // this.accounts[ethJSUtil.toChecksumAddress(account.address).toLowerCase()] = { privateKey: Buffer.from(account.privateKey.replace('0x', ''), 'hex'), nonce: 0 } - - // executionContext.vm().stateManager.getAccount(Buffer.from(account.address.toLowerCase().replace('0x', ''), 'hex'), (err, account) => { - // if (err) { - // throw new Error(err) - // } - // var balance = '0x56BC75E2D63100000' - // account.balance = balance || '0xf00000000000000001' - // resolve() - // }) - this.accountsKeys[ethJSUtil.toChecksumAddress(account.address)] = account.privateKey this.accounts[ethJSUtil.toChecksumAddress(account.address)] = { privateKey: Buffer.from(account.privateKey.replace('0x', ''), 'hex'), nonce: 0 } diff --git a/remix-simulator/src/methods/blocks.js b/remix-simulator/src/methods/blocks.js index a1dcf31bc6..d43834172c 100644 --- a/remix-simulator/src/methods/blocks.js +++ b/remix-simulator/src/methods/blocks.js @@ -25,14 +25,10 @@ Blocks.prototype.methods = function () { Blocks.prototype.eth_getBlockByNumber = function (payload, cb) { let blockIndex = payload.params[0] if (blockIndex === 'latest') { - blockIndex = (Object.keys(executionContext.blocks).length / 2) - 1 + blockIndex = executionContext.latestBlockNumber } - // ======= - // TODO: FIX ME - // var block = executionContext.blocks[blockIndex] - var block = Object.values(executionContext.blocks)[0] - // ======= + var block = executionContext.blocks[blockIndex] if (!block) { return cb(new Error('block not found')) diff --git a/remix-simulator/src/provider.js b/remix-simulator/src/provider.js index cc66f2b840..6b5d6ee007 100644 --- a/remix-simulator/src/provider.js +++ b/remix-simulator/src/provider.js @@ -23,7 +23,6 @@ var Provider = function (options) { this.methods = merge(this.methods, (new Misc()).methods()) this.methods = merge(this.methods, (new Filters()).methods()) this.methods = merge(this.methods, (new Net()).methods()) - // this.methods = merge(this.methods, (new Transactions(this.Accounts.accounts)).methods()) this.methods = merge(this.methods, this.Transactions.methods()) generateBlock() @@ -39,11 +38,8 @@ Provider.prototype.sendAsync = function (payload, callback) { log.info('payload method is ', payload.method) let method = this.methods[payload.method] - console.dir(payload) if (method) { return method.call(method, payload, (err, result) => { - console.dir(err) - console.dir(result) if (err) { return callback(err) } diff --git a/remix-simulator/test/blocks.js b/remix-simulator/test/blocks.js index 1e408b9265..c6c6503016 100644 --- a/remix-simulator/test/blocks.js +++ b/remix-simulator/test/blocks.js @@ -29,7 +29,7 @@ describe('blocks', function () { parentHash: '0x0000000000000000000000000000000000000000000000000000000000000000', sha3Uncles: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347', size: 163591, - stateRoot: '0xa633ca0e8f0ae4e86d4d572b048ea93d84eb4b11e2c988b48cb3a5f6f10b3c68', + stateRoot: '0x63e1738ea12d4e7d12b71f0f4604706417921eb6a62c407ca5f1d66b9e67f579', timestamp: block.timestamp, totalDifficulty: '0', transactions: [],