Skip to content
Snippets Groups Projects
Commit 16fcea5c authored by inso's avatar inso
Browse files

Fix dividends parsing

parent c3017a91
No related branches found
No related tags found
No related merge requests found
...@@ -61,7 +61,7 @@ class DividendsProcessor: ...@@ -61,7 +61,7 @@ class DividendsProcessor:
for tx in transactions: for tx in transactions:
txdoc = Transaction.from_signed_raw(tx.raw) txdoc = Transaction.from_signed_raw(tx.raw)
for input in txdoc.inputs: for input in txdoc.inputs:
if input.source == "D" and input.index not in block_numbers: if input.source == "D" and input.origin_id == identity.pubkey and input.index not in block_numbers:
block = await self._bma_connector.get(identity.currency, block = await self._bma_connector.get(identity.currency,
bma.blockchain.block, req_args={'number': input.index}) bma.blockchain.block, req_args={'number': input.index})
...@@ -69,8 +69,8 @@ class DividendsProcessor: ...@@ -69,8 +69,8 @@ class DividendsProcessor:
pubkey=identity.pubkey, pubkey=identity.pubkey,
block_number=input.index, block_number=input.index,
timestamp=block["medianTime"], timestamp=block["medianTime"],
amount=input.amount, amount=block["dividend"],
base=input.base) base=block["unitbase"])
log_stream("Dividend of block {0}".format(dividend.block_number)) log_stream("Dividend of block {0}".format(dividend.block_number))
try: try:
self._repo.insert(dividend) self._repo.insert(dividend)
......
from PyQt5.QtCore import QObject from PyQt5.QtCore import QObject
from sakia.data.entities.transaction import parse_transaction_doc from sakia.data.entities.transaction import parse_transaction_doc
from duniterpy.documents import SimpleTransaction from duniterpy.documents import SimpleTransaction
from sakia.data.entities import Dividend
import logging import logging
...@@ -47,8 +48,17 @@ class TransactionsService(QObject): ...@@ -47,8 +48,17 @@ class TransactionsService(QObject):
if not self._transactions_processor.find_by_hash(t.sha_hash) if not self._transactions_processor.find_by_hash(t.sha_hash)
and SimpleTransaction.is_simple(t)] and SimpleTransaction.is_simple(t)]
connections_pubkeys = [c.pubkey for c in self._connections_processor.connections_to(self.currency)] connections_pubkeys = [c.pubkey for c in self._connections_processor.connections_to(self.currency)]
for (i, tx_doc) in enumerate(new_transactions):
for pubkey in connections_pubkeys: for pubkey in connections_pubkeys:
if block_doc.ud:
dividend = Dividend(currency=self.currency,
pubkey=pubkey,
block_number=block_doc.number,
timestamp=block_doc.mediantime,
amount=block_doc.ud,
base=block_doc.unit_base)
self._dividends_processor.commit(dividend)
for (i, tx_doc) in enumerate(new_transactions):
tx = parse_transaction_doc(tx_doc, pubkey, block_doc.blockUID.number, block_doc.mediantime, txid+i) tx = parse_transaction_doc(tx_doc, pubkey, block_doc.blockUID.number, block_doc.mediantime, txid+i)
if tx: if tx:
new_transfers.append(tx) new_transfers.append(tx)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment