public void RegisterNewChainTest()
        {
            var chainId = 1;

            _crossChainCacheEntityService.RegisterNewChain(chainId, 1);
            var cachedChainIdList = _crossChainCacheEntityService.GetCachedChainIds();

            cachedChainIdList.ShouldContain(chainId);

            _crossChainCacheEntityService.GetCachedChainIds();
            var targetHeight = _crossChainCacheEntityService.GetTargetHeightForChainCacheEntity(chainId);

            targetHeight.ShouldBe(2);
        }
        public async Task FinishInitialSync_Test()
        {
            int  chainId   = ChainHelper.ConvertBase58ToChainId("AELF");
            long libHeight = 10;

            _crossChainTestHelper.AddFakeChainIdHeight(chainId, libHeight);
            _crossChainConfigOptions.CrossChainDataValidationIgnored.ShouldBeTrue();
            await _crossChainService.FinishInitialSyncAsync();

            _crossChainConfigOptions.CrossChainDataValidationIgnored.ShouldBeFalse();

            var height = _crossChainCacheEntityService.GetTargetHeightForChainCacheEntity(chainId);

            {
                Should.Throw <InvalidOperationException>(() =>
                                                         _crossChainCacheEntityService.GetTargetHeightForChainCacheEntity(chainId - 1));
            }
            Assert.Equal(libHeight + 1, height);
        }
예제 #3
0
        public Dictionary <int, long> GetNeededChainIdAndHeightPairs()
        {
            var chainIdList = _crossChainCacheEntityService.GetCachedChainIds();
            var dict        = new Dictionary <int, long>();

            foreach (var chainId in chainIdList)
            {
                var neededChainHeight = _crossChainCacheEntityService.GetTargetHeightForChainCacheEntity(chainId);
                dict.Add(chainId, neededChainHeight);
            }

            return(dict);
        }
예제 #4
0
        private Dictionary <int, long> GetNeededChainIdAndHeightPairs()
        {
            var chainIdList = _crossChainCacheEntityService.GetCachedChainIds();
            var dict        = new Dictionary <int, long>();

            foreach (var chainId in chainIdList)
            {
                var neededChainHeight = _crossChainCacheEntityService.GetTargetHeightForChainCacheEntity(chainId);
                if (neededChainHeight < AElfConstants.GenesisBlockHeight)
                {
                    continue;
                }
                dict.Add(chainId, neededChainHeight);
            }

            return(dict);
        }