fix balance with confirmations and header event reporting

This commit is contained in:
Lex Berezhny 2018-07-22 22:52:21 -04:00
parent 2f83ebb3b5
commit 25046124c0
3 changed files with 5 additions and 3 deletions

View file

@ -262,7 +262,7 @@ class BaseAccount(object):
def get_balance(self, confirmations=6, **constraints):
if confirmations > 0:
height = self.ledger.headers.height - (confirmations-1)
constraints.update({'height__lte': height, 'height__not': -1})
constraints.update({'height__lte': height, 'height__gt': 0})
return self.ledger.db.get_balance_for_account(self, **constraints)
def get_unspent_outputs(self, **constraints):

View file

@ -232,6 +232,8 @@ class BaseDatabase(SQLiteMixin):
col, op = key[:-len('__not')], '!='
elif key.endswith('__lte'):
col, op = key[:-len('__lte')], '<='
elif key.endswith('__gt'):
col, op = key[:-len('__gt')], '>'
extras.append('{} {} :{}'.format(col, op, key))
extra_sql = ' AND ' + ' AND '.join(extras)
if not include_reserved:

View file

@ -212,7 +212,7 @@ class BaseLedger(six.with_metaclass(LedgerRegistry)):
if headers['count'] <= 0:
break
yield self.headers.connect(height_sought, unhexlify(headers['hex']))
self._on_header_controller.add(height_sought)
self._on_header_controller.add(self.headers.height)
@defer.inlineCallbacks
def process_header(self, response):
@ -222,7 +222,7 @@ class BaseLedger(six.with_metaclass(LedgerRegistry)):
if header['height'] == len(self.headers):
# New header from network directly connects after the last local header.
yield self.headers.connect(len(self.headers), unhexlify(header['hex']))
self._on_header_controller.add(len(self.headers))
self._on_header_controller.add(self.headers.height)
elif header['height'] > len(self.headers):
# New header is several heights ahead of local, do download instead.
yield self.update_headers()