Example #1
0
        public async Task setHead_to_unknown_block_fails()
        {
            using MergeTestBlockchain chain = await CreateBlockChain();

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

            setHeadResult.Data.Success.Should().BeFalse();
        }
Example #2
0
        public async Task setHead_can_reorganize_to_any_block()
        {
            using MergeTestBlockchain chain = await CreateBlockChain();

            IEngineRpcModule rpc = CreateConsensusModule(chain);

            async Task CanReorganizeToBlock(BlockRequestResult block, MergeTestBlockchain testChain)
            {
                ResultWrapper <Result> result = await rpc.engine_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)