public async Task setHead_to_unknown_block_fails()
        {
            using MergeTestBlockchain chain = await CreateBlockChain();

            IConsensusRpcModule    rpc           = CreateConsensusModule(chain);
            ResultWrapper <Result> setHeadResult = await rpc.consensus_setHead(TestItem.KeccakF);

            setHeadResult.Data.success.Should().BeFalse();
        }
        public async Task setHead_can_reorganize_to_any_block()
        {
            using MergeTestBlockchain chain = await CreateBlockChain();

            IConsensusRpcModule rpc = CreateConsensusModule(chain);

            async Task CanReorganizeToBlock(BlockRequestResult block, MergeTestBlockchain testChain)
            {
                ResultWrapper <Result> result = await rpc.consensus_setHead(block.BlockHash);

                result.Data.Should().Be(Result.OK);
                testChain.BlockTree.HeadHash.Should().Be(block.BlockHash);
                testChain.BlockTree.Head !.Number.Should().Be(block.Number);
                testChain.State.StateRoot.Should().Be(testChain.BlockTree.Head !.StateRoot !);
            }

            async Task CanReorganizeToAnyBlock(MergeTestBlockchain testChain, params IReadOnlyList <BlockRequestResult>[] branches)