@ParameterizedTest
  @ArgumentsSource(GenesisStateTestArguments.class)
  void genesisFromCancun(final DataStorageConfiguration dataStorageConfiguration) {
    final GenesisState genesisState =
        GenesisState.fromJsonSource(
            dataStorageConfiguration,
            GenesisStateTest.class.getResource("genesis_cancun.json"),
            ProtocolScheduleFixture.MAINNET);
    final BlockHeader header = genesisState.getBlock().getHeader();
    assertThat(header.getHash())
        .isEqualTo(
            Hash.fromHexString(
                "0x87846b86c1026fa7d7be2da045716274231de1871065a320659c9b111287c688"));
    assertThat(header.getGasLimit()).isEqualTo(0x2fefd8);
    assertThat(header.getGasUsed()).isZero();
    assertThat(header.getNumber()).isZero();
    assertThat(header.getReceiptsRoot())
        .isEqualTo(
            Hash.fromHexString(
                "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"));
    assertThat(header.getTransactionsRoot()).isEqualTo(Hash.EMPTY_TRIE_HASH);
    assertThat(header.getOmmersHash())
        .isEqualTo(
            Hash.fromHexString(
                "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"));
    assertThat(header.getExtraData()).isEqualTo(Bytes.EMPTY);
    assertThat(header.getParentHash()).isEqualTo(Hash.ZERO);

    final MutableWorldState worldState = InMemoryKeyValueStorageProvider.createInMemoryWorldState();
    genesisState.writeStateTo(worldState);
    Hash computedStateRoot = worldState.rootHash();
    assertThat(computedStateRoot).isEqualTo(header.getStateRoot());
    assertThat(header.getStateRoot())
        .isEqualTo(
            Hash.fromHexString(
                "0x7f5cfe1375a61009a22d24512d18035bc8f855129452fa9c6a6be2ef4e9da7db"));
    final Account first =
        worldState.get(Address.fromHexString("0000000000000000000000000000000000000100"));
    final Account last =
        worldState.get(Address.fromHexString("fb289e2b2b65fb63299a682d000744671c50417b"));
    assertThat(first).isNotNull();
    assertThat(first.getBalance().toLong()).isZero();
    assertThat(first.getCode())
        .isEqualTo(Bytes.fromHexString("0x5f804955600180495560028049556003804955"));
    assertThat(last).isNotNull();
    Wei lastBalance = last.getBalance();
    assertThat(lastBalance).isEqualTo(Wei.fromHexString("0x123450000000000000000"));
    assertThat(header.getRequestsHash().isPresent()).isFalse();
  }
Known Hash of the Olympic Genesis Block.
ethereum/core/src/test/java/org/hyperledger/besu/ethereum/chain/GenesisStateTest.java