1
0

simple_config: factor out self.decimal_point and self.get_decimal_point() in favor of self.BTC_AMOUNTS_DECIMAL_POINT

This commit is contained in:
Sander van Grieken
2025-11-25 12:24:06 +01:00
parent c8dc4a557c
commit 0f2a41e078
8 changed files with 15 additions and 21 deletions

View File

@@ -387,4 +387,4 @@ class QEConfig(AuthMixin, QObject):
@pyqtSlot('quint64', result=float) @pyqtSlot('quint64', result=float)
def satsToUnits(self, satoshis): def satsToUnits(self, satoshis):
return satoshis / pow(10, self.config.decimal_point) return satoshis / pow(10, self.config.BTC_AMOUNTS_DECIMAL_POINT)

View File

@@ -1005,7 +1005,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener):
return self.config.format_fee_rate(fee_rate) return self.config.format_fee_rate(fee_rate)
def get_decimal_point(self): def get_decimal_point(self):
return self.config.get_decimal_point() return self.config.BTC_AMOUNTS_DECIMAL_POINT
def base_unit(self): def base_unit(self):
return self.config.get_base_unit() return self.config.get_base_unit()

View File

@@ -97,7 +97,7 @@ class SettingsDialog(QDialog, QtEventListener):
nz_label = HelpLabel.from_configvar(self.config.cv.BTC_AMOUNTS_FORCE_NZEROS_AFTER_DECIMAL_POINT) nz_label = HelpLabel.from_configvar(self.config.cv.BTC_AMOUNTS_FORCE_NZEROS_AFTER_DECIMAL_POINT)
nz = QSpinBox() nz = QSpinBox()
nz.setMinimum(0) nz.setMinimum(0)
nz.setMaximum(self.config.decimal_point) nz.setMaximum(self.config.BTC_AMOUNTS_DECIMAL_POINT)
nz.setValue(self.config.num_zeros) nz.setValue(self.config.num_zeros)
if not self.config.cv.BTC_AMOUNTS_FORCE_NZEROS_AFTER_DECIMAL_POINT.is_modifiable(): if not self.config.cv.BTC_AMOUNTS_FORCE_NZEROS_AFTER_DECIMAL_POINT.is_modifiable():
for w in [nz, nz_label]: w.setEnabled(False) for w in [nz, nz_label]: w.setEnabled(False)
@@ -205,7 +205,7 @@ class SettingsDialog(QDialog, QtEventListener):
if self.config.get_base_unit() == unit_result: if self.config.get_base_unit() == unit_result:
return return
self.config.set_base_unit(unit_result) self.config.set_base_unit(unit_result)
nz.setMaximum(self.config.decimal_point) nz.setMaximum(self.config.BTC_AMOUNTS_DECIMAL_POINT)
self.app.refresh_tabs_signal.emit() self.app.refresh_tabs_signal.emit()
self.app.update_status_signal.emit() self.app.update_status_signal.emit()
self.app.refresh_amount_edits_signal.emit() self.app.refresh_amount_edits_signal.emit()

View File

@@ -615,7 +615,7 @@ class ElectrumGui(BaseElectrumGui, EventListener):
x = Decimal(text) x = Decimal(text)
except Exception: except Exception:
return None return None
power = pow(10, self.config.get_decimal_point()) power = pow(10, self.config.BTC_AMOUNTS_DECIMAL_POINT)
return int(power * x) return int(power * x)
def read_invoice(self): def read_invoice(self):

View File

@@ -557,7 +557,7 @@ class PaymentIdentifier(Logger):
raise Exception("Amount is empty") raise Exception("Amount is empty")
if parse_max_spend(x): if parse_max_spend(x):
return x return x
p = pow(10, self.config.get_decimal_point()) p = pow(10, self.config.BTC_AMOUNTS_DECIMAL_POINT)
try: try:
return int(p * Decimal(x)) return int(p * Decimal(x))
except InvalidOperation: except InvalidOperation:

View File

