From 2b9e07c44f9a90fb535c16c8fdfec0e6a250b3d1 Mon Sep 17 00:00:00 2001 From: Luke Dashjr Date: Sat, 21 May 2022 05:41:56 +0000 Subject: [PATCH] Qt/Options: Configure limitancestorsize using rwconf --- src/qt/optionsdialog.cpp | 6 ++++++ src/qt/optionsdialog.h | 1 + src/qt/optionsmodel.cpp | 11 +++++++++++ src/qt/optionsmodel.h | 1 + 4 files changed, 19 insertions(+) diff --git a/src/qt/optionsdialog.cpp b/src/qt/optionsdialog.cpp index d7621764da..6f0ca3a2fa 100644 --- a/src/qt/optionsdialog.cpp +++ b/src/qt/optionsdialog.cpp @@ -240,6 +240,11 @@ OptionsDialog::OptionsDialog(QWidget* parent, bool enableWallet) limitancestorcount->setMaximum(std::numeric_limits::max()); CreateOptionUI(verticalLayout_Spamfiltering, limitancestorcount, tr("Ignore transactions with %s or more unconfirmed ancestors.")); + limitancestorsize = new QSpinBox(groupBox_Spamfiltering); + limitancestorsize->setMinimum(1); + limitancestorsize->setMaximum(std::numeric_limits::max()); + CreateOptionUI(verticalLayout_Spamfiltering, limitancestorsize, tr("Ignore transactions whose size with all unconfirmed ancestors exceeds %s kilobytes.")); + verticalLayout_Mempool->addWidget(groupBox_Spamfiltering); verticalLayout_Mempool->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding)); @@ -486,6 +491,7 @@ void OptionsDialog::setMapper() mapper->addMapping(bytespersigop, OptionsModel::bytespersigop); mapper->addMapping(bytespersigopstrict, OptionsModel::bytespersigopstrict); mapper->addMapping(limitancestorcount, OptionsModel::limitancestorcount); + mapper->addMapping(limitancestorsize, OptionsModel::limitancestorsize); /* Window */ #ifndef Q_OS_MACOS diff --git a/src/qt/optionsdialog.h b/src/qt/optionsdialog.h index 0a8ec0164d..e5e6dee159 100644 --- a/src/qt/optionsdialog.h +++ b/src/qt/optionsdialog.h @@ -97,6 +97,7 @@ private: QCheckBox *rejectunknownscripts; QSpinBox *bytespersigop, *bytespersigopstrict; QSpinBox *limitancestorcount; + QSpinBox *limitancestorsize; }; #endif // BITCOIN_QT_OPTIONSDIALOG_H diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index c7e1d02113..282f0bd9fd 100644 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -627,6 +627,8 @@ QVariant OptionsModel::getOption(OptionID option, const std::string& suffix) con return nBytesPerSigOpStrict; case limitancestorcount: return qlonglong(node().mempool().m_limits.ancestor_count); + case limitancestorsize: + return qlonglong(node().mempool().m_limits.ancestor_size_vbytes / 1'000); default: return QVariant(); } @@ -1028,6 +1030,15 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value, const std:: gArgs.ModifyRWConfigFile("limitancestorcount", strNv); } break; + case limitancestorsize: + if (changed()) { + long long nNv = value.toLongLong(); + std::string strNv = value.toString().toStdString(); + node().mempool().m_limits.ancestor_size_vbytes = nNv * 1'000; + gArgs.ForceSetArg("-limitancestorsize", strNv); + gArgs.ModifyRWConfigFile("limitancestorsize", strNv); + } + break; default: break; } diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h index 849acb8517..d8af8d68b4 100644 --- a/src/qt/optionsmodel.h +++ b/src/qt/optionsmodel.h @@ -88,6 +88,7 @@ public: bytespersigop, bytespersigopstrict, limitancestorcount, + limitancestorsize, OptionIDRowCount, };