Skip to content

Commit dd7fac4

Browse files
2 parents 08c75ad + 6f02bab commit dd7fac4

38 files changed

+326
-329
lines changed

.travis.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,9 @@ before_install:
8181
install:
8282
- set -o errexit; source ./ci/test/04_install.sh
8383
before_script:
84-
- set -o errexit; source ./ci/test/05_before_script.sh
84+
# Temporary workaround for https://github.com/bitcoin/bitcoin/issues/16368
85+
- for i in {1..4}; do echo "$(sleep 500)" ; done &
86+
- set -o errexit; source ./ci/test/05_before_script.sh &> "/dev/null"
8587
script:
8688
- if [ $SECONDS -gt 1200 ]; then set +o errexit; echo "Travis early exit to cache current state"; false; else set -o errexit; source .travis/test_06_script.sh; fi
8789
after_script:

ci/dash/test_unittests.sh

-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export BOOST_TEST_LOG_LEVEL=test_suite
2424

2525
cd build-ci/dashcore-$BUILD_TARGET
2626

27-
bash -c "${CI_WAIT}" & # Print dots in case the unit tests take a long time to run
2827
if [ "$DIRECT_WINE_EXEC_TESTS" = "true" ]; then
2928
# Inside Docker, binfmt isn't working so we can't trust in make invoking windows binaries correctly
3029
wine ./src/test/test_dash.exe

configure.ac

+15-1
Original file line numberDiff line numberDiff line change
@@ -1023,7 +1023,21 @@ AC_CHECK_DECLS([bswap_16, bswap_32, bswap_64],,,
10231023
#include <byteswap.h>
10241024
#endif])
10251025

1026-
AC_CHECK_DECLS([__builtin_clz, __builtin_clzl, __builtin_clzll])
1026+
AC_MSG_CHECKING(for __builtin_clzl)
1027+
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[
1028+
(void) __builtin_clzl(0);
1029+
]])],
1030+
[ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_BUILTIN_CLZL, 1, [Define this symbol if you have __builtin_clzl])],
1031+
[ AC_MSG_RESULT(no)]
1032+
)
1033+
1034+
AC_MSG_CHECKING(for __builtin_clzll)
1035+
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]], [[
1036+
(void) __builtin_clzll(0);
1037+
]])],
1038+
[ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_BUILTIN_CLZLL, 1, [Define this symbol if you have __builtin_clzll])],
1039+
[ AC_MSG_RESULT(no)]
1040+
)
10271041

10281042
dnl Check for mallopt(M_ARENA_MAX) (to set glibc arenas)
10291043
AC_MSG_CHECKING(for mallopt M_ARENA_MAX)

