diff --git a/torba/baseaccount.py b/torba/baseaccount.py index 92d64846c..39f933992 100644 --- a/torba/baseaccount.py +++ b/torba/baseaccount.py @@ -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): diff --git a/torba/basedatabase.py b/torba/basedatabase.py index 3d4df697f..0c8d0a54f 100644 --- a/torba/basedatabase.py +++ b/torba/basedatabase.py @@ -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: diff --git a/torba/baseledger.py b/torba/baseledger.py index 25c6f22bb..b1d857716 100644 --- a/torba/baseledger.py +++ b/torba/baseledger.py @@ -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()