diff --git a/packages/genesis/src/index.ts b/packages/genesis/src/index.ts index 1c783e7ace..017a8df49c 100644 --- a/packages/genesis/src/index.ts +++ b/packages/genesis/src/index.ts @@ -11,7 +11,7 @@ import type { GenesisState } from '@ethereumjs/util' * @param: chainId of the network * @returns genesisState of the chain */ -export function getGenesis(chainId: number): GenesisState | null { +export function getGenesis(chainId: number): GenesisState | undefined { // Use require statements here in favor of import statements // to load json files on demand // (high memory usage by large mainnet.json genesis state file) @@ -24,6 +24,6 @@ export function getGenesis(chainId: number): GenesisState | null { return sepoliaGenesis default: - return null + return undefined } } diff --git a/packages/genesis/test/index.spec.ts b/packages/genesis/test/index.spec.ts index 91566c6221..8dc617559d 100644 --- a/packages/genesis/test/index.spec.ts +++ b/packages/genesis/test/index.spec.ts @@ -15,9 +15,9 @@ describe('genesis test', () => { for (const chainId of chainIds) { const name = chainToName[chainId as unknown as Chain] - assert.ok(getGenesis(Number(chainId)) !== null, `${name} genesis found`) + assert.ok(getGenesis(Number(chainId)) !== undefined, `${name} genesis found`) } - assert.ok(getGenesis(2) === null, `genesis for chainId 2 not found`) + assert.ok(getGenesis(2) === undefined, `genesis for chainId 2 not found`) }) }) diff --git a/packages/vm/test/api/genesis.spec.ts b/packages/vm/test/api/genesis.spec.ts new file mode 100644 index 0000000000..d9df6ae020 --- /dev/null +++ b/packages/vm/test/api/genesis.spec.ts @@ -0,0 +1,19 @@ +import { Blockchain } from '@ethereumjs/blockchain' +import { Chain } from '@ethereumjs/common' +import { getGenesis } from '@ethereumjs/genesis' +import { assert, describe, it } from 'vitest' + +import { VM } from '../../src/index.js' + +describe('genesis', () => { + it('should initialize with predefined genesis states', async () => { + const f = async () => { + const genesisState = getGenesis(Chain.Mainnet) + + const blockchain = await Blockchain.create({ genesisState }) + await VM.create({ blockchain, genesisState }) + } + + assert.doesNotThrow(f, 'should allow for initialization with genesis from genesis package') + }) +})