示例#1
0
 def submit_pending_transactions(self):
     """
     Submit transactions that was signed, but connection error occurred
     when submit it.
     """
     logger.info(format_log_message('Submit pending transactions'))
     pending_transactions = Transaction.objects.filter(
         status=Transaction.PENDING)
     for transaction in pending_transactions:
         logger.info(format_log_message('Submit: %s', transaction))
         submit_task.apply((transaction.pk, ))
示例#2
0
 def submit_pending_transactions(self):
     """
     Submit transactions that was signed, but connection error occurred
     when submit it.
     """
     logger.info(format_log_message('Submit pending transactions'))
     pending_transactions = Transaction.objects.filter(
         status=Transaction.PENDING
     )
     for transaction in pending_transactions:
         logger.info(format_log_message('Submit: %s', transaction))
         submit_task.apply((transaction.pk,))
示例#3
0
    def check_submitted_transactions(self):
        """
        Check final disposition of transactions.
        """
        logger.info(
            format_log_message(
                'Checking submitted transactions'
            )
        )

        submitted_transactions = Transaction.objects.filter(
            status=Transaction.SUBMITTED
        )
        for transaction in submitted_transactions:
            try:
                response = tx(transaction.hash)
                logger.info(format_log_message(response))
            except RippleApiError as e:
                logger.error(
                    format_log_message(
                        "Error processing %s: %s", transaction, e
                    )
                )
                if e.error == 'txnNotFound':
                    logger.info(
                        format_log_message(
                            'Setting transaction status to Failed for %s',
                            transaction
                        )
                    )
                    transaction.status = Transaction.FAILURE
                    transaction.save()
                continue

            status = response.get('meta', {}).get('TransactionResult')

            if status == 'tesSUCCESS':
                transaction.status = Transaction.SUCCESS
                transaction.save()

                if transaction.parent:
                    transaction.parent.status = Transaction.RETURNED
                    transaction.parent.save()

                logger.info(format_log_message(
                        "Transaction: %s to %s was complete.",
                        transaction, transaction.destination
                    )
                )
            else:
                logger.info("Transaction status: %s" % status)
示例#4
0
    def check_submitted_transactions(self):
        """
        Check final disposition of transactions.
        """
        logger.info(format_log_message('Checking submitted transactions'))

        submitted_transactions = Transaction.objects.filter(
            status=Transaction.SUBMITTED)
        for transaction in submitted_transactions:
            try:
                response = tx(transaction.hash)
                logger.info(format_log_message(response))
            except RippleApiError as e:
                logger.error(
                    format_log_message("Error processing %s: %s", transaction,
                                       e))
                if e.error == 'txnNotFound':
                    logger.info(
                        format_log_message(
                            'Setting transaction status to Failed for %s',
                            transaction))
                    transaction.status = Transaction.FAILURE
                    transaction.save()
                continue

            status = response.get('meta', {}).get('TransactionResult')

            if status == 'tesSUCCESS':
                transaction.status = Transaction.SUCCESS
                transaction.save()

                if transaction.parent:
                    transaction.parent.status = Transaction.RETURNED
                    transaction.parent.save()

                logger.info(
                    format_log_message("Transaction: %s to %s was complete.",
                                       transaction, transaction.destination))
            else:
                logger.info("Transaction status: %s" % status)
示例#5
0
    def retry_failed_transactions(self):
        logger.info('Retrying failed transactions')
        failed_transactions = Transaction.objects.filter(
            status=Transaction.FAILURE)
        for transaction in failed_transactions:
            logger.info(format_log_message('Found %s', transaction))

            retry_transaction = Transaction.objects.create(
                account=transaction.account,
                destination=transaction.destination,
                currency=transaction.currency,
                value=transaction.value,
                status=Transaction.PENDING,
                parent=transaction.parent)
            sign_task.apply((retry_transaction.pk, settings.RIPPLE_SECRET))
            logger.info("New transaction created for returning %s",
                        retry_transaction.pk)
            transaction.status = Transaction.FAIL_FIXED
            transaction.save()
            logger.info("Fixed the transaction")
示例#6
0
    def retry_failed_transactions(self):
        logger.info('Retrying failed transactions')
        failed_transactions = Transaction.objects.filter(
            status=Transaction.FAILURE
        )
        for transaction in failed_transactions:
            logger.info(format_log_message('Found %s', transaction))

            retry_transaction = Transaction.objects.create(
                account=transaction.account,
                destination=transaction.destination,
                currency=transaction.currency,
                value=transaction.value,
                status=Transaction.PENDING,
                parent=transaction.parent
            )
            sign_task.apply((retry_transaction.pk, settings.RIPPLE_SECRET))
            logger.info(
                "New transaction created for returning %s",
                retry_transaction.pk
            )
            transaction.status = Transaction.FAIL_FIXED
            transaction.save()
            logger.info("Fixed the transaction")