/// <summary> /// This method returns cross chain data. /// </summary> /// <param name="blockHash"></param> /// <param name="blockHeight"></param> /// <returns></returns> public async Task <CrossChainBlockData> GetCrossChainBlockDataForNextMiningAsync(Hash blockHash, long blockHeight) { if (!_transactionInclusivenessProvider.IsTransactionPackable) { return(null); } Logger.LogTrace("Try get cross chain data for mining."); var sideChainBlockData = await GetNonIndexedSideChainBlockDataAsync(blockHash, blockHeight); var parentChainBlockData = await GetNonIndexedParentChainBlockDataAsync(blockHash, blockHeight); if (sideChainBlockData.Count == 0 && parentChainBlockData.Count == 0) { return(null); } var crossChainBlockData = new CrossChainBlockData(); crossChainBlockData.ParentChainBlockData.AddRange(parentChainBlockData); crossChainBlockData.SideChainBlockData.AddRange(sideChainBlockData); crossChainBlockData.PreviousBlockHeight = blockHeight; _indexedCrossChainBlockDataProvider.SetIndexedBlockData(blockHash, crossChainBlockData); return(crossChainBlockData); }
/// <summary> /// This method returns cross chain data. /// </summary> /// <param name="blockHash"></param> /// <param name="blockHeight"></param> /// <returns></returns> public async Task <CrossChainBlockData> GetCrossChainBlockDataForNextMiningAsync(Hash blockHash, long blockHeight) { var sideChainBlockData = await GetNonIndexedSideChainBlockDataAsync(blockHash, blockHeight); var parentChainBlockData = await GetNonIndexedParentChainBlockDataAsync(blockHash, blockHeight); if (sideChainBlockData.Count == 0 && parentChainBlockData.Count == 0) { return(null); } var crossChainBlockData = new CrossChainBlockData(); crossChainBlockData.ParentChainBlockData.AddRange(parentChainBlockData); crossChainBlockData.SideChainBlockData.AddRange(sideChainBlockData); crossChainBlockData.PreviousBlockHeight = blockHeight; _indexedCrossChainBlockDataProvider.SetIndexedBlockData(blockHash, crossChainBlockData); return(crossChainBlockData); }