mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-09-01 01:35:20 +00:00
util: small clean-up for format_satoshis
This commit is contained in:
parent
f91674992f
commit
b6db201570
6 changed files with 46 additions and 11 deletions
|
@ -293,7 +293,7 @@ class ElectrumWindow(App):
|
||||||
if rate.is_nan():
|
if rate.is_nan():
|
||||||
return ''
|
return ''
|
||||||
satoshis = int(pow(10,8) * Decimal(fiat_amount) / Decimal(rate))
|
satoshis = int(pow(10,8) * Decimal(fiat_amount) / Decimal(rate))
|
||||||
return format_satoshis_plain(satoshis, self.decimal_point())
|
return format_satoshis_plain(satoshis, decimal_point=self.decimal_point())
|
||||||
|
|
||||||
def get_amount(self, amount_str):
|
def get_amount(self, amount_str):
|
||||||
a, u = amount_str.split()
|
a, u = amount_str.split()
|
||||||
|
@ -909,17 +909,23 @@ class ElectrumWindow(App):
|
||||||
amount = tx.output_value()
|
amount = tx.output_value()
|
||||||
__, x_fee_amount = run_hook('get_tx_extra_fee', self.wallet, tx) or (None, 0)
|
__, x_fee_amount = run_hook('get_tx_extra_fee', self.wallet, tx) or (None, 0)
|
||||||
amount_after_all_fees = amount - x_fee_amount
|
amount_after_all_fees = amount - x_fee_amount
|
||||||
return format_satoshis_plain(amount_after_all_fees, self.decimal_point())
|
return format_satoshis_plain(amount_after_all_fees, decimal_point=self.decimal_point())
|
||||||
|
|
||||||
def format_amount(self, x, is_diff=False, whitespaces=False):
|
def format_amount(self, x, is_diff=False, whitespaces=False):
|
||||||
return format_satoshis(x, 0, self.decimal_point(), is_diff=is_diff, whitespaces=whitespaces)
|
return format_satoshis(
|
||||||
|
x,
|
||||||
|
num_zeros=0,
|
||||||
|
decimal_point=self.decimal_point(),
|
||||||
|
is_diff=is_diff,
|
||||||
|
whitespaces=whitespaces,
|
||||||
|
)
|
||||||
|
|
||||||
def format_amount_and_units(self, x) -> str:
|
def format_amount_and_units(self, x) -> str:
|
||||||
if x is None:
|
if x is None:
|
||||||
return 'none'
|
return 'none'
|
||||||
if x == '!':
|
if x == '!':
|
||||||
return 'max'
|
return 'max'
|
||||||
return format_satoshis_plain(x, self.decimal_point()) + ' ' + self.base_unit
|
return format_satoshis_plain(x, decimal_point=self.decimal_point()) + ' ' + self.base_unit
|
||||||
|
|
||||||
def format_fee_rate(self, fee_rate):
|
def format_fee_rate(self, fee_rate):
|
||||||
# fee_rate is in sat/kB
|
# fee_rate is in sat/kB
|
||||||
|
|
|
@ -110,7 +110,7 @@ class BTCAmountEdit(AmountEdit):
|
||||||
if amount is None:
|
if amount is None:
|
||||||
self.setText(" ") # Space forces repaint in case units changed
|
self.setText(" ") # Space forces repaint in case units changed
|
||||||
else:
|
else:
|
||||||
self.setText(format_satoshis_plain(amount, self.decimal_point()))
|
self.setText(format_satoshis_plain(amount, decimal_point=self.decimal_point()))
|
||||||
|
|
||||||
|
|
||||||
class FeerateEdit(BTCAmountEdit):
|
class FeerateEdit(BTCAmountEdit):
|
||||||
|
|
|
@ -54,8 +54,7 @@ from electrum import (keystore, ecc, constants, util, bitcoin, commands,
|
||||||
from electrum.bitcoin import COIN, is_address
|
from electrum.bitcoin import COIN, is_address
|
||||||
from electrum.plugin import run_hook, BasePlugin
|
from electrum.plugin import run_hook, BasePlugin
|
||||||
from electrum.i18n import _
|
from electrum.i18n import _
|
||||||
from electrum.util import (format_time, format_satoshis, format_fee_satoshis,
|
from electrum.util import (format_time,
|
||||||
format_satoshis_plain,
|
|
||||||
UserCancelled, profiler,
|
UserCancelled, profiler,
|
||||||
bh2u, bfh, InvalidPassword,
|
bh2u, bfh, InvalidPassword,
|
||||||
UserFacingException,
|
UserFacingException,
|
||||||
|
|
|
@ -614,7 +614,13 @@ class SimpleConfig(Logger):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def format_amount(self, x, is_diff=False, whitespaces=False):
|
def format_amount(self, x, is_diff=False, whitespaces=False):
|
||||||
return format_satoshis(x, self.num_zeros, self.decimal_point, is_diff=is_diff, whitespaces=whitespaces)
|
return format_satoshis(
|
||||||
|
x,
|
||||||
|
num_zeros=self.num_zeros,
|
||||||
|
decimal_point=self.decimal_point,
|
||||||
|
is_diff=is_diff,
|
||||||
|
whitespaces=whitespaces,
|
||||||
|
)
|
||||||
|
|
||||||
def format_amount_and_units(self, amount):
|
def format_amount_and_units(self, amount):
|
||||||
return self.format_amount(amount) + ' '+ self.get_base_unit()
|
return self.format_amount(amount) + ' '+ self.get_base_unit()
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
|
||||||
from electrum.util import (format_satoshis, format_fee_satoshis, parse_URI,
|
from electrum.util import (format_satoshis, format_fee_satoshis, parse_URI,
|
||||||
is_hash256_str, chunks, is_ip_address, list_enabled_bits)
|
is_hash256_str, chunks, is_ip_address, list_enabled_bits,
|
||||||
|
format_satoshis_plain)
|
||||||
|
|
||||||
from . import ElectrumTestCase
|
from . import ElectrumTestCase
|
||||||
|
|
||||||
|
@ -14,6 +15,12 @@ class TestUtil(ElectrumTestCase):
|
||||||
def test_format_satoshis_negative(self):
|
def test_format_satoshis_negative(self):
|
||||||
self.assertEqual("-0.00001234", format_satoshis(-1234))
|
self.assertEqual("-0.00001234", format_satoshis(-1234))
|
||||||
|
|
||||||
|
def test_format_satoshis_to_mbtc(self):
|
||||||
|
self.assertEqual("0.01234", format_satoshis(1234, decimal_point=5))
|
||||||
|
|
||||||
|
def test_format_satoshis_decimal(self):
|
||||||
|
self.assertEqual("0.00001234", format_satoshis(Decimal(1234)))
|
||||||
|
|
||||||
def test_format_fee_float(self):
|
def test_format_fee_float(self):
|
||||||
self.assertEqual("1.7", format_fee_satoshis(1700/1000))
|
self.assertEqual("1.7", format_fee_satoshis(1700/1000))
|
||||||
|
|
||||||
|
@ -45,6 +52,15 @@ class TestUtil(ElectrumTestCase):
|
||||||
def test_format_satoshis_diff_negative(self):
|
def test_format_satoshis_diff_negative(self):
|
||||||
self.assertEqual("-0.00001234", format_satoshis(-1234, is_diff=True))
|
self.assertEqual("-0.00001234", format_satoshis(-1234, is_diff=True))
|
||||||
|
|
||||||
|
def test_format_satoshis_plain(self):
|
||||||
|
self.assertEqual("0.00001234", format_satoshis_plain(1234))
|
||||||
|
|
||||||
|
def test_format_satoshis_plain_decimal(self):
|
||||||
|
self.assertEqual("0.00001234", format_satoshis_plain(Decimal(1234)))
|
||||||
|
|
||||||
|
def test_format_satoshis_plain_to_mbtc(self):
|
||||||
|
self.assertEqual("0.01234", format_satoshis_plain(1234, decimal_point=5))
|
||||||
|
|
||||||
def _do_test_parse_URI(self, uri, expected):
|
def _do_test_parse_URI(self, uri, expected):
|
||||||
result = parse_URI(uri)
|
result = parse_URI(uri)
|
||||||
self.assertEqual(expected, result)
|
self.assertEqual(expected, result)
|
||||||
|
|
|
@ -582,7 +582,7 @@ def chunks(items, size: int):
|
||||||
yield items[i: i + size]
|
yield items[i: i + size]
|
||||||
|
|
||||||
|
|
||||||
def format_satoshis_plain(x, decimal_point = 8) -> str:
|
def format_satoshis_plain(x, *, decimal_point=8) -> str:
|
||||||
"""Display a satoshi amount scaled. Always uses a '.' as a decimal
|
"""Display a satoshi amount scaled. Always uses a '.' as a decimal
|
||||||
point and has no thousands separator"""
|
point and has no thousands separator"""
|
||||||
if x == '!':
|
if x == '!':
|
||||||
|
@ -594,7 +594,15 @@ def format_satoshis_plain(x, decimal_point = 8) -> str:
|
||||||
DECIMAL_POINT = localeconv()['decimal_point'] # type: str
|
DECIMAL_POINT = localeconv()['decimal_point'] # type: str
|
||||||
|
|
||||||
|
|
||||||
def format_satoshis(x, num_zeros=0, decimal_point=8, precision=None, is_diff=False, whitespaces=False) -> str:
|
def format_satoshis(
|
||||||
|
x, # in satoshis
|
||||||
|
*,
|
||||||
|
num_zeros=0,
|
||||||
|
decimal_point=8,
|
||||||
|
precision=None,
|
||||||
|
is_diff=False,
|
||||||
|
whitespaces=False,
|
||||||
|
) -> str:
|
||||||
if x is None:
|
if x is None:
|
||||||
return 'unknown'
|
return 'unknown'
|
||||||
if x == '!':
|
if x == '!':
|
||||||
|
|
Loading…
Add table
Reference in a new issue