public CashInHandler(
     [NotNull] ILog log,
     [NotNull] IMatchingEngineClient matchingEngineClient,
     [NotNull] ICashOperationsRepositoryClient cashOperationsRepositoryClient,
     [NotNull] IBitcoinCashinRepository bitcoinCashinRepository,
     [NotNull] IPostponedCashInRepository postponedCashInRepository)
 {
     _log = log.CreateComponentScope(nameof(CashInHandler));
     _matchingEngineClient           = matchingEngineClient ?? throw new ArgumentNullException(nameof(matchingEngineClient));
     _cashOperationsRepositoryClient = cashOperationsRepositoryClient ?? throw new ArgumentNullException(nameof(cashOperationsRepositoryClient));
     _bitcoinCashinRepository        = bitcoinCashinRepository ?? throw new ArgumentNullException(nameof(bitcoinCashinRepository));
     _postponedCashInRepository      = postponedCashInRepository ?? throw new ArgumentNullException(nameof(postponedCashInRepository));
 }
 public CashInOutMessageProcessor(
     [NotNull] ILogFactory logFactory,
     [NotNull] ICashOperationsRepositoryClient cashOperationsRepositoryClient,
     [NotNull] ITransactionsRepository transactionsRepository,
     [NotNull] IAssetsServiceWithCache assetsServiceWithCache,
     [NotNull] IWalletCredentialsRepository walletCredentialsRepository,
     [NotNull] IClientAccountClient clientAccountClient,
     [NotNull] ITransactionService transactionService,
     [NotNull] ICqrsEngine cqrsEngine,
     [NotNull] IBitcoinCashinRepository bitcoinCashinRepository)
 {
     _log = logFactory.CreateLog(this) ?? throw new ArgumentNullException(nameof(logFactory));
     _cashOperationsRepositoryClient = cashOperationsRepositoryClient ?? throw new ArgumentNullException(nameof(cashOperationsRepositoryClient));
     _transactionsRepository         = transactionsRepository ?? throw new ArgumentNullException(nameof(transactionsRepository));
     _assetsServiceWithCache         = assetsServiceWithCache ?? throw new ArgumentNullException(nameof(assetsServiceWithCache));
     _walletCredentialsRepository    = walletCredentialsRepository ?? throw new ArgumentNullException(nameof(walletCredentialsRepository));
     _clientAccountClient            = clientAccountClient ?? throw new ArgumentNullException(nameof(clientAccountClient));
     _transactionService             = transactionService ?? throw new ArgumentNullException(nameof(transactionService));
     _cqrsEngine = cqrsEngine ?? throw new ArgumentNullException(nameof(cqrsEngine));
     _bitcoinCashinTypeRepository = bitcoinCashinRepository ?? throw new ArgumentNullException(nameof(bitcoinCashinRepository));
 }