1
1
import { createBlock , createBlockFromBytesArray , createBlockFromRLP } from '@ethereumjs/block'
2
2
import { Common , Hardfork , Mainnet } from '@ethereumjs/common'
3
3
import { RLP } from '@ethereumjs/rlp'
4
- import { MapDB , hexToBytes , toBytes } from '@ethereumjs/util'
4
+ import { MapDB , hexToBytes } from '@ethereumjs/util'
5
5
import { assert , describe , it } from 'vitest'
6
6
7
7
import { Ethash } from '../src/index.js'
8
8
9
+ import { blockTestsData } from './block_tests_data.js'
10
+ import { invalidBlockRLP , validBlockRLP } from './ethash_block_rlp_tests.js'
11
+
9
12
import type { BlockBytes } from '@ethereumjs/block'
13
+ import type { PrefixedHexString } from '@ethereumjs/util'
10
14
11
15
const cacheDB = new MapDB ( )
12
16
13
- const { validBlockRlp, invalidBlockRlp } = require ( './ethash_block_rlp_tests.json' )
14
-
15
17
describe ( 'Verify POW for valid and invalid blocks' , ( ) => {
16
18
it ( 'should work' , async ( ) => {
17
19
const e = new Ethash ( cacheDB as any )
@@ -22,21 +24,20 @@ describe('Verify POW for valid and invalid blocks', () => {
22
24
const genesisResult = await e . verifyPOW ( genesis )
23
25
assert . ok ( genesisResult , 'genesis block should be valid' )
24
26
25
- const validRlp = hexToBytes ( `0x ${ validBlockRlp } ` )
27
+ const validRlp = hexToBytes ( validBlockRLP )
26
28
const validBlock = createBlockFromRLP ( validRlp , { common } )
27
29
const validBlockResult = await e . verifyPOW ( validBlock )
28
30
assert . ok ( validBlockResult , 'should be valid' )
29
31
30
- const invalidRlp = hexToBytes ( `0x ${ invalidBlockRlp } ` )
32
+ const invalidRlp = hexToBytes ( invalidBlockRLP )
31
33
// Put correct amount of extraData in block extraData field so block can be deserialized
32
34
const values = RLP . decode ( Uint8Array . from ( invalidRlp ) ) as BlockBytes
33
35
values [ 0 ] [ 12 ] = new Uint8Array ( 32 )
34
36
const invalidBlock = createBlockFromBytesArray ( values , { common } )
35
37
const invalidBlockResult = await e . verifyPOW ( invalidBlock )
36
38
assert . ok ( ! invalidBlockResult , 'should be invalid' )
37
39
38
- const testData = require ( './block_tests_data.json' )
39
- const blockRlp = toBytes ( testData . blocks [ 0 ] . rlp )
40
+ const blockRlp = hexToBytes ( blockTestsData . blocks [ 0 ] . rlp as PrefixedHexString )
40
41
const block = createBlockFromRLP ( blockRlp , { common } )
41
42
const uncleBlockResult = await e . verifyPOW ( block )
42
43
assert . ok ( uncleBlockResult , 'should be valid' )
0 commit comments