Skip to content

Commit f19978f

Browse files
committed
GUI/Options: Configure acceptnonstddatacarrier using settings
1 parent 46897ed commit f19978f

File tree

4 files changed

+19
-0
lines changed

4 files changed

+19
-0
lines changed

src/qt/optionsdialog.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,12 @@ OptionsDialog::OptionsDialog(QWidget* parent, bool enableWallet)
344344
if (w != wf) datacarriercost->setValue(wf / 4);
345345
});
346346

347+
rejectnonstddatacarrier = new QCheckBox(groupBox_Spamfiltering);
348+
rejectnonstddatacarrier->setText(tr("Ignore data embedded with non-standard formats"));
349+
rejectnonstddatacarrier->setToolTip(tr("Some attempts to spam Bitcoin intentionally use non-standard formats in an attempt to bypass the datacarrier limits. Without this option, %1 will attempt to detect these and enforce the intended limits. By enabling this option, your node will ignore these transactions entirely (when detected) even if they fall within the configured limits otherwise."));
350+
verticalLayout_Spamfiltering->addWidget(rejectnonstddatacarrier);
351+
FixTabOrder(rejectnonstddatacarrier);
352+
347353
dustrelayfee = new BitcoinAmountField(groupBox_Spamfiltering);
348354
CreateOptionUI(verticalLayout_Spamfiltering, dustrelayfee, tr("Ignore transactions with values that would cost more to spend at a fee rate of %s per kvB (\"dust\")."));
349355

@@ -708,6 +714,7 @@ void OptionsDialog::setMapper()
708714
mapper->addMapping(maxscriptsize, OptionsModel::maxscriptsize);
709715
mapper->addMapping(datacarriercost, OptionsModel::datacarriercost);
710716
mapper->addMapping(datacarriersize, OptionsModel::datacarriersize);
717+
mapper->addMapping(rejectnonstddatacarrier, OptionsModel::rejectnonstddatacarrier);
711718
mapper->addMapping(dustrelayfee, OptionsModel::dustrelayfee);
712719

713720
QVariant current_dustdynamic = model->data(model->index(OptionsModel::dustdynamic, 0), Qt::EditRole);

src/qt/optionsdialog.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ private Q_SLOTS:
121121
QSpinBox *maxscriptsize;
122122
QSpinBox *datacarriersize;
123123
QDoubleSpinBox *datacarriercost;
124+
QCheckBox *rejectnonstddatacarrier;
124125
BitcoinAmountField *dustrelayfee;
125126
QCheckBox *dustdynamic_enable;
126127
QDoubleSpinBox *dustdynamic_multiplier;

src/qt/optionsmodel.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -686,6 +686,8 @@ QVariant OptionsModel::getOption(OptionID option, const std::string& suffix) con
686686
return double(::g_weight_per_data_byte) / WITNESS_SCALE_FACTOR;
687687
case datacarriersize:
688688
return qlonglong(node().mempool().m_opts.max_datacarrier_bytes.value_or(0));
689+
case rejectnonstddatacarrier:
690+
return !node().mempool().m_opts.accept_non_std_datacarrier;
689691
case dustrelayfee:
690692
return qlonglong(node().mempool().m_opts.dust_relay_feerate_floor.GetFeePerK());
691693
case dustdynamic:
@@ -1222,6 +1224,14 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value, const std::
12221224
}
12231225
}
12241226
break;
1227+
case rejectnonstddatacarrier:
1228+
if (changed()) {
1229+
// This option is inverted
1230+
const bool new_value = ! value.toBool();
1231+
node().updateRwSetting("acceptnonstddatacarrier" + suffix, new_value);
1232+
node().mempool().m_opts.accept_non_std_datacarrier = new_value;
1233+
}
1234+
break;
12251235
case dustrelayfee:
12261236
if (changed()) {
12271237
CAmount nNv = value.toLongLong();

src/qt/optionsmodel.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ class OptionsModel : public QAbstractListModel
100100
maxscriptsize,
101101
datacarriercost, // double
102102
datacarriersize,
103+
rejectnonstddatacarrier, // bool
103104
dustrelayfee,
104105
dustdynamic, // QString
105106
blockmintxfee,

0 commit comments

Comments
 (0)