public async Task ProccedAsync(IChainalysisTxEvent txEvent)
        {
            _log.WriteInfo(nameof(ChainalysisTxService), nameof(ProccedAsync), txEvent.ToJson());

            try
            {
                List <Task> tasks = new List <Task>();
                foreach (var cashIn in await GetDataToSave(txEvent))
                {
                    tasks.Add(_chainalysisRepository.SaveAsync(cashIn));
                }
                await Task.WhenAll(tasks.ToArray());
            }
            catch (Exception e)
            {
                _log.WriteError(nameof(ChainalysisTxService), nameof(ProccedAsync), e);
            }
        }
        private async Task <List <IChainalysisCash> > GetDataToSave(IChainalysisTxEvent txEvent)
        {
            var result = new List <IChainalysisCash>();

            try
            {
                var transaction = await _ninjaClient.GetTransaction(txEvent.TransactionHash);

                if (transaction != null)
                {
                    foreach (var rec in transaction.ReceivedCoins)
                    {
                        if (txEvent.Multisig.Equals(rec.TxOut.ScriptPubKey.GetDestinationAddress(_ninjaNetwork)?.ToString()))
                        {
                            var chainalysisResult = await _client.AddTransaction(txEvent.ClientId, new NewTransactionModel
                            {
                                Transaction     = txEvent.TransactionHash,
                                Output          = ((int)rec.Outpoint.N).ToString(),
                                TransactionType = TransactionType.Reseived
                            });

                            result.Add(new ChainalisysCashMessage
                            {
                                LwClientId          = txEvent.ClientId,
                                BtcTransactionHash  = txEvent.TransactionHash,
                                WalletAddress       = txEvent.Multisig,
                                OutputNumber        = (int)rec.Outpoint.N,
                                Amount              = rec.TxOut.Value.ToString(),
                                ChainalysisName     = chainalysisResult?.OutName,
                                ChainalysisScore    = chainalysisResult == null ? null : chainalysisResult.OutScore.ToString(),
                                ChainalysisCategory = chainalysisResult?.OutCategory
                            });
                        }
                    }
                }
            }
            catch (Exception e)
            {
                _log.WriteError(nameof(ChainalysisTxService), nameof(GetDataToSave), e);
            }

            return(result);
        }