diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -4,7 +4,6 @@ #include -#include #include #include #include @@ -158,12 +157,6 @@ 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 QString &scheme, const QUrl &uri, SendCoinsRecipient *out) { // return if URI has wrong scheme. @@ -172,12 +165,8 @@ } 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.scheme() + ":" + 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); 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,7 +12,6 @@ Q_OBJECT private Q_SLOTS: - void uriTestsBase58(); void uriTestsCashAddr(); void uriTestFormatURI(); }; 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 @@ -12,81 +12,6 @@ #include -void URITests::uriTestsBase58() { - const auto params = CreateChainParams(CBaseChainParams::MAIN); - - SendCoinsRecipient rv; - QString scheme = QString::fromStdString(params->CashAddrPrefix()); - QUrl uri; - uri.setUrl(QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist=")); - QVERIFY(!GUIUtil::parseBitcoinURI(scheme, uri, &rv)); - - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist=")); - QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); - QVERIFY(rv.label == QString()); - QVERIFY(rv.amount == Amount::zero()); - - uri.setUrl(QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=" - "Wikipedia Example Address")); - QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); - QVERIFY(rv.label == QString("Wikipedia Example Address")); - QVERIFY(rv.amount == Amount::zero()); - - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=0.001")); - QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); - QVERIFY(rv.label == QString()); - QVERIFY(rv.amount == 100000 * SATOSHI); - - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1.001")); - QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); - QVERIFY(rv.label == QString()); - QVERIFY(rv.amount == 100100000 * SATOSHI); - - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=100&" - "label=Wikipedia Example")); - QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); - QVERIFY(rv.amount == int64_t(10000000000) * SATOSHI); - QVERIFY(rv.label == QString("Wikipedia Example")); - - uri.setUrl(QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=" - "Wikipedia Example Address")); - QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); - QVERIFY(rv.label == QString()); - - QVERIFY(GUIUtil::parseBitcoinURI(scheme, - "bitcoincash://" - "175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?" - "message=Wikipedia Example Address", - &rv)); - QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W")); - QVERIFY(rv.label == QString()); - - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-message=" - "Wikipedia Example Address")); - QVERIFY(GUIUtil::parseBitcoinURI(scheme, uri, &rv)); - - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1," - "000&label=Wikipedia Example")); - QVERIFY(!GUIUtil::parseBitcoinURI(scheme, uri, &rv)); - - uri.setUrl( - QString("bitcoincash:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1," - "000.0&label=Wikipedia Example")); - QVERIFY(!GUIUtil::parseBitcoinURI(scheme, uri, &rv)); -} - void URITests::uriTestsCashAddr() { const auto params = CreateChainParams(CBaseChainParams::MAIN);