private BitcoinLossProtectedWalletTransactionRecord generateBitcoinTransaction(
      final Transaction<CryptoTransaction> transaction, final TransactionType transactionType)
      throws
          com.bitdubai.fermat_ccp_plugin.layer.crypto_transaction.incoming_extra_actor.developer
              .bitdubai.version_1.exceptions.CantGenerateTransactionException {

    try {
      CryptoTransaction cryptoTransaction = transaction.getInformation();

      CryptoAddressBookRecord cryptoAddressBookRecord =
          cryptoAddressBookManager.getCryptoAddressBookRecordByCryptoAddress(
              cryptoTransaction.getAddressTo());

      long timestamp = transaction.getTimestamp();
      com.bitdubai.fermat_ccp_plugin.layer.crypto_transaction.incoming_extra_actor.developer
              .bitdubai.version_1.util.LossProtectedTransactionWrapper
          bitcoinWalletTransactionRecord =
              new com.bitdubai.fermat_ccp_plugin.layer.crypto_transaction.incoming_extra_actor
                  .developer.bitdubai.version_1.util.LossProtectedTransactionWrapper();

      bitcoinWalletTransactionRecord.setIdTransaction(transaction.getTransactionID());
      bitcoinWalletTransactionRecord.setTransactionHash(cryptoTransaction.getTransactionHash());
      bitcoinWalletTransactionRecord.setAddressFrom(cryptoTransaction.getAddressFrom());
      bitcoinWalletTransactionRecord.setAddressTo(cryptoTransaction.getAddressTo());
      bitcoinWalletTransactionRecord.setAmount(cryptoTransaction.getCryptoAmount());
      bitcoinWalletTransactionRecord.setTimestamp(timestamp);
      bitcoinWalletTransactionRecord.setMemo("No information");

      bitcoinWalletTransactionRecord.setActorFromPublicKey(
          cryptoAddressBookRecord.getDeliveredByActorPublicKey());
      bitcoinWalletTransactionRecord.setActorFromType(
          cryptoAddressBookRecord.getDeliveredByActorType());
      bitcoinWalletTransactionRecord.setActorToPublicKey(
          cryptoAddressBookRecord.getDeliveredToActorPublicKey());
      bitcoinWalletTransactionRecord.setActorToType(
          cryptoAddressBookRecord.getDeliveredToActorType());
      bitcoinWalletTransactionRecord.setBlockchainNetworkType(
          cryptoTransaction.getBlockchainNetworkType());
      return bitcoinWalletTransactionRecord;

    } catch (CantGetCryptoAddressBookRecordException e) {
      throw new com.bitdubai.fermat_ccp_plugin.layer.crypto_transaction.incoming_extra_actor
          .developer.bitdubai.version_1.exceptions.CantGenerateTransactionException(
          "I couldn't get crypto address book record", e, "", "");
    } catch (CryptoAddressBookRecordNotFoundException e) {
      throw new com.bitdubai.fermat_ccp_plugin.layer.crypto_transaction.incoming_extra_actor
          .developer.bitdubai.version_1.exceptions.CantGenerateTransactionException(
          "I couldn't find the crypto address book record", e, "", "");
    }
  }