@@ -8,31 +8,28 @@ import { getPreState, getBlockchain, verifyResult } from './util'
8
8
9
9
const BLOCK_FIXTURE = 'benchmarks/fixture/blocks-prestate.json'
10
10
11
- const onAdd = async ( vm : VM , block : Block , receipts : any ) => {
12
- const vmCopy = vm . copy ( )
13
-
14
- const result = await vmCopy . runBlock ( {
11
+ const runBlock = async ( vm : VM , block : Block , receipts : any ) => {
12
+ await vm . copy ( ) . runBlock ( {
15
13
block,
16
14
generate : true ,
17
15
skipBlockValidation : true ,
18
16
} )
19
-
20
- verifyResult ( block , result )
17
+ verifyResult ( block , receipts )
21
18
}
22
19
23
20
export async function mainnetBlocks ( suite ?: Benchmark . Suite , numSamples ?: number ) {
24
21
let data = JSON . parse ( readFileSync ( BLOCK_FIXTURE , 'utf8' ) )
25
22
if ( ! Array . isArray ( data ) ) data = [ data ]
26
23
console . log ( `Total number of blocks in data set: ${ data . length } ` )
27
24
28
- numSamples = numSamples ? numSamples : data . length
25
+ numSamples = numSamples ?? data . length
29
26
console . log ( `Number of blocks to sample: ${ numSamples } ` )
30
27
data = data . slice ( 0 , numSamples )
31
28
32
29
const common = new Common ( { chain : 'mainnet' , hardfork : 'muirGlacier' } )
33
30
34
31
for ( const blockData of data ) {
35
- const block = blockFromRPC ( blockData . block , [ ] , { common : common } )
32
+ const block = blockFromRPC ( blockData . block , [ ] , { common } )
36
33
const blockNumber = block . header . number . toNumber ( )
37
34
const { receipts, preState, blockhashes } = blockData
38
35
@@ -41,9 +38,11 @@ export async function mainnetBlocks(suite?: Benchmark.Suite, numSamples?: number
41
38
const vm = new VM ( { stateManager, common, blockchain } )
42
39
43
40
if ( suite ) {
44
- suite . add ( `Block ${ blockNumber } ` , onAdd . bind ( vm , block , receipts ) )
41
+ suite . add ( `Block ${ blockNumber } ` , async ( ) => {
42
+ await runBlock ( vm , block , receipts )
43
+ } )
45
44
} else {
46
- await onAdd ( vm , block , receipts )
45
+ await runBlock ( vm , block , receipts )
47
46
}
48
47
}
49
48
}
0 commit comments