Lo que me gustaría hacer en código psuedo es:
def import_transaction_deposit_crypto(Importer): logger = get_nexchange_logger(__name__, True, True) existent_addresses = Address.objects.filter( currency__is_crypto=True, type=Address.DEPOSIT, currency__wallet__in=Importer.RELATED_NODES ).tx_to_set.count()
Ejemplo de valor del importador:
class LitecoinTxImporter: RELATED_NODES = 'ltc_rpc_1'
tx_to
es un campo relacionado (relación inversa):
class Address(BtcBase, SoftDeletableModel): address_to = models.ForeignKey('core.Address', related_name='txs_to')
La idea es contar todas las transacciones 'ya importadas' que pertenecen a un nodo RPC específico (billetera), para enviarlo al parámetro from
del punto final RPC listtransactions
(en términos generales, con fines de paginación).
Esto se documenta aquí con un ejemplo perfectamente coincidente:
# Build an annotated queryset >>> from django.db.models import Count >>> q = Book.objects.annotate(Count('authors')) # Interrogate the first object in the queryset >>> q[0] <Book: The Definitive Guide to Django> >>> q[0].authors__count 2
Puede iniciar el filtrado desde Address
:
Adress.objects.filter(address_to__curency__is_crpyto=True, ...).count()