Add back the 'to_height' and 'from_height' to onchain_history command
Exclude unconfirmed transactions from --to_height and include them into --from_height. The reason being that an unconfirmed transaction will end up eventually into the last block which most of the time will be higher than --from_height
This commit is contained in:
@@ -662,10 +662,13 @@ class Commands:
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
@command('w')
|
@command('w')
|
||||||
async def onchain_history(self, year=None, show_addresses=False, show_fiat=False, wallet: Abstract_Wallet = None):
|
async def onchain_history(self, year=None, show_addresses=False, show_fiat=False, wallet: Abstract_Wallet = None,
|
||||||
|
from_height=None, to_height=None):
|
||||||
"""Wallet onchain history. Returns the transaction history of your wallet."""
|
"""Wallet onchain history. Returns the transaction history of your wallet."""
|
||||||
kwargs = {
|
kwargs = {
|
||||||
'show_addresses': show_addresses,
|
'show_addresses': show_addresses,
|
||||||
|
'from_height': from_height,
|
||||||
|
'to_height': to_height,
|
||||||
}
|
}
|
||||||
if year:
|
if year:
|
||||||
import time
|
import time
|
||||||
@@ -677,6 +680,7 @@ class Commands:
|
|||||||
from .exchange_rate import FxThread
|
from .exchange_rate import FxThread
|
||||||
fx = FxThread(self.config, None)
|
fx = FxThread(self.config, None)
|
||||||
kwargs['fx'] = fx
|
kwargs['fx'] = fx
|
||||||
|
|
||||||
return json_normalize(wallet.get_detailed_history(**kwargs))
|
return json_normalize(wallet.get_detailed_history(**kwargs))
|
||||||
|
|
||||||
@command('w')
|
@command('w')
|
||||||
|
|||||||
@@ -950,9 +950,12 @@ class Abstract_Wallet(AddressSynchronizer, ABC):
|
|||||||
|
|
||||||
@profiler
|
@profiler
|
||||||
def get_detailed_history(self, from_timestamp=None, to_timestamp=None,
|
def get_detailed_history(self, from_timestamp=None, to_timestamp=None,
|
||||||
fx=None, show_addresses=False):
|
fx=None, show_addresses=False, from_height=None, to_height=None):
|
||||||
# History with capital gains, using utxo pricing
|
# History with capital gains, using utxo pricing
|
||||||
# FIXME: Lightning capital gains would requires FIFO
|
# FIXME: Lightning capital gains would requires FIFO
|
||||||
|
if (from_timestamp is not None or to_timestamp is not None) \
|
||||||
|
and (from_height is not None or to_height is not None):
|
||||||
|
raise Exception('timestamp and block height based filtering cannot be used together')
|
||||||
out = []
|
out = []
|
||||||
income = 0
|
income = 0
|
||||||
expenditures = 0
|
expenditures = 0
|
||||||
@@ -966,6 +969,11 @@ class Abstract_Wallet(AddressSynchronizer, ABC):
|
|||||||
continue
|
continue
|
||||||
if to_timestamp and (timestamp or now) >= to_timestamp:
|
if to_timestamp and (timestamp or now) >= to_timestamp:
|
||||||
continue
|
continue
|
||||||
|
height = item['height']
|
||||||
|
if from_height is not None and from_height > height > 0:
|
||||||
|
continue
|
||||||
|
if to_height is not None and (height >= to_height or height <= 0):
|
||||||
|
continue
|
||||||
tx_hash = item['txid']
|
tx_hash = item['txid']
|
||||||
tx = self.db.get_transaction(tx_hash)
|
tx = self.db.get_transaction(tx_hash)
|
||||||
tx_fee = item['fee_sat']
|
tx_fee = item['fee_sat']
|
||||||
@@ -1005,6 +1013,8 @@ class Abstract_Wallet(AddressSynchronizer, ABC):
|
|||||||
summary = {
|
summary = {
|
||||||
'start_date': start_date,
|
'start_date': start_date,
|
||||||
'end_date': end_date,
|
'end_date': end_date,
|
||||||
|
'from_height': from_height,
|
||||||
|
'to_height': to_height,
|
||||||
'start_balance': Satoshis(start_balance),
|
'start_balance': Satoshis(start_balance),
|
||||||
'end_balance': Satoshis(end_balance),
|
'end_balance': Satoshis(end_balance),
|
||||||
'incoming': Satoshis(income),
|
'incoming': Satoshis(income),
|
||||||
|
|||||||
Reference in New Issue
Block a user