Page MenuHomePhabricator

D765.diff
No OneTemporary

D765.diff

diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h
--- a/src/qt/guiutil.h
+++ b/src/qt/guiutil.h
@@ -55,7 +55,7 @@
// parsing
bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out);
bool parseBitcoinURI(QString uri, SendCoinsRecipient *out);
-QString formatBitcoinURI(const Config &cfg, const SendCoinsRecipient &info);
+QString formatBitcoinURI(const SendCoinsRecipient &info);
// Returns true if given address+amount meets "dust" definition
bool isDust(const QString &address, const Amount amount);
diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp
--- a/src/qt/guiutil.cpp
+++ b/src/qt/guiutil.cpp
@@ -10,7 +10,6 @@
#include "qvalidatedlineedit.h"
#include "walletmodel.h"
-#include "cashaddr.h"
#include "config.h"
#include "dstencode.h"
#include "init.h"
@@ -166,23 +165,12 @@
widget->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
}
-static bool IsCashAddrEncoded(const QUrl &uri) {
- const std::string addr = (uri.scheme() + ":" + uri.path()).toStdString();
- auto decoded = cashaddr::Decode(addr);
- return !decoded.first.empty();
-}
-
bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out) {
// return if URI is not valid or is no bitcoincash: URI
if (!uri.isValid() || uri.scheme() != URI_SCHEME) return false;
SendCoinsRecipient rv;
- if (IsCashAddrEncoded(uri)) {
- rv.address = uri.scheme() + ":" + uri.path();
- } else {
- // strip out uri scheme for base58 encoded addresses
- rv.address = uri.path();
- }
+ rv.address = uri.path();
// Trim any following forward slash which may have been added by the OS
if (rv.address.endsWith("/")) {
rv.address.truncate(rv.address.length() - 1);
@@ -244,12 +232,8 @@
return parseBitcoinURI(uriInstance, out);
}
-QString formatBitcoinURI(const Config &cfg, const SendCoinsRecipient &info) {
- QString ret = info.address;
- if (!cfg.UseCashAddrEncoding()) {
- // prefix address with uri scheme for base58 encoded addresses.
- ret = (URI_SCHEME + ":%1").arg(ret);
- }
+QString formatBitcoinURI(const SendCoinsRecipient &info) {
+ QString ret = (URI_SCHEME + ":%1").arg(info.address);
int paramCount = 0;
if (info.amount) {
diff --git a/src/qt/receivecoinsdialog.cpp b/src/qt/receivecoinsdialog.cpp
--- a/src/qt/receivecoinsdialog.cpp
+++ b/src/qt/receivecoinsdialog.cpp
@@ -279,7 +279,7 @@
const RecentRequestsTableModel *const submodel =
model->getRecentRequestsTableModel();
const QString uri =
- GUIUtil::formatBitcoinURI(*cfg, submodel->entry(sel.row()).recipient);
+ GUIUtil::formatBitcoinURI(submodel->entry(sel.row()).recipient);
GUIUtil::setClipboard(uri);
}
diff --git a/src/qt/receiverequestdialog.cpp b/src/qt/receiverequestdialog.cpp
--- a/src/qt/receiverequestdialog.cpp
+++ b/src/qt/receiverequestdialog.cpp
@@ -114,7 +114,7 @@
if (target.isEmpty()) target = info.address;
setWindowTitle(tr("Request payment to %1").arg(target));
- QString uri = GUIUtil::formatBitcoinURI(*cfg, info);
+ QString uri = GUIUtil::formatBitcoinURI(info);
ui->btnSaveAs->setEnabled(false);
QString html;
html += "<html><font face='verdana, arial, helvetica, sans-serif'>";
@@ -185,7 +185,7 @@
}
void ReceiveRequestDialog::on_btnCopyURI_clicked() {
- GUIUtil::setClipboard(GUIUtil::formatBitcoinURI(*cfg, info));
+ GUIUtil::setClipboard(GUIUtil::formatBitcoinURI(info));
}
void ReceiveRequestDialog::on_btnCopyAddress_clicked() {
diff --git a/src/qt/test/uritests.h b/src/qt/test/uritests.h
--- a/src/qt/test/uritests.h
+++ b/src/qt/test/uritests.h
@@ -12,9 +12,7 @@
Q_OBJECT
private Q_SLOTS:
- void uriTestsBase58();
- void uriTestsCashAddr();
- void uriTestFormatURI();
+ void uriTests();
};
#endif // BITCOIN_QT_TEST_URITESTS_H
diff --git a/src/qt/test/uritests.cpp b/src/qt/test/uritests.cpp
--- a/src/qt/test/uritests.cpp
+++ b/src/qt/test/uritests.cpp
@@ -4,13 +4,12 @@
#include "uritests.h"
-#include "config.h"
#include "guiutil.h"
#include "walletmodel.h"
#include <QUrl>
-void URITests::uriTestsBase58() {
+void URITests::uriTests() {
SendCoinsRecipient rv;
QUrl uri;
uri.setUrl(QString(
@@ -81,119 +80,3 @@
"000.0&label=Wikipedia Example"));
QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
}
-
-void URITests::uriTestsCashAddr() {
- SendCoinsRecipient rv;
- QUrl uri;
- uri.setUrl(QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?"
- "req-dontexist="));
- QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
-
- uri.setUrl(QString(
- "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?dontexist="));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
- QVERIFY(rv.address ==
- QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a"));
- QVERIFY(rv.label == QString());
- QVERIFY(rv.amount == 0);
-
- uri.setUrl(
- QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?label="
- "Wikipedia Example Address"));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
- QVERIFY(rv.address ==
- QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a"));
- QVERIFY(rv.label == QString("Wikipedia Example Address"));
- QVERIFY(rv.amount == 0);
-
- uri.setUrl(QString(
- "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=0.001"));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
- QVERIFY(rv.address ==
- QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a"));
- QVERIFY(rv.label == QString());
- QVERIFY(rv.amount == 100000);
-
- uri.setUrl(QString(
- "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=1.001"));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
- QVERIFY(rv.address ==
- QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a"));
- QVERIFY(rv.label == QString());
- QVERIFY(rv.amount == 100100000);
-
- uri.setUrl(QString(
- "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=100&"
- "label=Wikipedia Example"));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
- QVERIFY(rv.address ==
- QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a"));
- QVERIFY(rv.amount == 10000000000LL);
- QVERIFY(rv.label == QString("Wikipedia Example"));
-
- uri.setUrl(QString(
- "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?message="
- "Wikipedia Example Address"));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
- QVERIFY(rv.address ==
- QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a"));
- QVERIFY(rv.label == QString());
-
- QVERIFY(
- GUIUtil::parseBitcoinURI("bitcoincash://"
- "qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?"
- "message=Wikipedia Example Address",
- &rv));
- QVERIFY(rv.address ==
- QString("bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a"));
- QVERIFY(rv.label == QString());
-
- uri.setUrl(QString(
- "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?req-message="
- "Wikipedia Example Address"));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
-
- uri.setUrl(QString(
- "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=1,"
- "000&label=Wikipedia Example"));
- QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
-
- uri.setUrl(QString(
- "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?amount=1,"
- "000.0&label=Wikipedia Example"));
- QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
-}
-
-namespace {
-class UriTestConfig : public DummyConfig {
-public:
- UriTestConfig(bool useCashAddr) : useCashAddr(useCashAddr) {}
- bool UseCashAddrEncoding() const override { return useCashAddr; }
-
-private:
- bool useCashAddr;
-};
-
-} // anon ns
-
-void URITests::uriTestFormatURI() {
- {
- UriTestConfig cfg(true);
- SendCoinsRecipient r;
- r.address = "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a";
- r.message = "test";
- QString uri = GUIUtil::formatBitcoinURI(cfg, r);
- QVERIFY(uri == "bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a?"
- "message=test");
- }
-
- {
- UriTestConfig cfg(false);
- SendCoinsRecipient r;
- r.address = "175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W";
- r.message = "test";
- QString uri = GUIUtil::formatBitcoinURI(cfg, r);
- QVERIFY(uri ==
- "bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=test");
- }
-}

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 1, 11:22 (8 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5187586
Default Alt Text
D765.diff (8 KB)

Event Timeline