Skip to content

Commit dd4f2fc

Browse files
committed
app: Add relay fee setting
Add a relay fee to settings and allow changing. The fee is not yet used.
1 parent e1ef1ff commit dd4f2fc

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed

tinywallet/tinywallet/app.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
from decred.dcr import constants as DCR
1515
from decred.dcr.dcrdata import DcrdataBlockchain
16+
from decred.dcr.txscript import DefaultRelayFeePerKb
1617
from decred.util import chains, database, helpers
1718
from decred.wallet.wallet import Wallet
1819
from tinywallet import config, qutilities as Q, screens, ui
@@ -273,6 +274,8 @@ def loadSettings(self):
273274
self.settings[DB.dcrdata] = config.NetworkDefaults[self.cfg.netParams.Name][
274275
"dcrdata"
275276
].encode()
277+
if DB.relayFee not in self.settings:
278+
self.settings[DB.relayFee] = int(DefaultRelayFeePerKb)
276279

277280
def registerSignal(self, sig, cb, *a, **k):
278281
"""

tinywallet/tinywallet/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ class DB:
102102
wallet = "wallet".encode()
103103
theme = "theme".encode()
104104
dcrdata = "dcrdata".encode()
105+
relayFee = "relayfee".encode()
105106

106107

107108
tinyConfig = None

tinywallet/tinywallet/screens.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1103,6 +1103,16 @@ def __init__(self):
11031103
self.layout.addWidget(wgt)
11041104
grid.setColumnStretch(0, 1)
11051105
row = 0
1106+
grid.addWidget(Q.makeLabel("Relay Fee", 14, Q.ALIGN_LEFT), row, 0)
1107+
row += 1
1108+
self.relayFeeField = QtWidgets.QLineEdit(str(app.settings[DB.relayFee]))
1109+
lbl = Q.makeLabel(" atoms / kb ", 14)
1110+
wgt, _ = Q.makeRow(self.relayFeeField, lbl)
1111+
grid.addWidget(wgt, row, 0)
1112+
bttn = app.getButton(SMALL, "change")
1113+
bttn.clicked.connect(self.relayFeeChangeClicked)
1114+
grid.addWidget(bttn, row, 1)
1115+
row += 1
11061116
grid.addWidget(Q.makeLabel("Dcrdata URL", 14, Q.ALIGN_LEFT), row, 0)
11071117
row += 1
11081118
self.dcrdataField = QtWidgets.QLineEdit(app.settings[DB.dcrdata].decode())
@@ -1113,6 +1123,29 @@ def __init__(self):
11131123

11141124
self.layout.addStretch(1)
11151125

1126+
def relayFeeChangeClicked(self, e=None):
1127+
"""
1128+
Qt slot connected to relay fee change button clicked signal.
1129+
Changes the relay fee.
1130+
"""
1131+
1132+
fee = int(self.relayFeeField.text())
1133+
if fee <= 0:
1134+
app.appWindow.showError("fee cannot be less than or equal to zero")
1135+
self.relayFeeField.setText(str(app.settings[DB.relayFee]))
1136+
return
1137+
1138+
# In documentation, a high fee is considered to be 1e4 * 1000 / kb.
1139+
highFee = int(1e4 * 1000)
1140+
if fee > highFee:
1141+
app.appWindow.showError(f"fee cannot be higher than {highFee}")
1142+
self.relayFeeField.setText(str(app.settings[DB.relayFee]))
1143+
return
1144+
1145+
app.settings[DB.relayFee] = fee
1146+
log.info(f"relay fee changed to {fee}")
1147+
app.appWindow.showSuccess("fee changed")
1148+
11161149
def dcrdataChangeClicked(self, e=None):
11171150
"""
11181151
Qt slot connected to dcrdata URL submission button clicked signal.

0 commit comments

Comments
 (0)