wowlet: wownero loose-string sweep + P0 send fix. Bump monero submodule -> gui@1ed9d64c (drops feather's monero-checkpoint check_rct_distribution() that made every send throw 'Output distribution size too small'). feather-src: local-node probe + wizard port 18081->34568 (Utils.cpp getDefaultRpcPort, PageNetwork.ui); confirmationsRequired + lock display 10->4 = wownero spendable age (TransactionRow, TxInfoDialog, BalanceDialog, SendWidget); amount precision 12->11 (config, SettingsDialog); tx-pool backlog x2->x5 (5-min blocks); revuo + CCS off default plugins

This commit is contained in:
jwinterm
2026-06-19 14:10:58 -04:00
parent 8686e9bfe8
commit 527bcfae57
12 changed files with 16 additions and 16 deletions
+1 -1
Submodule monero updated: 30e1cfecf5...1ed9d64c33
+1 -1
View File
@@ -1719,7 +1719,7 @@ void MainWindow::onTxPoolBacklog(const QVector<quint64> &backlog, quint64 origin
QString("There is a backlog of %1 blocks (≈ %2 minutes) in the transaction pool " QString("There is a backlog of %1 blocks (≈ %2 minutes) in the transaction pool "
"at the maximum automatic fee level.\n\n" "at the maximum automatic fee level.\n\n"
"Do you want to increase the fee for this transaction?") "Do you want to increase the fee for this transaction?")
.arg(QString::number(backlog[1]), QString::number(backlog[1] * 2))); .arg(QString::number(backlog[1]), QString::number(backlog[1] * 5)));
if (button == QMessageBox::Yes) { if (button == QMessageBox::Yes) {
feeLevel = 3; feeLevel = 3;
} }
+1 -1
View File
@@ -222,7 +222,7 @@ void SendWidget::sendClicked() {
} }
if (unlocked_balance == 0) { if (unlocked_balance == 0) {
Utils::showError(this, "Unable to create transaction", QString("No spendable balance.\n\n%1 WOW becomes spendable within 10 blocks (~20 minutes).").arg(WalletManager::displayAmount(total_balance - unlocked_balance)), {"Wait for more balance to unlock.", "Click 'Help' to learn more about how balance works."}, "balance"); Utils::showError(this, "Unable to create transaction", QString("No spendable balance.\n\n%1 WOW becomes spendable within 4 blocks (~20 minutes).").arg(WalletManager::displayAmount(total_balance - unlocked_balance)), {"Wait for more balance to unlock.", "Click 'Help' to learn more about how balance works."}, "balance");
return; return;
} }
+1 -1
View File
@@ -86,7 +86,7 @@ void Settings::setupAppearanceTab() {
}); });
// [Amount precision] // [Amount precision]
for (int i = 0; i <= 12; i++) { for (int i = 0; i <= 11; i++) {
ui->comboBox_amountPrecision->addItem(QString::number(i)); ui->comboBox_amountPrecision->addItem(QString::number(i));
} }
ui->comboBox_amountPrecision->setCurrentIndex(conf()->get(Config::amountPrecision).toInt()); ui->comboBox_amountPrecision->setCurrentIndex(conf()->get(Config::amountPrecision).toInt());
+1 -1
View File
@@ -19,7 +19,7 @@ BalanceDialog::BalanceDialog(QWidget *parent, Wallet *wallet)
connect(m_wallet, &Wallet::balanceUpdated, this, &BalanceDialog::updateBalance); connect(m_wallet, &Wallet::balanceUpdated, this, &BalanceDialog::updateBalance);
ui->label_unconfirmed_help->setHelpText("Unconfirmed balance", "Outputs require 10 confirmations before they become spendable. " ui->label_unconfirmed_help->setHelpText("Unconfirmed balance", "Outputs require 4 confirmations before they become spendable. "
"This will take 20 minutes on average.", "balance"); "This will take 20 minutes on average.", "balance");
ui->label_unconfirmed->setFont(Utils::getMonospaceFont()); ui->label_unconfirmed->setFont(Utils::getMonospaceFont());
+1 -1
View File
@@ -139,7 +139,7 @@ void TxInfoDialog::setData(const TransactionRow &tx) {
if (tx.confirmationsRequired() > tx.confirmations) { if (tx.confirmationsRequired() > tx.confirmations) {
bool mandatoryLock = tx.confirmationsRequired() == 10; bool mandatoryLock = tx.confirmationsRequired() == 4;
QString confsRequired = QString::number(tx.confirmationsRequired() - tx.confirmations); QString confsRequired = QString::number(tx.confirmationsRequired() - tx.confirmations);
ui->label_lock->setText(QString("Lock: Outputs become spendable in %1 blocks (%2)").arg(confsRequired, mandatoryLock ? "consensus rule" : "specified by sender")); ui->label_lock->setText(QString("Lock: Outputs become spendable in %1 blocks (%2)").arg(confsRequired, mandatoryLock ? "consensus rule" : "specified by sender"));
} else { } else {
+1 -1
View File
@@ -39,7 +39,7 @@ QString TransactionRow::displayFee() const
quint64 TransactionRow::confirmationsRequired() const quint64 TransactionRow::confirmationsRequired() const
{ {
return (blockHeight < unlockTime) ? unlockTime - blockHeight : 10; return (blockHeight < unlockTime) ? unlockTime - blockHeight : 4;
} }
QString TransactionRow::date() const QString TransactionRow::date() const
+2 -2
View File
@@ -372,13 +372,13 @@ bool portOpen(const QString &hostname, quint16 port) { // TODO: this call should
quint16 getDefaultRpcPort(NetworkType::Type type) { quint16 getDefaultRpcPort(NetworkType::Type type) {
switch (type) { switch (type) {
case NetworkType::Type::MAINNET: case NetworkType::Type::MAINNET:
return 18081; return 34568;
case NetworkType::Type::TESTNET: case NetworkType::Type::TESTNET:
return 28081; return 28081;
case NetworkType::Type::STAGENET: case NetworkType::Type::STAGENET:
return 38081; return 38081;
} }
return 18081; return 34568;
} }
bool isTorsocks() { bool isTorsocks() {
+2 -2
View File
@@ -69,7 +69,7 @@ static const QHash<Config::ConfigKey, ConfigDirective> configStrings = {
{Config::pruneBlockchain,{QS("pruneBlockchain"), false}}, // full archival by default {Config::pruneBlockchain,{QS("pruneBlockchain"), false}}, // full archival by default
{Config::wownerodPath,{QS("wownerodPath"), ""}}, // optional override; bundled by default {Config::wownerodPath,{QS("wownerodPath"), ""}}, // optional override; bundled by default
{Config::broadcastOverTor,{QS("broadcastOverTor"), true}},// wowlet: --tx-proxy our txs through Tor (hide originating IP) {Config::broadcastOverTor,{QS("broadcastOverTor"), true}},// wowlet: --tx-proxy our txs through Tor (hide originating IP)
{Config::amountPrecision, {QS("amountPrecision"), 12}}, {Config::amountPrecision, {QS("amountPrecision"), 11}},
{Config::dateFormat, {QS("dateFormat"), "yyyy-MM-dd"}}, {Config::dateFormat, {QS("dateFormat"), "yyyy-MM-dd"}},
{Config::timeFormat, {QS("timeFormat"), "HH:mm"}}, {Config::timeFormat, {QS("timeFormat"), "HH:mm"}},
{Config::balanceDisplay, {QS("balanceDisplay"), Config::BalanceDisplay::spendablePlusUnconfirmed}}, {Config::balanceDisplay, {QS("balanceDisplay"), Config::BalanceDisplay::spendablePlusUnconfirmed}},
@@ -124,7 +124,7 @@ static const QHash<Config::ConfigKey, ConfigDirective> configStrings = {
{Config::useLocalTor, {QS("useLocalTor"), false}}, {Config::useLocalTor, {QS("useLocalTor"), false}},
{Config::initSyncThreshold, {QS("initSyncThreshold"), 360}}, {Config::initSyncThreshold, {QS("initSyncThreshold"), 360}},
{Config::enabledPlugins, {QS("enabledPlugins"), QStringList{"tickers", "crowdfunding", "revuo", "calc"}}}, {Config::enabledPlugins, {QS("enabledPlugins"), QStringList{"tickers", "calc"}}},
{Config::restartRequired, {QS("restartRequired"), false}}, {Config::restartRequired, {QS("restartRequired"), false}},
{Config::tickers, {QS("tickers"), QStringList{"WOW", "BTC", "WOW/BTC"}}}, {Config::tickers, {QS("tickers"), QStringList{"WOW", "BTC", "WOW/BTC"}}},
+1 -1
View File
@@ -60,7 +60,7 @@ struct FeatherNode {
return; return;
if (url.port() == -1) if (url.port() == -1)
url.setPort(18081); url.setPort(34568);
}; };
int height; int height;
+1 -1
View File
@@ -153,7 +153,7 @@ void NodeWidget::onCustomAddClicked(){
} }
bool ok; bool ok;
QString text = QInputDialog::getMultiLineText(this, "Add custom node(s).", "One node per line\nE.g: user:password@127.0.0.1:18081", currentNodesText, &ok); QString text = QInputDialog::getMultiLineText(this, "Add custom node(s).", "One node per line\nE.g: user:password@127.0.0.1:34568", currentNodesText, &ok);
if (!ok || text.isEmpty()) { if (!ok || text.isEmpty()) {
return; return;
} }
+3 -3
View File
@@ -111,7 +111,7 @@
<item> <item>
<widget class="QLabel" name="label_nodeDetected"> <widget class="QLabel" name="label_nodeDetected">
<property name="text"> <property name="text">
<string>wowlet detected a local node on port 18081.</string> <string>wowlet detected a local node on port 34568.</string>
</property> </property>
</widget> </widget>
</item> </item>
@@ -178,10 +178,10 @@
<item row="0" column="1"> <item row="0" column="1">
<widget class="QLineEdit" name="line_customNode"> <widget class="QLineEdit" name="line_customNode">
<property name="text"> <property name="text">
<string>127.0.0.1:18081</string> <string>127.0.0.1:34568</string>
</property> </property>
<property name="placeholderText"> <property name="placeholderText">
<string>127.0.0.1:18081</string> <string>127.0.0.1:34568</string>
</property> </property>
</widget> </widget>
</item> </item>