Skip to content

Commit 557d89b

Browse files
committed
qml: refactor QEConfig.unitsToSats to QEConfig.baseunitStrToAmount and
QEConfig.satsToUnits to QEConfig.amountToBaseunitStr with the latter now also taking a QEAmount instance
1 parent 1abcf00 commit 557d89b

5 files changed

Lines changed: 17 additions & 11 deletions

File tree

electrum/gui/qml/components/InvoiceDialog.qml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ ElDialog {
469469
enabled: !invoice.isSaved && invoice.canSave
470470
onClicked: {
471471
if (invoice.amount.isEmpty) {
472-
invoice.amountOverride = Config.unitsToSats(amountBtc.text)
472+
invoice.amountOverride = Config.baseunitStrToAmount(amountBtc.text)
473473
if (amountMax.checked)
474474
invoice.amountOverride.isMax = true
475475
}
@@ -487,7 +487,7 @@ ElDialog {
487487
enabled: invoice.invoiceType != Invoice.Invalid && invoice.canPay
488488
onClicked: {
489489
if (invoice.amount.isEmpty) {
490-
invoice.amountOverride = Config.unitsToSats(amountBtc.text)
490+
invoice.amountOverride = Config.baseunitStrToAmount(amountBtc.text)
491491
if (amountMax.checked)
492492
invoice.amountOverride.isMax = true
493493
}

electrum/gui/qml/components/WalletMainView.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ Item {
131131
}
132132

133133
function createRequest(lightning, reuse_address) {
134-
var qamt = Config.unitsToSats(_request_amount)
134+
var qamt = Config.baseunitStrToAmount(_request_amount)
135135
Daemon.currentWallet.createRequest(qamt, _request_description, _request_expiry, lightning, reuse_address)
136136
}
137137

electrum/gui/qml/components/controls/BtcField.qml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ TextField {
1818

1919
property Amount textAsSats
2020
onTextChanged: {
21-
textAsSats = Config.unitsToSats(amount.text)
21+
textAsSats = Config.baseunitStrToAmount(amount.text)
2222
if (fiatfield.activeFocus)
2323
return
2424
fiatfield.text = text == '' ? '' : Daemon.fx.fiatValue(amount.textAsSats)
@@ -28,7 +28,7 @@ TextField {
2828
target: Config
2929
function onBaseUnitChanged() {
3030
amount.text = amount.textAsSats.msatsInt != 0
31-
? Config.satsToUnits(amount.textAsSats)
31+
? Config.amountToBaseunitStr(amount.textAsSats)
3232
: ''
3333
}
3434
}

electrum/gui/qml/components/controls/FiatField.qml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ TextField {
1919
if (amountFiat.activeFocus)
2020
btcfield.text = text == ''
2121
? ''
22-
: Config.satsToUnits(Daemon.fx.satoshiValue(amountFiat.text))
22+
: Config.amountToBaseunitStr(parseInt(Daemon.fx.satoshiValue(amountFiat.text)))
2323
}
2424

2525
Connections {
2626
target: Daemon.fx
2727
function onQuotesUpdated() {
2828
amountFiat.text = btcfield.text == ''
2929
? ''
30-
: Daemon.fx.fiatValue(Config.unitsToSats(btcfield.text))
30+
: Daemon.fx.fiatValue(Config.baseunitStrToAmount(btcfield.text))
3131
}
3232
}
3333

electrum/gui/qml/qeconfig.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ def formatMilliSats(self, amount, with_unit=False):
410410
return self.config.format_amount(sats, precision=precision)
411411

412412
@pyqtSlot(str, result=QEAmount)
413-
def unitsToSats(self, unitAmount):
413+
def baseunitStrToAmount(self, unitAmount):
414414
self._amount = QEAmount()
415415
try:
416416
x = Decimal(unitAmount)
@@ -422,6 +422,12 @@ def unitsToSats(self, unitAmount):
422422
self._amount = QEAmount(amount_msat=msat_max_prec_amount)
423423
return self._amount
424424

425-
@pyqtSlot('quint64', result=float)
426-
def satsToUnits(self, satoshis):
427-
return satoshis / pow(10, self.config.BTC_AMOUNTS_DECIMAL_POINT)
425+
@pyqtSlot('quint64', result=str)
426+
@pyqtSlot(QEAmount, result=str)
427+
def amountToBaseunitStr(self, amount) -> str:
428+
assert isinstance(amount, (QEAmount, int))
429+
if isinstance(amount, QEAmount):
430+
satoshis = Decimal(amount.msatsInt) / 1000
431+
elif isinstance(amount, int):
432+
satoshis = Decimal(amount)
433+
return str(satoshis / pow(10, self.config.BTC_AMOUNTS_DECIMAL_POINT))

0 commit comments

Comments
 (0)