From 43dc3063894e46f9bc1e610598931a03b18b46ec Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Wed, 8 Feb 2017 00:25:42 +0000 Subject: [PATCH] Qt/Options: Configure dustrelayfee using rwconf --- src/qt/optionsdialog.cpp | 4 ++++ src/qt/optionsdialog.h | 1 + src/qt/optionsmodel.cpp | 9 +++++++++ src/qt/optionsmodel.h | 1 + src/txmempool.h | 2 +- 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp index eccb65e79c..2f744dec0b 100644 --- a/src/qt/optionsdialog.cpp +++ b/src/qt/optionsdialog.cpp @@ -301,6 +301,9 @@ OptionsDialog::OptionsDialog(QWidget* parent, bool enableWallet) datacarriersize->setToolTip(tr("Since 2014, a specific method for attaching arbitrary data to transactions has been recognised as not requiring space in the coin database. Since it is sometimes impractical to detect small spam disguised as ordinary transactions, it is sometimes considered beneficial to treat these less harmful data attachments as equals to legitimate usage.")); CreateOptionUI(verticalLayout_Spamfiltering, datacarriersize, tr("Ignore transactions with additional data larger than %s bytes.")); + dustrelayfee = new BitcoinAmountField(groupBox_Spamfiltering); + CreateOptionUI(verticalLayout_Spamfiltering, dustrelayfee, tr("Ignore transactions with values that would cost more to spend at a fee rate of %s per kB.")); + verticalLayout_Mempool->addWidget(groupBox_Spamfiltering); verticalLayout_Mempool->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding)); @@ -585,6 +588,7 @@ void OptionsDialog::setMapper() mapper->addMapping(limitdescendantsize, OptionsModel::limitdescendantsize); mapper->addMapping(rejectbaremultisig, OptionsModel::rejectbaremultisig); mapper->addMapping(datacarriersize, OptionsModel::datacarriersize); + mapper->addMapping(dustrelayfee, OptionsModel::dustrelayfee); /* Mining tab */ diff --git a/src/qt/optionsdialog.h b/src/qt/optionsdialog.h index 6ffaf9ebb6..94cf45ba3d 100644 --- a/src/qt/optionsdialog.h +++ b/src/qt/optionsdialog.h @@ -114,6 +114,7 @@ private: QSpinBox *limitdescendantsize; QCheckBox *rejectbaremultisig; QSpinBox *datacarriersize; + BitcoinAmountField *dustrelayfee; QSpinBox *blockmaxsize, *blockprioritysize, *blockmaxweight; }; diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index e4aaf6ab7c..6ff0e39b27 100644 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -646,6 +646,8 @@ QVariant OptionsModel::getOption(OptionID option, const std::string& suffix) con return !node().mempool().m_permit_bare_multisig; case datacarriersize: return qlonglong(node().mempool().m_max_datacarrier_bytes.value_or(0)); + case dustrelayfee: + return qlonglong(node().mempool().m_dust_relay_feerate.GetFeePerK()); case blockmaxsize: return qlonglong(gArgs.GetIntArg("-blockmaxsize", DEFAULT_BLOCK_MAX_SIZE) / 1000); case blockprioritysize: @@ -1138,6 +1140,13 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value, const std:: } } break; + case dustrelayfee: + if (changed()) { + CAmount nNv = value.toLongLong(); + gArgs.ModifyRWConfigFile("dustrelayfee", FormatMoney(nNv)); + node().mempool().m_dust_relay_feerate = CFeeRate(nNv); + } + break; case blockmaxsize: case blockprioritysize: case blockmaxweight: diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h index 911111fe6d..143ce6cbaa 100644 --- a/src/qt/optionsmodel.h +++ b/src/qt/optionsmodel.h @@ -96,6 +96,7 @@ public: limitdescendantsize, rejectbaremultisig, // bool datacarriersize, + dustrelayfee, blockmaxsize, blockprioritysize, blockmaxweight, diff --git a/src/txmempool.h b/src/txmempool.h index 9564cce36e..46796804d9 100644 --- a/src/txmempool.h +++ b/src/txmempool.h @@ -466,7 +466,7 @@ public: std::chrono::seconds m_expiry; CFeeRate m_incremental_relay_feerate; CFeeRate m_min_relay_feerate; - const CFeeRate m_dust_relay_feerate; + CFeeRate m_dust_relay_feerate; bool m_permit_bare_multisig; std::optional m_max_datacarrier_bytes; bool m_datacarrier_fullcount;