src/crypto/common.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,12 @@ void static inline WriteBE64(unsigned char* ptr, uint64_t x)
8989
/** Return the smallest number n such that (x >> n) == 0 (or 64 if the highest bit in x is set. */
9090
uint64_t static inline CountBits(uint64_t x)
9191
{
92-
#if HAVE_DECL___BUILTIN_CLZL
92+
#if HAVE_BUILTIN_CLZL
9393
if (sizeof(unsigned long) >= sizeof(uint64_t)) {
9494
return x ? 8 * sizeof(unsigned long) - __builtin_clzl(x) : 0;
9595
}
9696
#endif
97-
#if HAVE_DECL___BUILTIN_CLZLL
97+
#if HAVE_BUILTIN_CLZLL
9898
if (sizeof(unsigned long long) >= sizeof(uint64_t)) {
9999
return x ? 8 * sizeof(unsigned long long) - __builtin_clzll(x) : 0;
100100
}

src/index/base.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ template <typename... Args>
2222
static void FatalError(const char* fmt, const Args&... args)
2323
{
2424
std::string strMessage = tfm::format(fmt, args...);
25-
SetMiscWarning(strMessage);
25+
SetMiscWarning(Untranslated(strMessage));
2626
LogPrintf("*** %s\n", strMessage);
2727
AbortError(_("A fatal internal error occurred, see debug.log for details"));
2828
StartShutdown();

src/interfaces/node.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include <netaddress.h> // For Network
1212
#include <support/allocators/secure.h> // For SecureString
1313
#include <uint256.h>
14+
#include <util/translation.h>
1415

1516
#include <functional>
1617
#include <memory>
@@ -171,7 +172,7 @@ class Node
171172
virtual void initParameterInteraction() = 0;
172173

173174
//! Get warnings.
174-
virtual std::string getWarnings() = 0;
175+
virtual bilingual_str getWarnings() = 0;
175176

176177
// Get log flags.
177178
virtual uint64_t getLogCategories() = 0;

src/net_processing.cpp

+14-12
Original file line numberDiff line numberDiff line change
@@ -2119,7 +2119,7 @@ void PeerManagerImpl::ProcessGetData(CNode& pfrom, Peer& peer, const std::atomic
21192119
// mempool entries added before this time have likely expired from mapRelay
21202120
const std::chrono::seconds longlived_mempool_time = GetTime<std::chrono::seconds>() - RELAY_TX_CACHE_TIME;
21212121
// Get last mempool request time
2122-
const std::chrono::seconds mempool_req = !pfrom.RelayAddrsWithConn() ? pfrom.m_tx_relay->m_last_mempool_req.load()
2122+
const std::chrono::seconds mempool_req = pfrom.RelayAddrsWithConn() ? pfrom.m_tx_relay->m_last_mempool_req.load()
21232123
: std::chrono::seconds::min();
21242124

21252125
// Process as many TX items from the front of the getdata queue as
@@ -2823,14 +2823,6 @@ void PeerManagerImpl::ProcessMessage(
28232823
PeerRef peer = GetPeerRef(pfrom.GetId());
28242824
if (peer == nullptr) return;
28252825

2826-
if (!(pfrom.GetLocalServices() & NODE_BLOOM) &&
2827-
(msg_type == NetMsgType::FILTERLOAD ||
2828-
msg_type == NetMsgType::FILTERADD))
2829-
{
2830-
Misbehaving(pfrom.GetId(), 100);
2831-
return;
2832-
}
2833-
28342826
if (msg_type == NetMsgType::VERSION) {
28352827
// Each connection can only send one version message
28362828
if (pfrom.nVersion != 0)
@@ -4190,6 +4182,10 @@ void PeerManagerImpl::ProcessMessage(
41904182
}
41914183

41924184
if (msg_type == NetMsgType::FILTERLOAD) {
4185+
if (!(pfrom.GetLocalServices() & NODE_BLOOM)) {
4186+
pfrom.fDisconnect = true;
4187+
return;
4188+
}
41934189
CBloomFilter filter;
41944190
vRecv >> filter;
41954191

@@ -4208,6 +4204,10 @@ void PeerManagerImpl::ProcessMessage(
42084204
}
42094205

42104206
if (msg_type == NetMsgType::FILTERADD) {
4207+
if (!(pfrom.GetLocalServices() & NODE_BLOOM)) {
4208+
pfrom.fDisconnect = true;
4209+
return;
4210+
}
42114211
std::vector<unsigned char> vData;
42124212
vRecv >> vData;
42134213

@@ -4231,13 +4231,15 @@ void PeerManagerImpl::ProcessMessage(
42314231
}
42324232

42334233
if (msg_type == NetMsgType::FILTERCLEAR) {
4234+
if (!(pfrom.GetLocalServices() & NODE_BLOOM)) {
4235+
pfrom.fDisconnect = true;
4236+
return;
4237+
}
42344238
if (!pfrom.RelayAddrsWithConn()) {
42354239
return;
42364240
}
42374241
LOCK(pfrom.m_tx_relay->cs_filter);
4238-
if (pfrom.GetLocalServices() & NODE_BLOOM) {
4239-
pfrom.m_tx_relay->pfilter = nullptr;
4240-
}
4242+
pfrom.m_tx_relay->pfilter = nullptr;
42414243
pfrom.m_tx_relay->fRelayTxes = true;
42424244
return;
42434245
}

src/node/interfaces.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ class NodeImpl : public Node
246246
std::string getNetwork() override { return Params().NetworkIDString(); }
247247
void initLogging() override { InitLogging(gArgs); }
248248
void initParameterInteraction() override { InitParameterInteraction(gArgs); }
249-
std::string getWarnings() override { return GetWarnings(true); }
249+
bilingual_str getWarnings() override { return GetWarnings(true); }
250250
uint64_t getLogCategories() override { return LogInstance().GetCategoryMask(); }
251251
bool baseInitialize() override
252252
{

src/qt/bitcoin.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ BitcoinCore::BitcoinCore(interfaces::Node& node) :
143143
void BitcoinCore::handleRunawayException(const std::exception_ptr e)
144144
{
145145
PrintExceptionContinue(e, "Runaway exception");
146-
Q_EMIT runawayException(QString::fromStdString(m_node.getWarnings()));
146+
Q_EMIT runawayException(QString::fromStdString(m_node.getWarnings().translated));
147147
}
148148

149149
void BitcoinCore::initialize()
@@ -747,7 +747,7 @@ int GuiMain(int argc, char* argv[])
747747
}
748748
} catch (...) {
749749
PrintExceptionContinue(std::current_exception(), "Runaway exception");
750-
app.handleRunawayException(QString::fromStdString(node->getWarnings()));
750+
app.handleRunawayException(QString::fromStdString(node->getWarnings().translated));
751751
}
752752
return rv;
753753
}

src/qt/bitcoinamountfield.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class AmountLineEdit: public QLineEdit
9292

9393
if (valid) {
9494
val = qBound(m_min_amount, val, m_max_amount);
95-
setText(BitcoinUnits::format(currentUnit, val, false, BitcoinUnits::separatorAlways));
95+
setText(BitcoinUnits::format(currentUnit, val, false, BitcoinUnits::SeparatorStyle::ALWAYS));
9696
}
9797
}
9898

@@ -103,7 +103,7 @@ class AmountLineEdit: public QLineEdit
103103

104104
void setValue(const CAmount& value)
105105
{
106-
setText(BitcoinUnits::format(currentUnit, value, false, BitcoinUnits::separatorAlways));
106+
setText(BitcoinUnits::format(currentUnit, value, false, BitcoinUnits::SeparatorStyle::ALWAYS));
107107
Q_EMIT valueChanged();
108108
}
109109

@@ -130,7 +130,7 @@ class AmountLineEdit: public QLineEdit
130130
currentUnit = unit;
131131
amountValidator->updateUnit(unit);
132132

133-
setPlaceholderText(BitcoinUnits::format(currentUnit, m_min_amount, false, BitcoinUnits::separatorAlways));
133+
setPlaceholderText(BitcoinUnits::format(currentUnit, m_min_amount, false, BitcoinUnits::SeparatorStyle::ALWAYS));
134134
if(valid)
135135
setValue(val);
136136
else
@@ -142,7 +142,7 @@ class AmountLineEdit: public QLineEdit
142142
ensurePolished();
143143
const QFontMetrics fm(fontMetrics());
144144
int h = 0;
145-
int w = GUIUtil::TextWidth(fm, BitcoinUnits::format(BitcoinUnits::DASH, BitcoinUnits::maxMoney(), false, BitcoinUnits::separatorAlways));
145+
int w = GUIUtil::TextWidth(fm, BitcoinUnits::format(BitcoinUnits::DASH, BitcoinUnits::maxMoney(), false, BitcoinUnits::SeparatorStyle::ALWAYS));
146146
w += 2; // cursor blinking space
147147
w += GUIUtil::dashThemeActive() ? 24 : 0; // counteract padding from css
148148
return QSize(w, h);

src/qt/bitcoinunits.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ QString BitcoinUnits::format(int unit, const CAmount& nIn, bool fPlus, Separator
139139
// confused with the decimal marker.
140140
QChar thin_sp(THIN_SP_CP);
141141
int q_size = quotient_str.size();
142-
if (separators == separatorAlways || (separators == separatorStandard && q_size > 4))
142+
if (separators == SeparatorStyle::ALWAYS || (separators == SeparatorStyle::STANDARD && q_size > 4))
143143
for (int i = 3; i < q_size; i += 3)
144144
quotient_str.insert(q_size - i, thin_sp);
145145

src/qt/bitcoinunits.h

+9-9
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@ class BitcoinUnits: public QAbstractListModel
4747
duffs
4848
};
4949

50-
enum SeparatorStyle
50+
enum class SeparatorStyle
5151
{
52-
separatorNever,
53-
separatorStandard,
54-
separatorAlways
52+
NEVER,
53+
STANDARD,
54+
ALWAYS
5555
};
5656

5757
//! @name Static API
@@ -71,16 +71,16 @@ class BitcoinUnits: public QAbstractListModel
7171
//! Number of decimals left
7272
static int decimals(int unit);
7373
//! Format as string
74-
static QString format(int unit, const CAmount& amount, bool plussign = false, SeparatorStyle separators = separatorStandard, bool justify = false);
75-
static QString simpleFormat(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=separatorStandard);
74+
static QString format(int unit, const CAmount& amount, bool plussign = false, SeparatorStyle separators = SeparatorStyle::STANDARD, bool justify = false);
75+
static QString simpleFormat(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=SeparatorStyle::STANDARD);
7676
//! Format as string (with unit)
77-
static QString formatWithUnit(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=separatorStandard);
77+
static QString formatWithUnit(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=SeparatorStyle::STANDARD);
7878
//! Format as HTML string (with unit)
79-
static QString formatHtmlWithUnit(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=separatorStandard);
79+
static QString formatHtmlWithUnit(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=SeparatorStyle::STANDARD);
8080
//! Format as string (with unit) of fixed length to preserve privacy, if it is set.
8181
static QString formatWithPrivacy(int unit, const CAmount& amount, SeparatorStyle separators, bool privacy);
8282
//! Format as string (with unit) but floor value up to "digits" settings
83-
static QString floorWithUnit(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=separatorStandard);
83+
static QString floorWithUnit(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=SeparatorStyle::STANDARD);
8484
static QString floorHtmlWithPrivacy(int unit, const CAmount& amount, SeparatorStyle separators, bool privacy);
8585
//! Parse string to coin amount
8686
static bool parse(int unit, const QString &value, CAmount *val_out);

src/qt/clientmodel.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ enum BlockSource ClientModel::getBlockSource() const
202202

203203
QString ClientModel::getStatusBarWarnings() const
204204
{
205-
return QString::fromStdString(m_node.getWarnings());
205+
return QString::fromStdString(m_node.getWarnings().translated);
206206
}
207207

208208
OptionsModel *ClientModel::getOptionsModel()

src/qt/forms/debugwindow.ui

-6
Original file line numberDiff line numberDiff line change
@@ -929,12 +929,6 @@
929929
<height>426</height>
930930
</rect>
931931
</property>
932-
<property name="minimumSize">
933-
<size>
934-
<width>300</width>
935-
<height>0</height>
936-
</size>
937-
</property>
938932
<layout class="QGridLayout" name="gridLayout_2" columnminimumwidth="0,10,0">
939933
<item row="0" column="0">
940934
<widget class="QLabel" name="label_50">

src/qt/guiutil.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ QString formatBitcoinURI(const SendCoinsRecipient &info)
406406

407407
if (info.amount)
408408
{
409-
ret += QString("?amount=%1").arg(BitcoinUnits::format(BitcoinUnits::DASH, info.amount, false, BitcoinUnits::separatorNever));
409+
ret += QString("?amount=%1").arg(BitcoinUnits::format(BitcoinUnits::DASH, info.amount, false, BitcoinUnits::SeparatorStyle::NEVER));
410410
paramCount++;
411411
}
412412

src/qt/overviewpage.cpp

+16-16
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ class TxViewDelegate : public QAbstractItemDelegate
8181
colorForeground = qvariant_cast<QColor>(indexAmount.data(Qt::ForegroundRole));
8282
// Note: do NOT use Qt::DisplayRole, have format properly here
8383
qint64 nAmount = index.data(TransactionTableModel::AmountRole).toLongLong();
84-
QString strAmount = BitcoinUnits::floorWithUnit(unit, nAmount, true, BitcoinUnits::separatorAlways);
84+
QString strAmount = BitcoinUnits::floorWithUnit(unit, nAmount, true, BitcoinUnits::SeparatorStyle::ALWAYS);
8585
painter->setPen(colorForeground);
8686
painter->drawText(rectTopHalf, Qt::AlignRight | Qt::AlignVCenter, strAmount);
8787

@@ -209,20 +209,20 @@ void OverviewPage::setBalance(const interfaces::WalletBalances& balances)
209209
int unit = walletModel->getOptionsModel()->getDisplayUnit();
210210
m_balances = balances;
211211
if (walletModel->wallet().privateKeysDisabled()) {
212-
ui->labelBalance->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.watch_only_balance, BitcoinUnits::separatorAlways, m_privacy));
213-
ui->labelUnconfirmed->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.unconfirmed_watch_only_balance, BitcoinUnits::separatorAlways, m_privacy));
214-
ui->labelImmature->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.immature_watch_only_balance, BitcoinUnits::separatorAlways, m_privacy));
215-
ui->labelTotal->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance, BitcoinUnits::separatorAlways, m_privacy));
212+
ui->labelBalance->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.watch_only_balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
213+
ui->labelUnconfirmed->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.unconfirmed_watch_only_balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
214+
ui->labelImmature->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.immature_watch_only_balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
215+
ui->labelTotal->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
216216
} else {
217-
ui->labelBalance->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.balance, BitcoinUnits::separatorAlways, m_privacy));
218-
ui->labelUnconfirmed->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.unconfirmed_balance, BitcoinUnits::separatorAlways, m_privacy));
219-
ui->labelImmature->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.immature_balance, BitcoinUnits::separatorAlways, m_privacy));
220-
ui->labelAnonymized->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.anonymized_balance, BitcoinUnits::separatorAlways, m_privacy));
221-
ui->labelTotal->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.balance + balances.unconfirmed_balance + balances.immature_balance, BitcoinUnits::separatorAlways, m_privacy));
222-
ui->labelWatchAvailable->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.watch_only_balance, BitcoinUnits::separatorAlways, m_privacy));
223-
ui->labelWatchPending->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.unconfirmed_watch_only_balance, BitcoinUnits::separatorAlways, m_privacy));
224-
ui->labelWatchImmature->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.immature_watch_only_balance, BitcoinUnits::separatorAlways, m_privacy));
225-
ui->labelWatchTotal->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance, BitcoinUnits::separatorAlways, m_privacy));
217+
ui->labelBalance->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
218+
ui->labelUnconfirmed->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.unconfirmed_balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
219+
ui->labelImmature->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.immature_balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
220+
ui->labelAnonymized->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.anonymized_balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
221+
ui->labelTotal->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.balance + balances.unconfirmed_balance + balances.immature_balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
222+
ui->labelWatchAvailable->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.watch_only_balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
223+
ui->labelWatchPending->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.unconfirmed_watch_only_balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
224+
ui->labelWatchImmature->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.immature_watch_only_balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
225+
ui->labelWatchTotal->setText(BitcoinUnits::floorHtmlWithPrivacy(unit, balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance, BitcoinUnits::SeparatorStyle::ALWAYS, m_privacy));
226226
}
227227
// only show immature (newly mined) balance if it's non-zero, so as not to complicate things
228228
// for the non-mining users
@@ -350,7 +350,7 @@ void OverviewPage::updateCoinJoinProgress()
350350
if (!walletModel || !clientModel || clientModel->node().shutdownRequested() || !clientModel->masternodeSync().isBlockchainSynced()) return;
351351

