From ccd53f59af7885d2c75c8f4b3e04d45d09827e53 Mon Sep 17 00:00:00 2001 From: jwinterm Date: Thu, 18 Jun 2026 18:27:28 -0400 Subject: [PATCH] =?UTF-8?q?wowlet:=20branding=20sweep=20=E2=80=94=20XMR?= =?UTF-8?q?=E2=86=92WOW,=20title/dir,=20.ui+wizard=20text=20Feather?= =?UTF-8?q?=E2=86=92wowlet/Monero=E2=86=92Wownero,=20flip+recolor=20sideba?= =?UTF-8?q?r=20(M=E2=86=92W,=20pink/yellow)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MainWindow.cpp | 24 +++++++++--------- src/MainWindow.ui | 10 ++++---- src/SendWidget.cpp | 18 ++++++------- src/SettingsDialog.ui | 2 +- src/assets/images/banners/3.png | Bin 35327 -> 14816 bytes src/dialog/AboutDialog.ui | 10 ++++---- src/dialog/DebugInfoDialog.ui | 2 +- src/dialog/OutputInfoDialog.cpp | 2 +- src/dialog/OutputSweepDialog.cpp | 2 +- src/dialog/OutputSweepDialog.ui | 2 +- src/dialog/PaymentRequestDialog.cpp | 4 +-- src/dialog/PaymentRequestDialog.ui | 2 +- src/dialog/TxConfAdvDialog.cpp | 2 +- src/dialog/TxConfDialog.cpp | 2 +- src/dialog/TxInfoDialog.cpp | 4 +-- src/dialog/TxPoolViewerDialog.cpp | 4 +-- src/dialog/TxProofDialog.cpp | 4 +-- src/dialog/TxProofDialog.ui | 2 +- src/dialog/VerifyProofDialog.cpp | 4 +-- src/libwalletqt/Wallet.cpp | 2 +- src/plugins/calc/CalcWidget.cpp | 2 +- .../crowdfunding/CCSProgressDelegate.cpp | 2 +- src/utils/AppData.cpp | 2 +- src/utils/Utils.cpp | 8 +++--- src/utils/config.cpp | 4 +-- src/utils/prices.cpp | 2 +- src/utils/updater/UpdateDialog.ui | 4 +-- src/widgets/NetworkProxyWidget.ui | 4 +-- src/widgets/NodeWidget.ui | 2 +- src/widgets/TickerWidget.cpp | 2 +- src/widgets/TxDetailsSimple.cpp | 2 +- src/wizard/PageMenu.cpp | 2 +- src/wizard/PageNetwork.cpp | 2 +- src/wizard/PageNetwork.ui | 8 +++--- src/wizard/PageNetworkProxy.ui | 4 +-- src/wizard/PageNetworkWebsocket.ui | 2 +- 36 files changed, 77 insertions(+), 77 deletions(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 5a6aff30..ed4db546 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -151,7 +151,7 @@ void MainWindow::initStatusBar() { this->statusBar()->addPermanentWidget(m_statusUpdateAvailable); m_statusLabelBalance = new ClickableLabel(this); - m_statusLabelBalance->setText("Balance: 0 XMR"); + m_statusLabelBalance->setText("Balance: 0 WOW"); m_statusLabelBalance->setTextInteractionFlags(Qt::TextSelectableByMouse); m_statusLabelBalance->setCursor(Qt::PointingHandCursor); this->statusBar()->addPermanentWidget(m_statusLabelBalance); @@ -511,13 +511,13 @@ void MainWindow::initWalletContext() { connect(m_wallet, &Wallet::unconfirmedMoneyReceived, this, [this](const QString &txId, uint64_t amount){ if (m_wallet->isSynchronized() && !m_locked) { - auto notify = QString("%1 XMR (pending)").arg(WalletManager::displayAmount(amount, false)); + auto notify = QString("%1 WOW (pending)").arg(WalletManager::displayAmount(amount, false)); m_windowManager->notify("Payment received", notify, 5000); } }); connect(m_wallet, &Wallet::moneyReceived, this, [this](const QString &txId, uint64_t amount, bool coinbase){ if (m_wallet->isSynchronized() && !m_locked && coinbase) { - auto notify = QString("%1 XMR").arg(WalletManager::displayAmount(amount, false)); + auto notify = QString("%1 WOW").arg(WalletManager::displayAmount(amount, false)); m_windowManager->notify("Mining payment received", notify, 5000); } }); @@ -629,19 +629,19 @@ void MainWindow::onBalanceUpdated(quint64 balance, quint64 spendable) { balance_str += "HIDDEN"; } else if (displaySetting == Config::totalBalance) { - balance_str += QString("%1 XMR").arg(WalletManager::displayAmount(balance, false, decimals)); + balance_str += QString("%1 WOW").arg(WalletManager::displayAmount(balance, false, decimals)); } else if (displaySetting == Config::spendable || displaySetting == Config::spendablePlusUnconfirmed) { - balance_str += QString("%1 XMR").arg(WalletManager::displayAmount(spendable, false, decimals)); + balance_str += QString("%1 WOW").arg(WalletManager::displayAmount(spendable, false, decimals)); if (displaySetting == Config::spendablePlusUnconfirmed && balance > spendable) { - balance_str += QString(" (+%1 XMR unconfirmed)").arg(WalletManager::displayAmount(balance - spendable, false, decimals)); + balance_str += QString(" (+%1 WOW unconfirmed)").arg(WalletManager::displayAmount(balance - spendable, false, decimals)); } } if (conf()->get(Config::balanceShowFiat).toBool() && !hide) { QString fiatCurrency = conf()->get(Config::preferredFiatCurrency).toString(); - double balanceFiatAmount = appData()->prices.convert("XMR", fiatCurrency, balance / constants::cdiv); + double balanceFiatAmount = appData()->prices.convert("WOW", fiatCurrency, balance / constants::cdiv); balance_str += QString(" (%1)").arg(Utils::amountToCurrencyString(balanceFiatAmount, fiatCurrency)); } @@ -889,7 +889,7 @@ void MainWindow::onTransactionCreated(PendingTransaction *tx, const QVectortxCount() > 1) { - Utils::showError(this, "Failed to construct transaction", "Transaction tries to spend too many inputs", {"Send a smaller amount of XMR to yourself first."}); + Utils::showError(this, "Failed to construct transaction", "Transaction tries to spend too many inputs", {"Send a smaller amount of WOW to yourself first."}); m_wallet->disposeTransaction(tx); return; } @@ -1383,7 +1383,7 @@ void MainWindow::showAddressChecker() { } if (!WalletManager::addressValid(address, constants::networkType)) { - Utils::showInfo(this, "Invalid address", "The address you entered is not a valid XMR address for the current network type."); + Utils::showInfo(this, "Invalid address", "The address you entered is not a valid WOW address for the current network type."); return; } @@ -1688,7 +1688,7 @@ void MainWindow::onSelectedInputsChanged(const QStringList &selectedInputs) { if (numInputs > 0) { quint64 totalAmount = m_wallet->coins()->sumAmounts(selectedInputs); - QString text = QString("Coin control active: %1 selected outputs, %2 XMR").arg(QString::number(numInputs), WalletManager::displayAmount(totalAmount)); + QString text = QString("Coin control active: %1 selected outputs, %2 WOW").arg(QString::number(numInputs), WalletManager::displayAmount(totalAmount)); ui->label_coinControl->setText(text); } } @@ -1774,7 +1774,7 @@ void MainWindow::updateTitle() { title += " [view-only]"; } - title += " - Feather"; + title += " - wowlet"; this->setWindowTitle(title); } diff --git a/src/MainWindow.ui b/src/MainWindow.ui index 9a349d08..29e1aaa3 100644 --- a/src/MainWindow.ui +++ b/src/MainWindow.ui @@ -17,7 +17,7 @@ - Feather + wowlet @@ -290,7 +290,7 @@ - Feather supports two airgapped transaction signing methods: + wowlet supports two airgapped transaction signing methods: @@ -669,9 +669,9 @@ Report bug - + - Donate to Feather + Donate to wowlet @@ -689,7 +689,7 @@ - Show XMR.to + Show WOW.to diff --git a/src/SendWidget.cpp b/src/SendWidget.cpp index e0ce2dea..0549d412 100644 --- a/src/SendWidget.cpp +++ b/src/SendWidget.cpp @@ -209,8 +209,8 @@ void SendWidget::sendClicked() { return; } - if (currency != "XMR" && !sendAll) { - // Convert fiat amount to XMR, but only if we're not sending the entire balance + if (currency != "WOW" && !sendAll) { + // Convert fiat amount to WOW, but only if we're not sending the entire balance amount = WalletManager::amountFromDouble(this->conversionAmount()); } @@ -222,7 +222,7 @@ void SendWidget::sendClicked() { } if (unlocked_balance == 0) { - Utils::showError(this, "Unable to create transaction", QString("No spendable balance.\n\n%1 XMR 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 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"); return; } @@ -289,12 +289,12 @@ void SendWidget::updateConversionLabel() { QString conversionAmountStr = [this]{ QString currency = ui->comboCurrencySelection->currentText(); - if (currency != "XMR") { - return QString("~%1 XMR").arg(QString::number(this->conversionAmount(), 'f')); + if (currency != "WOW") { + return QString("~%1 WOW").arg(QString::number(this->conversionAmount(), 'f')); } else { auto preferredFiatCurrency = conf()->get(Config::preferredFiatCurrency).toString(); - double conversionAmount = appData()->prices.convert("XMR", preferredFiatCurrency, this->amountDouble()); + double conversionAmount = appData()->prices.convert("WOW", preferredFiatCurrency, this->amountDouble()); return QString("~%1 %2").arg(QString::number(conversionAmount, 'f', 2), preferredFiatCurrency); } }(); @@ -305,7 +305,7 @@ void SendWidget::updateConversionLabel() { double SendWidget::conversionAmount() { QString currency = ui->comboCurrencySelection->currentText(); - return appData()->prices.convert(currency, "XMR", this->amountDouble()); + return appData()->prices.convert(currency, "WOW", this->amountDouble()); } quint64 SendWidget::amount() { @@ -384,7 +384,7 @@ void SendWidget::setWebsocketEnabled(bool enabled) { this->setupComboBox(); } else { ui->comboCurrencySelection->clear(); - ui->comboCurrencySelection->insertItem(0, "XMR"); + ui->comboCurrencySelection->insertItem(0, "WOW"); } } @@ -420,7 +420,7 @@ void SendWidget::onDataFromQR(const QString &data) { void SendWidget::setupComboBox() { ui->comboCurrencySelection->clear(); - QStringList defaultCurrencies = {"XMR", "USD", "EUR", "CNY", "JPY", "GBP"}; + QStringList defaultCurrencies = {"WOW", "USD", "EUR", "CNY", "JPY", "GBP"}; QString preferredCurrency = conf()->get(Config::preferredFiatCurrency).toString(); if (defaultCurrencies.contains(preferredCurrency)) { diff --git a/src/SettingsDialog.ui b/src/SettingsDialog.ui index ccaad425..b9ee7512 100644 --- a/src/SettingsDialog.ui +++ b/src/SettingsDialog.ui @@ -254,7 +254,7 @@ - <html><head/><body><p>Feather can connect to a service hosted by the developers to obtain pricing information, a curated list of remote nodes, Home feeds, the latest version of Feather Wallet and more.</p><p>This service is only used to fetch information. The wallet does not send information about its state or your transactions to the server. It is not used for any telemetry or crash reports.</p><p>If you disable this connection some functionality will be unavailable.</p></body></html> + <html><head/><body><p>wowlet can connect to a service hosted by the developers to obtain pricing information, a curated list of remote nodes, Home feeds, the latest version of wowlet and more.</p><p>This service is only used to fetch information. The wallet does not send information about its state or your transactions to the server. It is not used for any telemetry or crash reports.</p><p>If you disable this connection some functionality will be unavailable.</p></body></html> true diff --git a/src/assets/images/banners/3.png b/src/assets/images/banners/3.png index a3918089768c1533c772140fd1d94a4cc708e22c..0c03df9f4e00905c6d6365a19646fd0ced2e23b8 100644 GIT binary patch literal 14816 zcmW+-2{=^W`_P*q7|fj4}4HuVY^# z4B0ZW?}SL*zu*6P&hwmm-}8Cj&pGG5XSwgaCrtbGOBN%(+f?99I-r*dyv_jhQULvA0G0w6V*!I?0D%Q`(*WI6Ksy~U zj{{5+0HZ{}FbO~=0EUTxX*^(%1Q;g*+G&7U9AFj?SbYX8Vgc*VfMqOT5eFc#fL%0T z69ed{09LVpZ46)%54?*8Y@-2}P{8*S;2H{e2LYZK02Kw;M*)rzfJZR!Aqa2_0p3Rd zs7Syw7;p~(J_Z5~k$_zk;1mwH2LnEVfZMqu25<=j&|!d25a1jJIEMpX7{D_0zW^Z69|-*jgnR@7{sTUpCw~Cr2mJRR5ab60`vT!UK*R?i$RC)~07~qD zSWjR^6PVKk<~4v>O@OKn5N&`EUm(F9sI~wqtbhR+fOQAH=>QmCAl?J0v;wLv0g^c| z`38vc1}3zD8VjJ(66i7n#josc0iV5q z2p=HQ8%TBqlFpMGkm3p?cmSEsz!xVV%L(}62$Wj`#r8n0IZ$T~WI6%4?*XDUP-G8e zI|5af0Kpb0wFPP|fC3ayhysf3fOKad=RJ_;02JB-cv~RH5vZ^R8ccykQ=kn2)R_UT z2%s4Wv><_e2cQ)RG@Ag8CO|$4005fV%rEB-cfmsArE*93yJ)5Jn@eu5v{WvwGq7>; z(q$8Qc4=rHUwozfT+iz}c{a+_n35vmd}s6aXNSOR$-Gw{;T7l@uf#oL)3>^I*`S9_ zNr{aI_u#F@;<$2g(%>dEjr$W?csakJ3;tSy;B8mi7F`_Qt098ERXg?1+GogDVP(d3 zyNTBG&qqZ&;r~V`EeET0E6uIkSJYtK;23B3Uo3j9Rk?JY)?nJmN-@iNTy%r$J6rog z#sgbsb#OgW#_zEYCneQ%tv29deOREPr|HQ zZK6EBJLVefgh5Bw?1Q)^WyQcc+qSqVPk-Lr=8`i6GWV0Bq=g48VJp@i0CFFWmqS81HJBN1lTRs`9& zIaZ=dDk))NAFj~nuT8eIF4xy9>MO!8x^Z$Q^A4Ol34Wu$ivD|LhsZ7hwxTe8-G6z~mfsCCwN?67LhGZJ z*6UDQ_He@Wj~=_z6CEc)4gX`*;Zx4!89@oC21h84*Sfd^;<9lwy4U^J>K=n}VDXY$ zezD0Dd7O-Sg}xCEH#l&SjSY_Bv6NQg96d;d=8l~PFLsBPIKFqpKhW0?xU9vwA?fNX z%{7NcVMn}X;Mttqr+%~$V`(et)L#vG9eE2f3vzya6Z)o3xW#DwA1&ZEIXGloHDZr6 zb$Jdt5pQOv1*>X}PIFF-wUkcoL-U+;DFETfN+!q;wlrqfUZiS#iq^}3{?IEQB2sK6zv-fT z@#}9n!^RzO29R9tl$5KL{218O?OI=Uvo=^&a-Zibe4kB(p6&bUUnIPimX>WA3M49J z%&}9Uw&EwuJ}i~m@A(QcJ;mGUUXZzEU-2-4Yxrw)85>f!-{1g}Hev&0_<^vR0)S z3;UvOF?U&mriF;SD0^pvv~rUU>+-P-HbLBv32hffr*75wR{KZTEvlh(4R8Cnjh;KB zsXeYbC66N>slUDTPLgqO{0mvP{tEV)HD|jLyjnjucEm(0lv#OVhVE`9EEjqX;xvp( zh0tHA0HvYq)wsCVrW~p?Ik%pyj$4KsB!CT>lQn=FunGLB`23WLY#1#$0dc;DONqT9DBH|;B`s%t!|Ua7e9 z;N7?!plLeYQjaLol1P?`Wg`tOOIYA5vlKDg*Pfr;J0hHm%fH|z)X=f$>Ndc<-ps1H zS{Qsg;PafrmdvFRtqgYtYaN8`YkToUJB|2YT-%5BC)}|s@Y%`5PdW0Cg0ad z)1~}LIU72O?c*N09pkjkYP0SI{;i9r&wa8^^)|YRTHI)kC>k ziXpiJBxlZrit!ZKqCIt>Ae$7qT&Y_C@9v0R6GHpf@xmRX_Lj z>laS0kIKQ#krS@Y2OZAUN3|U;GBSz%3-=#GUj&wHR80-QySh~U1l|NpF?^8E?(;9k zG1mvz_mCbUZ*Z=cRHpFsPYP#7iXv7R;{LX zrVPa4KIq5#HXBv0Odk5;Mc}&B{;;ViTwfH@KK^J@G{F;Y<_&dcB$y-78HsQQ16KuU zs2+v{*=ow^8Pg6}2%BV9RUDd~S#nIa19=V2a%$=}YA`y2hGXaBMo186emn-Fml zx*#f-?mlFpQx9=c*Kt2;2>g%SplX#U2-TaB_>$``lp`s- z*~F4(+KO{Wj>Snfr$|l|L^u_v4^%@?^*E^eweKKz+jU*1AYKURTg>R{D_@EZnznU< zq-U1cE~&_(c|Mo&`SOVEKS)jANFNNYUx!-gWbFKk?t^eA*>ZcH7`wYQwUw}O?UYF8 zocyX!(E4 z1(^DocL+#Qc6IgNLDli2im7V`uDMzs8T_l))a{Q6BRWqA{FmBXyo{?G_=!fw^3!jO zVc&6v%~mG!7VI1N(gTZ^m$vJFT*X}G8g8eqe~XT=3|N0(Es?aBFd+BVK%~N6-0cgw zT3%Ze-qDfQKV33)D9B8(uEcKJC-T$O)QpD_4x0G*^7^kci6Um(7A|%QRT>%3Z#oob zS0`=Zy+RfcNWLBWZH4*o&+9+kX^C690$OybwXf6WMD!oHCy?yv6H9BN%c4zwlj(3z zSC7F+!tI4mc)wDD2;5l=#X)$`&cdUJm*d99xwkD85}~r6E`@2dQ7LSme>1SI(vMtA zCQSCgI^${S>I=NCbfVDXFRGNc@GsEJvKNM&UhFdt4gp175i3h&FW`<(u|ivoeGw5u zw7K|$E7TGU<=gNxn1=X~bsT8*_$?9|gdsHsu0uI-)rV(feLJz~|4J@g3F$gI5G#FX zAP{k=|CyT8?f#mJ8L5#*wxazz*M+ptBQaQUEV$4Ij#>Y@TGW-_N1b3Z39u`9kWu=6 z^Tv?z4Z`d0rGAoz6^l>c^HZr$B)xi*Kyqn5+5Y{b>Wsv)zBuTYdd(OV9^4a-GZ2Gn zop;USn{OW1dS=SM^mM2D12whjToQtRSRC!3MafQ%GXdP#B~~5yC)AZ$?*(KTZ<68! z=3hXK>lF%Sq*>7hk$HQ~f{bZ!D?f$0U9FKsWFUR@^h4X?kaHeKpTD-*9|t}d)xOz5 zE>1?@i71NPV3UWwpD;6(Z!Gx=C56_o9+kttF0n9-Q`fCLnmBPCPo4KHe0*$uoNf*- z9UmVTcP{bhqXP_wBQ*lYH(D;^nwpx*qNu!=507zVOkqA;)mEfGe`tN9<$gkIJCZB# z@87@nX!o~<6*wGr=?x0m zsb~10WAM_M*kTGMWSeO}An4d5g0JS|9?RU;7dP7XSVi>j-o~hql;(6Y(4zJHL^Xpf ze`n|aXg6NMe`qjNFY?}Gv9G^%#|RPZ*Y2)3$!hANy~fms|EDMy;Vk>|Wpz?)WP~e^ z-%!Tgo+kcVH`K3BwtDM~Z?Ci{--X&byXpDx@cHrLd}-V~uF8=0~W!l0zDge6qtpr{7f)^UFB)n)ZYrDF+`hKPC;^CdL=NOiwOvPD` zawlhPTZCoy=Vt3)Aj9o{SD$L1)XkO!mtI_o?!U&ny}q-#$;3FX z$1&m0`yLX9A;~0)aD&7N`U&*WMHjNV`NkHQYA~(3>rv;k!dmo3MVvI}YK{D?V{PFy z*VT|M#iUFB<_XWt@*2A3Z@GCXSX%OnII~`Mg(vF$DZKSvjt0t zFDl<_ZT;^b>DC=SG$YhgppDIBl*1X-{$!y%TZ+odyoMfGlv2}a#ps1#y1TmS54+t( zZ;ZA?Zu`kGL#%3zIXIo8_MpCK*_SUa#W0)8hHRQ}Bwq@q*RVw-DJKq*7<7^@p!nsz z*elF(><5a)p|+PT?dlsfIT80CUtD$x!{4bTkQ%c;>m#1qAn5w1I-(?mG_Rr@2A00E zCsE3_EV@)Go~^{xiAwyLOjbL7e*lh1(Xl6vcd<;qK4ms9%blfHI%NG`hkK5QT^2o(rvfp=3gC4KHu zH_({79tJVPj-F8`s`U!|SAy&64bk3b>PeYV>&6*WK{+0BlcS7W!MepyOdiYz(V^=k zo3gY=SFe<731#)U)3639%;HE2j@W^A$zW6aCD-X!LS9q2AaH>rN;H3f}v4(Pjs)Zlf#GNSsgM`(2E7ml3Y9Jwo4*4FPq z|9j^`nn|-TH!Z4op#M4X*1rxiSy7K!yad03CCA5Uq#&~eOqZxpAF2$cysvF3n zk%Gs@qYVXnlU zcPf^pK(HanLWLhUJ?jv&Oq?tGS1?M+;LuJ?1JtBZ;>kpmqrt-DI#>kSo$T7V&3jy@ z8XQysHvGE86nr@;o=n~5{-Xf3`a^$J!B>vT%krT$#idq(%H+nn!10CHI3($LUzrpf zSVD-P8YvmH{CapTcY{yC#MI2{$qyG6o&J@)N~Jp(<|x#&URuBtefnqP!Y?lV(ijlNFxil^gvc*4sh8v$ZqTUvjVe zKAoXs;JtUvTs9aBIb~~iIbwZR%jM=h0~MIm5FplHG#drOUqE2@SGmWQc-`f1nK&=| zJWCwbGA~d39D&lNNPQp)^sUzjND!ZC_pa|%z_J(26$m>2Y=`(9=X;);DT+U_V#jZP zHfoYCs)%fY!--v+vr7#hXUs=`bR}I=_yX#?KI*|@8VA4X`DJs$)0>Wyx-YYLvB|}Q z<*I#kQ=!K1u&4h*kiLX{v!gFPamd-949acmH^<(UK|_A;7HAVHjOL|jHobwJ9K&c$i>b4DOtF-`E~N|j>`-uglCW4?-p|x zmq11K)!uN8o?h^UW?i(sK>12E4T)&6@3fE&71_+&pLDPGyRAl?c}=xvK;<#O5M1dU z9T08@Uom(q&dmMK-+F`-OGQ%bKD)Nm0JE_v-*Wtryz;~((KKr#E^Dp+$Gx&I3jr*4 zbj$l{BFYS>Y$c>1l>d#S-^rp6Bx=RKFdXzIUAPh{WYy64H}KaHuk$EWmMTFwk}nPnOzbRgcZ1v4nR=mteQXtoQH)o@c$t?~7R$lu{Yt_A8fmS( z75w}S3DCZ~l^1Vd`_x@RUR~jI&K0MJzqsR{0zLUh!^U~2#M^MVaP>Ndo=A}*DO_!7 z(M*~yGxL^)j)BZ)uIjkdrB9+RBqoMabvwsbY)rhZ%JP`)duJ_)7*Va;&*fA$yw@ACo6fJ0sR?76@N1 zx-+tB1z)X-tO;}$<&y? zI2RfI#-3E4o=H@Y#D+RcXYLEJ2RP#UEKlsv-lAF749iESw0ml9PXrA>n;NEJ{Nb3! z3K`wN=j(+WMCfs{_!Ewpm!YZY`zLV*f^S1C?ubJo^(HFmd(`)@3kg>7#+-g^?!_Fk^eezq5ONOh6o`1qetq6c z&~b;S{7=^p)&mbrGSsQ%?!CEb9uHFe-6PS43Oz(IF~c=qW&&FjL1tSI*WP>gaGUv! zu;7aq9u560SFbke-YVYRel0Pnz35e$wMAXdSz%iiXLHM#2?Kc@SO2Vc-W~K{uqlQlC2@F8%>}>NDfOTW>x8mcr4oHwx?KQN;Y5S--}SDiz=6McrOiLwnd~U0!jHa% z;sdDr9eb9wy!_buWu-{qRY6-%pM=0ps?DeDVp zBe_xO*SSXb(<8dn^DuAO+&NRm2ghy=Vk+STQLzaxBe^&2=5!jx>N-fehy`_XyhJaP z$XmunZb)kQx~}!Bx6)d~-9a5thBjwZzBXf^=2|=aEhH&UsDo{%b8(N3Ik@5-i2u=> zdgqB7mOS$XM6XFbDc+Uv3oqaTqp(|%Zel+m!C;HR@{dP7^2H=Qy~#f^b)y~w*1H(;Ys#mlvbXfq@SoN2Jg|K?BDnS~dVJJuL~rEX&`SlD zKPoQa{1lGe*PVvEAiASwM-F)RGo7e>x2Q#Epc5!1@}=uquN9>5s*h<4==62a@~Mi{ zkc(E=R#E?d85drDbL#%a-uuo$GT*JK%#{8+_!;^FXFmt5qKIp+Aa1AgE&H1CsRy*J z;|4w^2ZUv!+qWjNQQdtl`fz&pQZ&e}<^FeJj7PBbcMoL=1I!iN1h3BMdga6}dVjdU zV%eT!LIq5DKI#G{!cr8uxCVz}HG_*GTHHhR?3_xP1)N;*V~w-{J#2y4WRgN`YLAsm z-CBw!?^vfMokMthSgki#-{@!GNE|VI*=6tN7W`piSTCL=p41vW4cutRFx1o<80v~s zdk&L}zcDnP)2p|>Mc1Yqn2o2GKPVXR`XI;=HTydM!Gp?_0r`IJi0O9WFe)PU{^?b1 z;v_K!&2h7fVkITZ@*?dmQCFQ)rcBF@2q(t8!tz4so${@7ND*zcgfOCb=2wdmYXLCq z3jEjB{o@^MEjp>^{I&Vuqea1p%@luvA+{@K zy`JoL<-a^CPi1O+l7C$IV06Up{2K@2 zR{z}=E|#Nb&qOvY3qWz|D(zK$y^vLla*LU!(Y;LYXxsEPRywzKMVlg0!{1-^8DTll zo}9YhJ`S<1+IpGB|DyzQim4;3Sc%G%}xQKoC*6&=3N<#Ny1T)_2_LrLsL;dX@`Z^-Yj;HTSNfsWl(u&J#VN4L8+h15Ybsk6}dc!8q z4azpGhW~z&iC)Oy-i=!QFQ87=ngXFm*?)3^Vo5H0#2W^ai)bOQM1?0(IrM4auY;>~ z9#SCl2oPFJxzmY-x_&)%PGVx~CXWtgN`&1!EBc#p30U|cmpmcN86FO1f-lH)^QQ4$ z4-ZdO@7zkbUPj^Q*MgLEW8>i-652jbEOj!aWu@9bA;aDT8+P;i65v-I9rdWGKOCnR z@kG{6p}eJ=JlX9(MB~0o>Lh{tEW!wrSP3?R#t^3ut>H0|+Gf}7_WC@si9eMcA8ytooEgoo;&6XUV@vs`gMdo#wb!8H_HABQ4rnZa&j4VPty9hyaYjUc+GwN z7s-V>lnA&k66;!pIf$e-A()I}?<2ledLPBU=nW5U%c%}$4w0~`k9)nLZ*YCC&-LT@ z44{z>f}fW(xZ7P^RjB9&;gXrhR!|WK$0CANxS7hGes*cMkZ!iGR$1+;V<=Y@k)O-D z6)tG1-AxJY0MyKnwX4(5lQ!Uufnru{6>~Oqj(2N+c_*?~)U*7^N}nUkhk|KS!HJf{ z9QNz`3wbhU)j0mZZY+o()Ca>Zq^hJvIOnrpmm-K}VpG+Y4R*A;0ek4=!8eHh6QwSC z29Q<$w_XPiYY(9Z|0n@%jIn9aqe%AH%RF4%MXluW@Ve@$DeUx;dy|O)FHzXS9zuUINn_@_@jPqzRE= zCjY{F-F>#-)}(tDrEI*f{=BqGGYW$`UK=RWnch*IW6O3)VVJ>5$HyZsz?R* zI31wnO=OK)&mOUA?xdtWHF$>%PmR>Dh(!kk*!S$=*@nYop%SL7EE=wNsgK&!3ktaZzhucv zKiE^NYyf2TVFm1Z{hN}jIdsx!((;*9|0Tn^LqTVSABI*wdzP9jAFZ`6XL67YB^O36 zsw2=Tup993|5f6sEV9-j8b#pdr_lArEvCj9V$xgdeVq~+(lX^FB5k#1y5MU?yJ~dS zd9R~iLCWh!+xcHIetT>>HHb}7M#`>TV6#RnDt6FWJvY#|$~UlCtIlEWO1*|~y$;bw zn5V!#!^e(BpPJe!h?nO43@5{=sZyGnq4?y^`oTVp`HwK7;{n8ttJpr?E)4sc3|o}yyr=KS zU|w94L^uhrP`sWB2Gv`{qdy?nzzp!l4QQXm8%7?^kqzqkEG8){O0oze*&{x~@*XDX z`>dsu{S2a6IYVb+)rH3vY0sO|XGS1%XeD)hR1u+@M?68X{kx%#C|%Rh_hYdfIg;tC zFO)M~V!ZQ^Yv+@Jy53?Od}diV1zOfb;(VJ?_5?iiCKLe?snlC!gSUsOEfN@!(A`We z`#LFI*XIUt4T90#n8!^EkJ>@jp(H7}?-BlQRmYJ$#dWvATv|nViy*6|%HE$BzDI2M z9vxoz2e~We;P?gHWqM05tl#-hO)C}A`}6sC4K;`Kt?>LMSmc|zXnQg}y!MX9JHoBr z@HNlk0Ryzse;tC)^5S($NtY+81POLc{XJsV!IE7+f_@w$ez5fXO(;@FEXK>G)2C^S zm{=2SY$?J;#Nza82FqJsPlPKH9$0`RV+{wFcLX8ZO+{AN5tEM=cD#_gWfq_Od9jgT z{wQmHJZI&X?Kx=(6U3auQk}Bp^Ub=h=-{xXr_Z@mr4w7P@b|}av^02Zw$U8D=OGC$ zXUfv0(l#MX%n~*(_EwD{+H)H|eiPA+_{KUhA@IbD$P{5vD$a&Ko4rS_mO>UVN0!&3 zCxT?^INy%4ANF3kW=%0uc!t>6h>&bGQZ~%LH(31$`Dl}0(R5J|Wx?Bc{cZX?cWY}c z{3St1LneLqixeR~|NHo9@KS?~!PmbiHzljmq1R=lG}ld;xC+_eYKY?^bifg4Ub;cp ziT$qZ`S{=LyK=rEZQ#wVn23L+>cdC#$n{NXS=KHdn^KK69Kf{E!3I9xf#*NOlB+2f z5D!r8|D?MF`U;+&SiMhN>m!hr^;NAH2M-w)2;{&edb+cJ*m)6asjQC`L;lIsK0>E6 zCmY2+ZaXz2L($A^=Hp;n2b`gzGtGp_z(Y8gC?x|PHe>Afy3Lhbw#OaHG$Ar&Sda4k zV4Xrrh?l7cYn<)C=2uMd*#%L3_Ynk8%R5T#Jy${So| zYzUN~2Kp>pY;j<-4Pp3Sy>u29Ts~fyFCH3KWPuVL;QHP#qWaeUgM- zF`TlSsg8>ZuoR-!KNc%58dR|>Ta!Yd@?Wx=hY{+0ZbhJUI?y$Ak>4Dv2P|u z1ng+;;NW1${mqGowV@AI1u}bGj&JHvc!!OIQc*e>dbSDrw7Qn^Udjt){U21L=fLj8 z=R%dOD=gn+BBo`_ipZE6u5Z$BC-1klTM;)5$jfa1b_a}JgJPu>G>D;tELf~b%7n|{ zPwxcUqtB+Q-jHGZPZuVx-&N)xjLbwmhai;iRiG;>qSiw9O6?Fr_4=|CZhqKz(4W6w zxXv~gE`uCzJd-q!so*JQvC;n>^>919R2zO~{rr$rV4F-h3^`^#W~S$uDxDhOO+MC^ z?%07d8rWDTS}~$I;(MjOYXn;h>~fidSehfVm7P4Tx|sUi5U&u92sCL5k#W&5~;smxDT>z zRU3WQ_8#ovpQCR$eHe&cFs$T`n2~*eoNPdgnO^&+c!lSx56RnUFXLecc?)>~rEit( zLrCUiwkxZif2OCyC)~p?Chp{*IM>%bXI^Kc&FKwKACJ_SQJU|MxSxN;<tWcnOkKt3E>b> zGf>d?W-mIE^QyM+NTi&}38qNP#Q*xZwpS=ipir)V6A{N2+z~BJpz=@{WZ>R7 zGKD&G))&4nN6VuBBk5{!h+$p$R7(1$QM@54VYwdHMO%=+v{cQ3=Pqh&r?bBs0YkeR zxy@P<-^tq!RC^syjLyu=ux00rRM6*T=)tvXYVNbVjmvjAyAJ=vSj3P2sv*U30GBs+ ze~QCXPn*Khow=Ub#12*$Sdk|ld&P&Ve_mqFcdzc#1!o~&8dfcX;tKFqv?Z`#6%56F zT#qQ@;4JGg1e$}vCRvC0E}r?p1(=8GeGFstC-=ecRzTO{0${)PMy~hwI5<3;AIUJq%a5PWGsQR z?IS&&Cp!Nffp&5xuQIJa#_h7Tk*Ix@j1DUgeiXFB23H1_9XJxO;QTn zfBtx(7a*TAKR5zMAXu4ExR_-}QNv^O+nS=vj9p!8>&kl(F*vuD9^~(SkYQT;xWGtW zLk6+$8}iGdchW!{6_m)t`dj{##v@7leGkQd;$R7yfjEwE)7PI&4ugn7uif}v#g2o!cxwFjgIajqKvG`!pWF!NDh+i#rR#wB|ZK73;*NFDF6X72ZQ z8@YWTs6|}zAI#>z@NNC{!Zag}R$gq#8h*aepDn*|zC}m>@0!yKJMi(HD>c6tULhod z8#|4R>C-R{YdVaX`OYEl=7hTvk(Vyj{mECdvukiG@@S7p)o;F^8Osa(i5}y>JaKe1WIq2N zFTT-j--d)=x-!O`XvPB-E(8OvAPzc;46VaJ|xci?r-LF)_2DGve{c`{dq?^WyS2?$2~8 zy3~pJ@Yi7^<99{kZPQy4XAA4&IOgG%Dk^9zlt6hP{0I)2vnE}IBZhI^)s59cbtc`( zlV*^dp6?-eRKF4Wy;CoNA}M_TEx$+Os?@Xb@xR_tr2RLw*C;4%_5@1{NsWr58fj|k z^mip>nYpHRu&B$cNL#Uw<#>L|qS%1@Z^`FV&K$8|3)+o->v7U=X=Sqze)fbdyH{JxyB6F*VjGh0kTYvSjaDqs< z3o3xka5xD@1u5j$os0C0G;G9X4E4iMcBqJDxv}J)jaM5(|KijU)5dy~?5-dS0r(dp zVcW5CQIMkT!e^uT`H~8{YY}g2D)wN}XzsfO>8hmguX0Df@`1>WJCQA$O!JG8Kd#N4M(~vAsp&srE+$ZI#6HtB1!}P!kzNGD~K8u zT7Pe1{O^iJ6)7>FU0K@T#PZY36cJ8oHq0R({@HrZM<}i6rfX(}*ceD~#ZAQ)Yj<=jy+G=+#R zeyA^cBU<#GQC_I6PkP+s-1A4LYS;D)Z;7VH3%uVXIOz z{NKNPDhPRFV{4K}9}oNL^KxRlje_y-@W>5Lk8ITtT%=@q+dHu#43RU__raUa>R)cS zCk8y0)I0KGpWLx#vr4Q!a>)8_IuD(skEyig0h#`qq<>yCN!yYEn~MhHaDlC-WJ3+p z_r)amCBY2P&#Di;)~c98hlLIA0ZcQ|FKI|J;FtcZJ-sV^-%Y(fRT3-hW}z9DwB8~F zTm@&Q*g!79`s|)*iv}h68JwQ{Lizr=)3iV8OBE?oSao0HW#6xkJ(MOtIG3+i|1JAU zN-$7%YjBHXtUC|8jv4-89u~NZFRQt_Jt`?|mAD@Zj&yfj=(Ut3cr$6#YWQgW%rDh4 z39Kd(0eJL==-)%P`iI>?jVVd|mn_Q_jV5CkPwh7(po5Zkc2X%%VI&F8$?1oM(Po zJdm1Q;RxLXOd>ZbOJ6jMy^-73MfsM5GTVx6?mXq7e*b5W!ad>M!i~YH$;197ZrAZK z&3`pRHIVrf>9Te<)^OH`hGtF&KaU&F4Nw+zZ?e;ZTOQ?}T5CF} zcl>&bi7?v|hd8(r3guHFzR;uOo_?QaViT2^zhyFs%e?Eu5wgNw6SIcl5oQ4yKPVDV zK2*^>nVY@c&fTOfHM_hy2%k|{4?jgjO19OWoi-V&Bj`5PUov~v1ZYrr*F6T$gOSHJ zqEI1}`6XiWME~egPD~h!Im;pO*|2|2Q&VnP^{<9^mO1w-Z$RVdg*y+nwuU|21};f+ zp9qafwjFbJohG!=Dge`4TVtXGUey`M20-#=qs98E@%u z_0oo9VG2zZW@Q^Af<(LMYEdSp+2uFHSW{8JMww^Ohf;z!FYdoHT87^0qp!{@Lwr)D zB5WJg^*xepVpQbMkaaSl<GbsMEU^0h!D|wc=)8iDv z{(F2qJ5!b7SsxkDW#gErFxtx-{B1@7_oJ&r=#EBKo__pIB}W_+(DcrKT737X1l+$> zQLgi`vy#n04g9SFr(A{=sGSZ06WWRX4a(2&)3fvbIqZdNO5L3dr>Z~wck?=ddo`_b zh{uX&d-Ql#LM(Z)dG!14yZU8GeNM|I4eFavX2^x3laTqA9~)iL_GpsRn6nYoO7lNo zv+IK;_s$yS?sq_`-~aB)KR=`{HBct$otfV>pX6?9$Z>1(vy&aJpZJ!bSefb1|5ful zp6yQ(r>DgD_)x}Bo=(8Di0OT_5!6oer;dJ&UaMi;#=(wB(?`)Z#UO$D0@&l@R`Z3M zw+dz97|HS!G4&SKywGBqM4IWpyMbKd*C{JL^=1^ax7)KbEeAhOz7@(*_8u$sbCFFi zxtt%CYNsOnfB&G*O8oKRP(UgC)aur@@rA;L@0{?Bv$BhZQ;-`)5SoU6ZT$vi5)@A# z-L>=3_usX(=u}juKq2lH3YHDxCPWZeP5+*ZgBiQ(=BB6Rldn(}PmlVYoNvhrGkI@& zsuPl!Zk!YBbSIUW+<{*Hb8y(y^rA;*=HIweGbcJ+@`69D)Ek}WoGTx=9!`KU8-Yzt zF6K-;=^?{MEp##i^j*q+t{*-G2U88N9cAN{5aLdoTUhaiSK=2$V#5Bkq%_wWYMUed zcgR_$I>?>vttM5T&bC~N?JlvUQm0Q!k9K2L!1Ukmbu8NvmHfu%mt16Ihwq=CX)CVz zpFkTSTu=Y0xi@{>>zJD}RjFy%g{?W72a-P=&u&njhJb=MmR5X1{u{CO`SWHOGv9_4 zdtybL^F8i1cv^uh^Ef`bdiSmxg_E#-gJ{Z=kZ;9c__Xo&TA_fbggH;k^jq=26{vZ| z6Ng+G`O>08w%C*fQ{d3`OHKpbq>qnLzNPdrja^;PrfQg}8m6CSBQVQP*YoemDM45h zR?`6d#C6~F?sM8wwSJ&tX!H9=7g&pO+|Wb7Yff!f&imC=oe}T<)oVy)Nw43R>S*~p zpQU&W@l+D|*yFJ6^3+_V_)}w}RPd~dzfe0~&XN9KaN(zggQp5pO?yr1X6YNVv&al7 zS)pgCX)Um8{+I&j(4jz(Ys^#sn6Q6~(<^UeN6&^@o>B?rWrFV9 zH(Pm{PnOff?^m^)VK)4mkNgi6Y73k1#5a4NCYO~8ofU%MHT%v0tAQof^kDT3_xTAq OnpY~Xl?h5_pZ*UJYn_|` literal 35327 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�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 diff --git a/src/dialog/AboutDialog.ui b/src/dialog/AboutDialog.ui index 6a0fb7b5..fd0c66cb 100644 --- a/src/dialog/AboutDialog.ui +++ b/src/dialog/AboutDialog.ui @@ -25,9 +25,9 @@ 0 - + - Feather + wowlet @@ -43,7 +43,7 @@ - <html><head/><body><p><span style=" font-weight:600;">Feather</span>: a free, open-source Monero wallet</p><p>Created by dsc, tobtoht and contributors</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">wowlet</span>: a free, open-source Wownero wallet</p><p>Created by dsc, tobtoht and contributors</p></body></html> Qt::AlignmentFlag::AlignCenter @@ -205,7 +205,7 @@ - <html><head/><body><p><span style=" font-weight:700;">Feather:</span></p></body></html> + <html><head/><body><p><span style=" font-weight:700;">wowlet:</span></p></body></html> @@ -219,7 +219,7 @@ - <html><head/><body><p><span style=" font-weight:700;">Monero:</span></p></body></html> + <html><head/><body><p><span style=" font-weight:700;">Wownero:</span></p></body></html> diff --git a/src/dialog/DebugInfoDialog.ui b/src/dialog/DebugInfoDialog.ui index 62fe04a4..01130ead 100644 --- a/src/dialog/DebugInfoDialog.ui +++ b/src/dialog/DebugInfoDialog.ui @@ -19,7 +19,7 @@ - Feather version: + wowlet version: diff --git a/src/dialog/OutputInfoDialog.cpp b/src/dialog/OutputInfoDialog.cpp index 8f7ceb63..0a84a07c 100644 --- a/src/dialog/OutputInfoDialog.cpp +++ b/src/dialog/OutputInfoDialog.cpp @@ -25,7 +25,7 @@ OutputInfoDialog::OutputInfoDialog(const CoinsInfo &cInfo, QWidget *parent) QString status = cInfo.spent ? "spent" : (cInfo.frozen ? "frozen" : "unspent"); ui->label_status->setText(status); - ui->label_amount->setText(QString("%1 XMR").arg(cInfo.displayAmount())); + ui->label_amount->setText(QString("%1 WOW").arg(cInfo.displayAmount())); ui->label_creationHeight->setText(QString::number(cInfo.blockHeight)); ui->label_globalIndex->setText(QString::number(cInfo.globalOutputIndex)); ui->label_internalIndex->setText(QString::number(cInfo.internalOutputIndex)); diff --git a/src/dialog/OutputSweepDialog.cpp b/src/dialog/OutputSweepDialog.cpp index 85ae38a7..4ab82dcf 100644 --- a/src/dialog/OutputSweepDialog.cpp +++ b/src/dialog/OutputSweepDialog.cpp @@ -34,7 +34,7 @@ OutputSweepDialog::OutputSweepDialog(QWidget *parent, quint64 amount) QString origAmount = WalletManager::displayAmount(m_amount); QString splitAmount = WalletManager::displayAmount(m_amount / value); - ui->label_split->setText(QString("%1 XMR ≈ %2x %3 XMR").arg(origAmount, QString::number(value), splitAmount)); + ui->label_split->setText(QString("%1 WOW ≈ %2x %3 WOW").arg(origAmount, QString::number(value), splitAmount)); }); ui->label_split->setText(""); diff --git a/src/dialog/OutputSweepDialog.ui b/src/dialog/OutputSweepDialog.ui index 5225aa14..fa80bf4e 100644 --- a/src/dialog/OutputSweepDialog.ui +++ b/src/dialog/OutputSweepDialog.ui @@ -130,7 +130,7 @@ false - 1.000000000000 XMR ≈ 5x 0.200000000000 XMR + 1.000000000000 WOW ≈ 5x 0.200000000000 WOW Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse diff --git a/src/dialog/PaymentRequestDialog.cpp b/src/dialog/PaymentRequestDialog.cpp index 9f4527de..ff573b4d 100644 --- a/src/dialog/PaymentRequestDialog.cpp +++ b/src/dialog/PaymentRequestDialog.cpp @@ -89,7 +89,7 @@ void PaymentRequestDialog::calculateCrypto() { QString fiatCurrency = ui->comboCurrency->currentText(); QString fiatAmount = ui->line_amountFiat->text(); - double cryptoAmount = appData()->prices.convert(fiatCurrency, "XMR", fiatAmount.toDouble()); + double cryptoAmount = appData()->prices.convert(fiatCurrency, "WOW", fiatAmount.toDouble()); ui->line_amount->setText(QString::number(cryptoAmount, 'f', 10)); } @@ -97,7 +97,7 @@ void PaymentRequestDialog::calculateFiat() { QString fiatCurrency = ui->comboCurrency->currentText(); QString cryptoAmount = ui->line_amount->text(); - double fiatAmount = appData()->prices.convert("XMR", fiatCurrency, cryptoAmount.toDouble()); + double fiatAmount = appData()->prices.convert("WOW", fiatCurrency, cryptoAmount.toDouble()); ui->line_amountFiat->setText(QString::number(fiatAmount, 'f', 2)); } diff --git a/src/dialog/PaymentRequestDialog.ui b/src/dialog/PaymentRequestDialog.ui index 60fc7160..83aa7b7b 100644 --- a/src/dialog/PaymentRequestDialog.ui +++ b/src/dialog/PaymentRequestDialog.ui @@ -64,7 +64,7 @@ - XMR + WOW diff --git a/src/dialog/TxConfAdvDialog.cpp b/src/dialog/TxConfAdvDialog.cpp index 39fecac7..d3302f17 100644 --- a/src/dialog/TxConfAdvDialog.cpp +++ b/src/dialog/TxConfAdvDialog.cpp @@ -108,7 +108,7 @@ void TxConfAdvDialog::setAmounts(quint64 amount, quint64 fee) { QString preferredCur = conf()->get(Config::preferredFiatCurrency).toString(); auto convert = [preferredCur](double amount){ - return QString::number(appData()->prices.convert("XMR", preferredCur, amount), 'f', 2); + return QString::number(appData()->prices.convert("WOW", preferredCur, amount), 'f', 2); }; QString amount_str = WalletManager::displayAmount(amount); diff --git a/src/dialog/TxConfDialog.cpp b/src/dialog/TxConfDialog.cpp index 92c05cd8..7c6764d5 100644 --- a/src/dialog/TxConfDialog.cpp +++ b/src/dialog/TxConfDialog.cpp @@ -27,7 +27,7 @@ TxConfDialog::TxConfDialog(Wallet *wallet, PendingTransaction *tx, const QString QString preferredCur = conf()->get(Config::preferredFiatCurrency).toString(); auto convert = [preferredCur](double amount){ - return QString::number(appData()->prices.convert("XMR", preferredCur, amount), 'f', 2); + return QString::number(appData()->prices.convert("WOW", preferredCur, amount), 'f', 2); }; QString amount = WalletManager::displayAmount(tx->amount()); diff --git a/src/dialog/TxInfoDialog.cpp b/src/dialog/TxInfoDialog.cpp index 32e7d887..0ecb3f1a 100644 --- a/src/dialog/TxInfoDialog.cpp +++ b/src/dialog/TxInfoDialog.cpp @@ -147,7 +147,7 @@ void TxInfoDialog::setData(const TransactionRow &tx) { } QString direction = tx.direction == TransactionRow::Direction_In ? "received" : "sent"; - ui->label_amount->setText(QString("Amount %1: %2 XMR").arg(direction, tx.displayAmount())); + ui->label_amount->setText(QString("Amount %1: %2 WOW").arg(direction, tx.displayAmount())); QString fee; if (tx.coinbase) @@ -157,7 +157,7 @@ void TxInfoDialog::setData(const TransactionRow &tx) { else if (tx.displayFee().isEmpty()) fee = "N/A"; else - fee = QString("%1 XMR").arg(tx.displayFee()); + fee = QString("%1 WOW").arg(tx.displayFee()); ui->label_fee->setText(QString("Fee: %1").arg(fee)); diff --git a/src/dialog/TxPoolViewerDialog.cpp b/src/dialog/TxPoolViewerDialog.cpp index b502958b..6afad6ac 100644 --- a/src/dialog/TxPoolViewerDialog.cpp +++ b/src/dialog/TxPoolViewerDialog.cpp @@ -69,7 +69,7 @@ void TxPoolViewerDialog::onTxPoolBacklog(const QVector &txPool, item->setData(0, Qt::UserRole, entry.weight); item->setTextAlignment(0, Qt::AlignRight); - item->setText(1, QString("%1 XMR").arg(WalletManager::displayAmount(entry.fee))); + item->setText(1, QString("%1 WOW").arg(WalletManager::displayAmount(entry.fee))); item->setData(1, Qt::UserRole, entry.fee); item->setTextAlignment(1, Qt::AlignRight); @@ -111,7 +111,7 @@ void TxPoolViewerDialog::onTxPoolBacklog(const QVector &txPool, ui->tree_pool->header()->setSectionResizeMode(1, QHeaderView::ResizeToContents); ui->label_totalWeight->setText(Utils::formatBytes(totalWeight)); - ui->label_totalFees->setText(QString("%1 XMR").arg(WalletManager::displayAmount(totalFees))); + ui->label_totalFees->setText(QString("%1 WOW").arg(WalletManager::displayAmount(totalFees))); quint64 fullRewardZone = blockWeightLimit >> 1; ui->label_blockWeightLimit->setText(Utils::formatBytes(fullRewardZone)); diff --git a/src/dialog/TxProofDialog.cpp b/src/dialog/TxProofDialog.cpp index b441ab85..28a8b8b0 100644 --- a/src/dialog/TxProofDialog.cpp +++ b/src/dialog/TxProofDialog.cpp @@ -100,7 +100,7 @@ void TxProofDialog::selectOutProof() { this->selectTxProof(); ui->combo_address->addItems(m_OutDestinations); - ui->label_summary->setText("This proof shows you paid x XMR to the address selected above."); + ui->label_summary->setText("This proof shows you paid x WOW to the address selected above."); } void TxProofDialog::selectInProof() { @@ -119,7 +119,7 @@ void TxProofDialog::selectInProof() { this->selectTxProof(); ui->combo_address->addItems(m_InDestinations); - ui->label_summary->setText("This proof shows you received x XMR to the address selected above."); + ui->label_summary->setText("This proof shows you received x WOW to the address selected above."); } void TxProofDialog::selectTxProof() { diff --git a/src/dialog/TxProofDialog.ui b/src/dialog/TxProofDialog.ui index f71486aa..6b7dd50f 100644 --- a/src/dialog/TxProofDialog.ui +++ b/src/dialog/TxProofDialog.ui @@ -280,7 +280,7 @@ - This proof shows I paid x XMR to ADDR. + This proof shows I paid x WOW to ADDR. diff --git a/src/dialog/VerifyProofDialog.cpp b/src/dialog/VerifyProofDialog.cpp index 7ff4ecd8..76dacffa 100644 --- a/src/dialog/VerifyProofDialog.cpp +++ b/src/dialog/VerifyProofDialog.cpp @@ -113,7 +113,7 @@ void VerifyProofDialog::checkTxKey() { return; } - this->proofStatus(true, QString("Proof is valid.\n\nThis address received %1 XMR, with %2 confirmations").arg(res.amount, QString::number(res.confirmations))); + this->proofStatus(true, QString("Proof is valid.\n\nThis address received %1 WOW, with %2 confirmations").arg(res.amount, QString::number(res.confirmations))); } void VerifyProofDialog::checkFormattedProof() { @@ -199,7 +199,7 @@ void VerifyProofDialog::onTxProofVerified(TxProofResult r) { return; } - this->proofStatus(true, QString("Proof is valid.\n\nThis address received %1 XMR, with %2 confirmation(s)").arg(WalletManager::displayAmount(r.received), QString::number(r.confirmations))); + this->proofStatus(true, QString("Proof is valid.\n\nThis address received %1 WOW, with %2 confirmation(s)").arg(WalletManager::displayAmount(r.received), QString::number(r.confirmations))); } void VerifyProofDialog::onSpendProofVerified(QPair r) { diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index c6e297c2..55c684cd 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -661,7 +661,7 @@ bool Wallet::keyImageSyncNeeded(quint64 amount, bool sendAll) const { return this->hasUnknownKeyImages(); } - // 0.001 XMR to account for tx fee + // 0.001 WOW to account for tx fee return ((amount + WalletManager::amountFromDouble(0.001)) > this->viewOnlyBalance(this->currentSubaddressAccount())); } diff --git a/src/plugins/calc/CalcWidget.cpp b/src/plugins/calc/CalcWidget.cpp index 11ea972e..34991b67 100644 --- a/src/plugins/calc/CalcWidget.cpp +++ b/src/plugins/calc/CalcWidget.cpp @@ -125,7 +125,7 @@ void CalcWidget::initComboBox() { this->setupComboBox(ui->comboCalcFrom, filteredCryptoKeys, filteredFiatKeys); this->setupComboBox(ui->comboCalcTo, filteredCryptoKeys, filteredFiatKeys); - ui->comboCalcFrom->setCurrentIndex(ui->comboCalcFrom->findText("XMR")); + ui->comboCalcFrom->setCurrentIndex(ui->comboCalcFrom->findText("WOW")); if (!preferredFiat.isEmpty()) { ui->comboCalcTo->setCurrentIndex(ui->comboCalcTo->findText(preferredFiat)); diff --git a/src/plugins/crowdfunding/CCSProgressDelegate.cpp b/src/plugins/crowdfunding/CCSProgressDelegate.cpp index c915d24d..6219be36 100644 --- a/src/plugins/crowdfunding/CCSProgressDelegate.cpp +++ b/src/plugins/crowdfunding/CCSProgressDelegate.cpp @@ -30,7 +30,7 @@ void CCSProgressDelegate::paint(QPainter *painter, const QStyleOptionViewItem &o progressBarOption.textVisible = true; QSharedPointer entry = m_model->entry(index.row()); - auto target = QString("%1/%2 XMR").arg(entry->raised_amount).arg(entry->target_amount); + auto target = QString("%1/%2 WOW").arg(entry->raised_amount).arg(entry->target_amount); auto progress = (int)entry->percentage_funded; progressBarOption.progress = progress < 0 ? 0 : progress; progressBarOption.text = target; diff --git a/src/utils/AppData.cpp b/src/utils/AppData.cpp index 4f1dd9fb..f3938256 100644 --- a/src/utils/AppData.cpp +++ b/src/utils/AppData.cpp @@ -33,7 +33,7 @@ AppData::AppData(QObject *parent) connect(websocketNotifier(), &WebsocketNotifier::TxFiatHistoryReceived, this->txFiatHistory, &TxFiatHistory::onWSData); connect(websocketNotifier(), &WebsocketNotifier::BlockHeightsReceived, this, &AppData::onBlockHeightsReceived); - // wownero: poll WOW (+ BTC/XMR/etc.) USD prices from neroswap every 2 minutes. + // wownero: poll WOW (+ BTC/WOW/etc.) USD prices from neroswap every 2 minutes. m_network = new Networking(this); auto fetchNeroswapPrices = [this] { QNetworkReply *reply = m_network->getJson(this, "https://prices.neroswap.com/v1/prices"); diff --git a/src/utils/Utils.cpp b/src/utils/Utils.cpp index b468fed3..801204a7 100644 --- a/src/utils/Utils.cpp +++ b/src/utils/Utils.cpp @@ -180,7 +180,7 @@ QString defaultWalletDir() { if (appImagePath.isEmpty()) { qDebug() << "Not an appimage, using currentPath()"; if (QDir(QDir::currentPath() + "/.feather").exists()) { - return QDir::currentPath() + "/.feather/Monero/wallets"; + return QDir::currentPath() + "/.feather/Wownero/wallets"; } return QDir::currentPath() + "/feather_data/wallets"; } @@ -188,7 +188,7 @@ QString defaultWalletDir() { QFileInfo appImageDir(appImagePath); QString absolutePath = appImageDir.absoluteDir().path(); if (QDir(absolutePath + "/.feather").exists()) { - return absolutePath + "/.feather/Monero/wallets"; + return absolutePath + "/.feather/Wownero/wallets"; } return absolutePath + "/feather_data/wallets"; }(); @@ -202,9 +202,9 @@ QString defaultWalletDir() { } #if defined(Q_OS_LINUX) or defined(Q_OS_MAC) - return QString("%1/Monero/wallets").arg(QDir::homePath()); + return QString("%1/Wownero/wallets").arg(QDir::homePath()); #elif defined(Q_OS_WIN) - return QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + "/Monero/wallets"; + return QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) + "/Wownero/wallets"; #endif } diff --git a/src/utils/config.cpp b/src/utils/config.cpp index e7d5f33e..47ab08d9 100644 --- a/src/utils/config.cpp +++ b/src/utils/config.cpp @@ -112,7 +112,7 @@ static const QHash configStrings = { {Config::cameraExposureTime, {QS("cameraExposureTime"), 10}}, {Config::fiatSymbols, {QS("fiatSymbols"), QStringList{"USD", "EUR", "GBP", "CAD", "AUD", "RUB"}}}, - {Config::cryptoSymbols, {QS("cryptoSymbols"), QStringList{"BTC", "ETH", "LTC", "XMR", "ZEC"}}}, + {Config::cryptoSymbols, {QS("cryptoSymbols"), QStringList{"BTC", "ETH", "LTC", "WOW", "ZEC"}}}, // Tor {Config::proxy, {QS("proxy"), Config::Proxy::Tor}}, @@ -129,7 +129,7 @@ static const QHash configStrings = { {Config::enabledPlugins, {QS("enabledPlugins"), QStringList{"tickers", "crowdfunding", "revuo", "calc"}}}, {Config::restartRequired, {QS("restartRequired"), false}}, - {Config::tickers, {QS("tickers"), QStringList{"XMR", "BTC", "XMR/BTC"}}}, + {Config::tickers, {QS("tickers"), QStringList{"WOW", "BTC", "WOW/BTC"}}}, {Config::tickersShowFiatBalance, {QS("tickersShowFiatBalance"), true}}, }; diff --git a/src/utils/prices.cpp b/src/utils/prices.cpp index 573d7ae2..b5d821f7 100644 --- a/src/utils/prices.cpp +++ b/src/utils/prices.cpp @@ -35,7 +35,7 @@ void Prices::cryptoPricesReceived(const QJsonArray &data) { } void Prices::neroswapPricesReceived(const QJsonObject &data) { - // neroswap returns {"rates": {"WOW": usd, "XMR": usd, ...}}. It is wowlet's sole crypto-price + // neroswap returns {"rates": {"WOW": usd, "WOW": usd, ...}}. It is wowlet's sole crypto-price // source (feather's websocket server does not carry WOW), so repopulate markets from it. QJsonObject ratesData = data.value("rates").toObject(); if (ratesData.isEmpty()) diff --git a/src/utils/updater/UpdateDialog.ui b/src/utils/updater/UpdateDialog.ui index 6a848cf2..c33eec18 100644 --- a/src/utils/updater/UpdateDialog.ui +++ b/src/utils/updater/UpdateDialog.ui @@ -17,7 +17,7 @@ - New Feather version is available. + New wowlet version is available. @@ -107,7 +107,7 @@ - Restart Feather + Restart wowlet true diff --git a/src/widgets/NetworkProxyWidget.ui b/src/widgets/NetworkProxyWidget.ui index def52dae..9a99908a 100644 --- a/src/widgets/NetworkProxyWidget.ui +++ b/src/widgets/NetworkProxyWidget.ui @@ -146,7 +146,7 @@ - Let Feather start and manage a Tor daemon + Let wowlet start and manage a Tor daemon @@ -260,7 +260,7 @@ - Feather is connected to a local node. Proxy settings ignored for node traffic. + wowlet is connected to a local node. Proxy settings ignored for node traffic. true diff --git a/src/widgets/NodeWidget.ui b/src/widgets/NodeWidget.ui index f72c8ad4..cb81ef0c 100644 --- a/src/widgets/NodeWidget.ui +++ b/src/widgets/NodeWidget.ui @@ -87,7 +87,7 @@ - Let Feather manage this list + Let wowlet manage this list diff --git a/src/widgets/TickerWidget.cpp b/src/widgets/TickerWidget.cpp index 75b5cfe6..ec505a17 100644 --- a/src/widgets/TickerWidget.cpp +++ b/src/widgets/TickerWidget.cpp @@ -73,7 +73,7 @@ BalanceTickerWidget::BalanceTickerWidget(QWidget *parent, Wallet *wallet, bool t void BalanceTickerWidget::updateDisplay() { double balance = (m_totalBalance ? m_wallet->balanceAll() : m_wallet->balance()) / constants::cdiv; QString fiatCurrency = conf()->get(Config::preferredFiatCurrency).toString(); - double balanceFiatAmount = appData()->prices.convert("XMR", fiatCurrency, balance); + double balanceFiatAmount = appData()->prices.convert("WOW", fiatCurrency, balance); if (balanceFiatAmount < 0) return; this->setFiatText(balanceFiatAmount, fiatCurrency); diff --git a/src/widgets/TxDetailsSimple.cpp b/src/widgets/TxDetailsSimple.cpp index 61be8f32..56ac15dc 100644 --- a/src/widgets/TxDetailsSimple.cpp +++ b/src/widgets/TxDetailsSimple.cpp @@ -28,7 +28,7 @@ void TxDetailsSimple::setDetails(Wallet *wallet, PendingTransaction *tx, const Q QString preferredCur = conf()->get(Config::preferredFiatCurrency).toString(); auto convert = [preferredCur](double amount){ - return QString::number(appData()->prices.convert("XMR", preferredCur, amount), 'f', 2); + return QString::number(appData()->prices.convert("WOW", preferredCur, amount), 'f', 2); }; QString amount = WalletManager::displayAmount(tx->amount()); diff --git a/src/wizard/PageMenu.cpp b/src/wizard/PageMenu.cpp index 98aca4a8..68342053 100644 --- a/src/wizard/PageMenu.cpp +++ b/src/wizard/PageMenu.cpp @@ -17,7 +17,7 @@ PageMenu::PageMenu(WizardFields *fields, WalletKeysFilesModel *wallets, QWidget ui->setupUi(this); this->setButtonText(QWizard::FinishButton, "Open recent wallet"); - ui->label_version->setText(QString("Feather %1 — by featherwallet.org").arg(FEATHER_VERSION)); + ui->label_version->setText(QString("wowlet %1 — by wownero.org").arg(FEATHER_VERSION)); QTimer::singleShot(0, [this] { ui->frame_seedBump->setVisible(false); }); diff --git a/src/wizard/PageNetwork.cpp b/src/wizard/PageNetwork.cpp index 3ff23435..d658a77f 100644 --- a/src/wizard/PageNetwork.cpp +++ b/src/wizard/PageNetwork.cpp @@ -40,7 +40,7 @@ PageNetwork::PageNetwork(QWidget *parent) bool nodeFound = res.first; if (nodeFound) { ui->frame_nodeDetected->show(); - ui->label_nodeDetected->setText(QString("Feather detected a local node on %1").arg(res.second)); + ui->label_nodeDetected->setText(QString("wowlet detected a local node on %1").arg(res.second)); ui->btnGroup_network->button(Button::CUSTOM)->click(); ui->line_customNode->setText(res.second); diff --git a/src/wizard/PageNetwork.ui b/src/wizard/PageNetwork.ui index cc6a1929..8e26fb2c 100644 --- a/src/wizard/PageNetwork.ui +++ b/src/wizard/PageNetwork.ui @@ -31,7 +31,7 @@ - How do you want to connect to the Monero network? + How do you want to connect to the Wownero network? false @@ -41,7 +41,7 @@ - Feather needs to connect to a node to obtain the data required to scan for your transactions. + wowlet needs to connect to a node to obtain the data required to scan for your transactions. true @@ -51,7 +51,7 @@ - In most cases you want to let Feather pick one at random. Nodes are hosted by the developers and trusted members of the Monero community. + In most cases you want to let wowlet pick one at random. Nodes are hosted by the developers and trusted members of the Wownero community. true @@ -111,7 +111,7 @@ - Feather detected a local node on port 18081. + wowlet detected a local node on port 18081. diff --git a/src/wizard/PageNetworkProxy.ui b/src/wizard/PageNetworkProxy.ui index 68c4cb7d..255eaa50 100644 --- a/src/wizard/PageNetworkProxy.ui +++ b/src/wizard/PageNetworkProxy.ui @@ -23,14 +23,14 @@ - How should Feather route its network traffic? + How should wowlet route its network traffic? - By default, Feather routes most traffic over Tor. + By default, wowlet routes most traffic over Tor. true diff --git a/src/wizard/PageNetworkWebsocket.ui b/src/wizard/PageNetworkWebsocket.ui index ebf28c44..dea3d80c 100644 --- a/src/wizard/PageNetworkWebsocket.ui +++ b/src/wizard/PageNetworkWebsocket.ui @@ -30,7 +30,7 @@ - <html><head/><body><p>Feather can connect to a service hosted by the developers to obtain pricing information, a curated list of remote nodes, Home feeds, the latest version of Feather Wallet and more.</p><p>This service is only used to fetch information. The wallet does not send information about its state or your transactions to the server. It is not used for any telemetry or crash reports.</p><p>If you disable this connection some wallet functionality will be unavailable. You can re-enable it at any time.</p></body></html> + <html><head/><body><p>wowlet can connect to a service hosted by the developers to obtain pricing information, a curated list of remote nodes, Home feeds, the latest version of wowlet and more.</p><p>This service is only used to fetch information. The wallet does not send information about its state or your transactions to the server. It is not used for any telemetry or crash reports.</p><p>If you disable this connection some wallet functionality will be unavailable. You can re-enable it at any time.</p></body></html> true