private async Task AddNewTransactionsDataToDocumentAsync(string address, List <CirrusContractTable> contractTransactions,
                                                             NonFungibleTokenComputedTable contract)
    {
        foreach (var contractTransaction in contractTransactions)
        {
            var reader = logReaderFactory.GetLogReader(contractTransaction.MethodName);

            if (reader is null)
            {
                logger.LogInformation($"No reader found for method {contractTransaction.MethodName} on transaction id - {contractTransaction.TransactionId}");
                throw new InvalidOperationException(
                          $"Reader was not found for transaction - {contractTransaction.TransactionId}");
            }

            if (!reader.IsTransactionLogComplete(contractTransaction.Logs))
            {
                var result = await cirrusClient.GetContractInfoAsync(contractTransaction.TransactionId);

                contractTransaction.Logs = result.Logs;
            }

            reader.UpdateContractFromTransactionLog(contractTransaction, contract);

            contract.LastProcessedBlockHeight = contractTransaction.BlockIndex;
        }

        await SaveTheContractAsync(address, contract);
    }