352352
QString strAmountAndRounds;
353-
QString strCoinJoinAmount = BitcoinUnits::formatHtmlWithUnit(nDisplayUnit, clientModel->coinJoinOptions().getAmount() * COIN, false, BitcoinUnits::separatorAlways);
353+
QString strCoinJoinAmount = BitcoinUnits::formatHtmlWithUnit(nDisplayUnit, clientModel->coinJoinOptions().getAmount() * COIN, false, BitcoinUnits::SeparatorStyle::ALWAYS);
354354

355355
if(m_balances.balance == 0)
356356
{
@@ -381,7 +381,7 @@ void OverviewPage::updateCoinJoinProgress()
381381
strCoinJoinAmount = strCoinJoinAmount.remove(strCoinJoinAmount.indexOf("."), BitcoinUnits::decimals(nDisplayUnit) + 1);
382382
strAmountAndRounds = strCoinJoinAmount + " / " + tr("%n Rounds", "", clientModel->coinJoinOptions().getRounds());
383383
} else {
384-
QString strMaxToAnonymize = BitcoinUnits::formatHtmlWithUnit(nDisplayUnit, nMaxToAnonymize, false, BitcoinUnits::separatorAlways);
384+
QString strMaxToAnonymize = BitcoinUnits::formatHtmlWithUnit(nDisplayUnit, nMaxToAnonymize, false, BitcoinUnits::SeparatorStyle::ALWAYS);
385385
ui->labelAmountRounds->setToolTip(tr("Not enough compatible inputs to mix <span style='%1'>%2</span>,<br>"
386386
"will mix <span style='%1'>%3</span> instead")
387387
.arg(GUIUtil::getThemedStyleQString(GUIUtil::ThemedStyle::TS_ERROR))

0 commit comments

Comments
 (0)