@@ -518,7 +518,7 @@ class BitBox02Client(HardwareClientBase):
format_unit = bitbox02.btc.BTCSignInitRequest.FormatUnit.DEFAULT format_unit = bitbox02.btc.BTCSignInitRequest.FormatUnit.DEFAULT
# Base unit is configured to be "sat": # Base unit is configured to be "sat":
if self.config.get_decimal_point() == 0: if self.config.BTC_AMOUNTS_DECIMAL_POINT == 0:
format_unit = bitbox02.btc.BTCSignInitRequest.FormatUnit.SAT format_unit = bitbox02.btc.BTCSignInitRequest.FormatUnit.SAT
sigs = self.bitbox02_device.btc_sign( sigs = self.bitbox02_device.btc_sign(

View File

@@ -324,11 +324,11 @@ class TrezorPlugin(HW_PluginBase):
raise ValueError('unexpected txin type: {}'.format(electrum_txin_type)) raise ValueError('unexpected txin type: {}'.format(electrum_txin_type))
def get_trezor_amount_unit(self): def get_trezor_amount_unit(self):
if self.config.decimal_point == 0: if self.config.BTC_AMOUNTS_DECIMAL_POINT == 0:
return AmountUnit.SATOSHI return AmountUnit.SATOSHI
elif self.config.decimal_point == 2: elif self.config.BTC_AMOUNTS_DECIMAL_POINT == 2:
return AmountUnit.MICROBITCOIN return AmountUnit.MICROBITCOIN
elif self.config.decimal_point == 5: elif self.config.BTC_AMOUNTS_DECIMAL_POINT == 5:
return AmountUnit.MILLIBITCOIN return AmountUnit.MILLIBITCOIN
else: else:
return AmountUnit.BITCOIN return AmountUnit.BITCOIN

View File

@@ -217,12 +217,10 @@ class SimpleConfig(Logger):
self._check_dependent_keys() self._check_dependent_keys()
# units and formatting # units and formatting
# FIXME is this duplication (dp, nz, post_sat, thou_sep) due to performance reasons??
self.decimal_point = self.BTC_AMOUNTS_DECIMAL_POINT
try: try:
decimal_point_to_base_unit_name(self.decimal_point) decimal_point_to_base_unit_name(self.BTC_AMOUNTS_DECIMAL_POINT)
except UnknownBaseUnit: except UnknownBaseUnit:
self.decimal_point = DECIMAL_POINT_DEFAULT self.BTC_AMOUNTS_DECIMAL_POINT = DECIMAL_POINT_DEFAULT
self.num_zeros = self.BTC_AMOUNTS_FORCE_NZEROS_AFTER_DECIMAL_POINT self.num_zeros = self.BTC_AMOUNTS_FORCE_NZEROS_AFTER_DECIMAL_POINT
self.amt_precision_post_satoshi = self.BTC_AMOUNTS_PREC_POST_SAT self.amt_precision_post_satoshi = self.BTC_AMOUNTS_PREC_POST_SAT
self.amt_add_thousands_sep = self.BTC_AMOUNTS_ADD_THOUSANDS_SEP self.amt_add_thousands_sep = self.BTC_AMOUNTS_ADD_THOUSANDS_SEP
@@ -530,7 +528,7 @@ class SimpleConfig(Logger):
return format_satoshis( return format_satoshis(
amount_sat, amount_sat,
num_zeros=self.num_zeros, num_zeros=self.num_zeros,
decimal_point=self.decimal_point, decimal_point=self.BTC_AMOUNTS_DECIMAL_POINT,
is_diff=is_diff, is_diff=is_diff,
whitespaces=whitespaces, whitespaces=whitespaces,
precision=precision, precision=precision,
@@ -545,15 +543,11 @@ class SimpleConfig(Logger):
return format_fee_satoshis(fee_rate/1000, num_zeros=self.num_zeros) + f" {util.UI_UNIT_NAME_FEERATE_SAT_PER_VBYTE}" return format_fee_satoshis(fee_rate/1000, num_zeros=self.num_zeros) + f" {util.UI_UNIT_NAME_FEERATE_SAT_PER_VBYTE}"
def get_base_unit(self): def get_base_unit(self):
return decimal_point_to_base_unit_name(self.decimal_point) return decimal_point_to_base_unit_name(self.BTC_AMOUNTS_DECIMAL_POINT)
def set_base_unit(self, unit): def set_base_unit(self, unit):
assert unit in base_units.keys() assert unit in base_units.keys()
self.decimal_point = base_unit_name_to_decimal_point(unit) self.BTC_AMOUNTS_DECIMAL_POINT = base_unit_name_to_decimal_point(unit)
self.BTC_AMOUNTS_DECIMAL_POINT = self.decimal_point
def get_decimal_point(self):
return self.decimal_point
def get_nostr_relays(self) -> Sequence[str]: def get_nostr_relays(self) -> Sequence[str]:
relays = [] relays = []