Qt/Options: Configure acceptnonstdtxn using rwconf

This commit is contained in:
Luke Dashjr 2025-02-03 23:20:03 +00:00
parent 8ae6db8db1
commit 5f4b95ab8e
4 changed files with 23 additions and 1 deletions

View File

@ -223,7 +223,11 @@ OptionsDialog::OptionsDialog(QWidget* parent, bool enableWallet)
groupBox_Spamfiltering->setTitle(tr("Spam filtering"));
QVBoxLayout * const verticalLayout_Spamfiltering = new QVBoxLayout(groupBox_Spamfiltering);
// TODO
rejectunknownscripts = new QCheckBox(groupBox_Spamfiltering);
rejectunknownscripts->setText(tr("Ignore unrecognised receiver scripts"));
rejectunknownscripts->setToolTip(tr("With this option enabled, unrecognised receiver (\"pubkey\") scripts will be ignored. Unrecognisable scripts could be used to bypass further spam filters. If your software is outdated, they may also be used to trick you into thinking you were sent bitcoins that will never confirm."));
verticalLayout_Spamfiltering->addWidget(rejectunknownscripts);
FixTabOrder(rejectunknownscripts);
verticalLayout_Mempool->addWidget(groupBox_Spamfiltering);
@ -475,6 +479,8 @@ void OptionsDialog::setMapper()
mapper->addMapping(maxmempool, OptionsModel::maxmempool);
mapper->addMapping(mempoolexpiry, OptionsModel::mempoolexpiry);
mapper->addMapping(rejectunknownscripts, OptionsModel::rejectunknownscripts);
/* Window */
#ifndef Q_OS_MACOS
if (QSystemTrayIcon::isSystemTrayAvailable()) {

View File

@ -14,6 +14,7 @@ class QValidatedLineEdit;
QT_BEGIN_NAMESPACE
class QBoxLayout;
class QCheckBox;
class QDataWidgetMapper;
class QSpinBox;
class QString;
@ -92,6 +93,8 @@ private:
QSpinBox *maxorphantx;
QSpinBox *maxmempool;
QSpinBox *mempoolexpiry;
QCheckBox *rejectunknownscripts;
};
#endif // BITCOIN_QT_OPTIONSDIALOG_H

View File

@ -643,6 +643,8 @@ QVariant OptionsModel::getOption(OptionID option, const std::string& suffix) con
return qlonglong(node().mempool().m_opts.max_size_bytes / 1'000'000);
case mempoolexpiry:
return qlonglong(std::chrono::duration_cast<std::chrono::hours>(node().mempool().m_opts.expiry).count());
case rejectunknownscripts:
return node().mempool().m_opts.require_standard;
default:
return QVariant();
}
@ -1014,6 +1016,16 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value, const std::
}
break;
}
case rejectunknownscripts:
{
if (changed()) {
const bool fNewValue = value.toBool();
node().mempool().m_opts.require_standard = fNewValue;
// This option is inverted in the config:
gArgs.ModifyRWConfigFile("acceptnonstdtxn", strprintf("%d", ! fNewValue));
}
break;
}
default:
break;
}

View File

@ -84,6 +84,7 @@ public:
maxorphantx,
maxmempool,
mempoolexpiry,
rejectunknownscripts, // bool
OptionIDRowCount,
};