public async Task ValidateBlockBeforeExecuteAsync_Test()
        {
            var block = new Block
            {
                Header = new BlockHeader
                {
                    Height    = 1,
                    ExtraData = { }
                }
            };
            var result = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            result.ShouldBeTrue();

            block  = _kernelTestHelper.GenerateBlock(8, HashHelper.ComputeFrom("test"));
            result = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            result.ShouldBeFalse();

            block = _kernelTestHelper.GenerateBlock(9, HashHelper.ComputeFrom("test"), null,
                                                    new Dictionary <string, ByteString>
            {
                { ConsensusConstants.ConsensusExtraDataKey, ByteString.CopyFromUtf8("extra data") }
            });
            result = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            result.ShouldBeTrue();
        }
Beispiel #2
0
        public async Task Validate_Block_BeforeExecuteAsync()
        {
            var block1  = GenerateBlockInformation(1, true);
            var result1 = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block1);

            result1.ShouldBeTrue();

            var block2  = GenerateBlockInformation(10, false);
            var result2 = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block2);

            result2.ShouldBeFalse();

            var block3  = GenerateBlockInformation(10, true);
            var result3 = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block3);

            result3.ShouldBeTrue();
        }
Beispiel #3
0
        public async Task ValidateBlockBeforeExecute_Test()
        {
            var fakeMerkleTreeRoot1       = Hash.FromString("fakeMerkleTreeRoot1");
            var fakeSideChainId           = ChainHelper.ConvertBase58ToChainId("2112");
            var fakeSideChainBlockData    = CreateSideChainBlockData(fakeSideChainId, 1, fakeMerkleTreeRoot1);
            var sideChainTxMerkleTreeRoot = ComputeRootHash(new[] { fakeSideChainBlockData });
            var block = CreateFilledBlock(sideChainTxMerkleTreeRoot);
            var res   = await _crossChainBlockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            Assert.True(res);
        }
Beispiel #4
0
        public async Task ValidateBlockBeforeExecuteAsync_Test()
        {
            var block = new Block
            {
                Header = new BlockHeader
                {
                    Height    = 1,
                    ExtraData = { }
                }
            };
            var result = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            result.ShouldBeTrue();

            block  = _kernelTestHelper.GenerateBlock(9, Hash.FromString("test"));
            result = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            result.ShouldBeFalse();

            block  = _kernelTestHelper.GenerateBlock(9, Hash.FromString("test"), null, ByteString.CopyFromUtf8("extra data"));
            result = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            result.ShouldBeTrue();
        }
        public async Task ValidateBlockBeforeExecute_Test()
        {
            var fakeMerkleTreeRoot1       = HashHelper.ComputeFrom("fakeMerkleTreeRoot1");
            var fakeSideChainId           = ChainHelper.ConvertBase58ToChainId("2112");
            var fakeSideChainBlockData    = CreateSideChainBlockData(fakeSideChainId, 1, fakeMerkleTreeRoot1);
            var sideChainTxMerkleTreeRoot = ComputeRootHash(new[] { fakeSideChainBlockData });
            var block = CreateFilledBlock(sideChainTxMerkleTreeRoot);
            {
                var res = await _crossChainBlockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

                Assert.False(res);
            }

            {
                _crossChainTestHelper.AddFakeExtraData(block.Header.PreviousBlockHash,
                                                       new CrossChainExtraData {
                    TransactionStatusMerkleTreeRoot = sideChainTxMerkleTreeRoot
                });

                var res = await _crossChainBlockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

                Assert.True(res);
            }
        }