using fromBlockData

pull/1122/head
yann300 4 years ago
parent 1558c89bb3
commit adaac38af1
  1. 14
      libs/remix-debug/test/decoder/vmCall.ts
  2. 14
      libs/remix-debug/test/vmCall.ts
  3. 19
      libs/remix-lib/src/execution/txRunner.ts
  4. 19
      libs/remix-simulator/src/genesis.ts

@ -1,7 +1,7 @@
'use strict' 'use strict'
var utileth = require('ethereumjs-util') var utileth = require('ethereumjs-util')
var Tx = require('@ethereumjs/tx').Transaction var Tx = require('@ethereumjs/tx').Transaction
import { Block, BlockHeader } from '@ethereumjs/block' import { Block } from '@ethereumjs/block'
var BN = require('ethereumjs-util').BN var BN = require('ethereumjs-util').BN
var remixLib = require('@remix-project/remix-lib') var remixLib = require('@remix-project/remix-lib')
import VM from '@ethereumjs/vm' import VM from '@ethereumjs/vm'
@ -18,12 +18,12 @@ export function sendTx (vm, from, to, value, data, cb) {
}) })
tx.sign(from.privateKey) tx.sign(from.privateKey)
var header = BlockHeader.fromHeaderData({ var block = Block.fromBlockData({
timestamp: new Date().getTime() / 1000 | 0, header: {
number: 0 timestamp: new Date().getTime() / 1000 | 0,
}) number: 0
}
var block = new Block(header, [], []) }) // still using default common
try { try {
vm.runTx({block: block, tx: tx, skipBalance: true, skipNonce: true}).then(function (result) { vm.runTx({block: block, tx: tx, skipBalance: true, skipNonce: true}).then(function (result) {

@ -1,5 +1,5 @@
'use strict' 'use strict'
import { Block, BlockHeader } from '@ethereumjs/block' import { Block } from '@ethereumjs/block'
import VM from '@ethereumjs/vm' import VM from '@ethereumjs/vm'
var utileth = require('ethereumjs-util') var utileth = require('ethereumjs-util')
var Tx = require('@ethereumjs/tx').Transaction var Tx = require('@ethereumjs/tx').Transaction
@ -17,12 +17,12 @@ function sendTx (vm, from, to, value, data, cb) {
}) })
tx.sign(from.privateKey) tx.sign(from.privateKey)
var header = BlockHeader.fromHeaderData({ var block = Block.fromBlockData({
timestamp: new Date().getTime() / 1000 | 0, header: {
number: 0 timestamp: new Date().getTime() / 1000 | 0,
}) number: 0
}
var block = new Block(header, [], []) }) // still using default common
vm.runTx({block: block, tx: tx, skipBalance: true, skipNonce: true}).then(function (result) { vm.runTx({block: block, tx: tx, skipBalance: true, skipNonce: true}).then(function (result) {
setTimeout(() => { setTimeout(() => {
cb(null, utileth.bufferToHex(tx.hash())) cb(null, utileth.bufferToHex(tx.hash()))

@ -1,6 +1,6 @@
'use strict' 'use strict'
import { Transaction } from '@ethereumjs/tx' import { Transaction } from '@ethereumjs/tx'
import { Block, BlockHeader } from '@ethereumjs/block' import { Block } from '@ethereumjs/block'
import { BN, bufferToHex, Address } from 'ethereumjs-util' import { BN, bufferToHex, Address } from 'ethereumjs-util'
import { ExecutionContext } from './execution-context' import { ExecutionContext } from './execution-context'
import { EventManager } from '../eventManager' import { EventManager } from '../eventManager'
@ -127,15 +127,16 @@ export class TxRunner {
const coinbases = ['0x0e9281e9c6a0808672eaba6bd1220e144c9bb07a', '0x8945a1288dc78a6d8952a92c77aee6730b414778', '0x94d76e24f818426ae84aa404140e8d5f60e10e7e'] const coinbases = ['0x0e9281e9c6a0808672eaba6bd1220e144c9bb07a', '0x8945a1288dc78a6d8952a92c77aee6730b414778', '0x94d76e24f818426ae84aa404140e8d5f60e10e7e']
const difficulties = [new BN('69762765929000', 10), new BN('70762765929000', 10), new BN('71762765929000', 10)] const difficulties = [new BN('69762765929000', 10), new BN('70762765929000', 10), new BN('71762765929000', 10)]
const header: BlockHeader = BlockHeader.fromHeaderData({ var block = Block.fromBlockData({
timestamp: timestamp || (new Date().getTime() / 1000 | 0), header: {
number: self.blockNumber, timestamp: timestamp || (new Date().getTime() / 1000 | 0),
coinbase: coinbases[self.blockNumber % coinbases.length], number: self.blockNumber,
difficulty: difficulties[self.blockNumber % difficulties.length], coinbase: coinbases[self.blockNumber % coinbases.length],
gasLimit: new BN(gasLimit.replace('0x', ''), 16).imuln(2) difficulty: difficulties[self.blockNumber % difficulties.length],
gasLimit: new BN(gasLimit.replace('0x', ''), 16).imuln(2)
}
}, { common: this.commonContext }) }, { common: this.commonContext })
const block = new Block(header, [tx], [])
if (!useCall) { if (!useCall) {
++self.blockNumber ++self.blockNumber
this.runBlockInVm(tx, block, callback) this.runBlockInVm(tx, block, callback)

@ -1,15 +1,16 @@
import { Block, BlockHeader } from '@ethereumjs/block' import { Block } from '@ethereumjs/block'
import { BN } from 'ethereumjs-util' import { BN } from 'ethereumjs-util'
export function generateBlock (executionContext) { export function generateBlock (executionContext) {
const header: BlockHeader = BlockHeader.fromHeaderData({ const block: Block = Block.fromBlockData({
timestamp: (new Date().getTime() / 1000 | 0), header: {
number: 0, timestamp: (new Date().getTime() / 1000 | 0),
coinbase: '0x0e9281e9c6a0808672eaba6bd1220e144c9bb07a', number: 0,
difficulty: new BN('69762765929000', 10), coinbase: '0x0e9281e9c6a0808672eaba6bd1220e144c9bb07a',
gasLimit: new BN('8000000').imuln(1) difficulty: new BN('69762765929000', 10),
}) gasLimit: new BN('8000000').imuln(1)
const block: Block = new Block(header, [], []) }
}, { common: executionContext.vmObject().common })
executionContext.vm().runBlock({ block: block, generate: true, skipBlockValidation: true, skipBalance: false }).then(() => { executionContext.vm().runBlock({ block: block, generate: true, skipBlockValidation: true, skipBalance: false }).then(() => {
executionContext.addBlock(block) executionContext.addBlock(block)

Loading…
Cancel
Save