From 0df42fe046029fca9c92c20037a4f823a1709244 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Sat, 10 Feb 2018 15:03:45 +0100 Subject: [PATCH] use Decimal for exchange rates --- lib/exchange_rate.py | 2 +- lib/wallet.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/exchange_rate.py b/lib/exchange_rate.py index 5003721d0..fbd8658e5 100644 --- a/lib/exchange_rate.py +++ b/lib/exchange_rate.py @@ -488,7 +488,7 @@ class FxThread(ThreadJob): if rate is None and (datetime.today().date() - d_t.date()).days <= 2: rate = self.exchange.quotes.get(self.ccy) self.history_used_spot = True - return rate + return Decimal(rate) if rate is not None else None def historical_value_str(self, satoshis, d_t): rate = self.history_rate(d_t) diff --git a/lib/wallet.py b/lib/wallet.py index 96a3b7605..6568aa9b7 100644 --- a/lib/wallet.py +++ b/lib/wallet.py @@ -38,6 +38,7 @@ import traceback from functools import partial from collections import defaultdict from numbers import Number +from decimal import Decimal import sys @@ -915,7 +916,6 @@ class Abstract_Wallet(PrintError): return h2 def export_history(self, domain=None, from_timestamp=None, to_timestamp=None, fx=None, show_addresses=False): - from decimal import Decimal from .util import format_time, format_satoshis, timestamp_to_datetime h = self.get_history(domain) out = [] @@ -1607,7 +1607,7 @@ class Abstract_Wallet(PrintError): tx = self.transactions[txid] out_value = sum([ (value if not self.is_mine(address) else 0) for otype, address, value in tx.outputs() ]) try: - return out_value/1e8 * (price_func(timestamp) - self.average_price(tx, price_func)) + return out_value/Decimal(COIN) * (price_func(timestamp) - self.average_price(tx, price_func)) except: return None