mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-14 12:43:40 +02:00
Merge ElementsProject/elements#1530: fix: use liquidnetwork or liquidtestnet for qr uri
4c79d5a572fix: use liquidnetwork or liquidtestnet for uri in elements mode (Byron Hambly) Pull request description: fixes #1529 ACKs for top commit: tomt1664: ACK4c79d5a572psgreco: ACK4c79d5a572Tree-SHA512: 00862c3851bd1663ed17dfde9ef155840d4d735b3e61ad890155dccdc9cb7fb4fc086021a9ae1a1030ff8e809dc6ffb46a5aeed35d3c5625b44f65ec6cdae421
This commit is contained in:
commit
6bb916a57f
2 changed files with 50 additions and 7 deletions
|
|
@ -142,10 +142,10 @@ void AddButtonShortcut(QAbstractButton* button, const QKeySequence& shortcut)
|
|||
|
||||
bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out)
|
||||
{
|
||||
return false; // TODO
|
||||
|
||||
// return if URI is not valid or is no bitcoin: URI
|
||||
if(!uri.isValid() || uri.scheme() != QString("bitcoin"))
|
||||
// return if URI is not valid or incorrect scheme
|
||||
bool valid_liquid = g_con_elementsmode && (uri.scheme() == QString("liquidnetwork") || uri.scheme() == QString("liquidtestnet"));
|
||||
bool valid_bitcoin = !g_con_elementsmode && (uri.scheme() == QString("bitcoin"));
|
||||
if (!uri.isValid() || !(valid_liquid || valid_bitcoin))
|
||||
return false;
|
||||
|
||||
SendCoinsRecipient rv;
|
||||
|
|
@ -209,7 +209,11 @@ QString formatBitcoinURI(const SendCoinsRecipient &info)
|
|||
{
|
||||
bool bech_32 = info.address.startsWith(QString::fromStdString(Params().Bech32HRP() + "1"));
|
||||
|
||||
QString ret = QString("bitcoin:%1").arg(bech_32 ? info.address.toUpper() : info.address);
|
||||
QString network = QString("bitcoin:%1");
|
||||
if (g_con_elementsmode) {
|
||||
network = Params().NetworkIDString() == "liquidtestnet" ? QString("liquidtestnet:%1") : QString("liquidnetwork:%1");
|
||||
}
|
||||
QString ret = network.arg(bech_32 ? info.address.toUpper() : info.address);
|
||||
int paramCount = 0;
|
||||
|
||||
if (info.amount)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,47 @@
|
|||
|
||||
void URITests::uriTests()
|
||||
{
|
||||
/* Elements doesn't use URI
|
||||
// liquid URI tests
|
||||
g_con_elementsmode = true;
|
||||
SendCoinsRecipient info{"lq1qq0ha4ml3dsqexnkdssskvt203kl54xj5zxt9sfwgzpy7unf49aagslltf4k7pqjtwk4j8emny0k8vppj88k0z9pa4y0mwfzyu", "label", 100000000, "message"};
|
||||
QString liquid_uri = GUIUtil::formatBitcoinURI(info);
|
||||
QVERIFY(liquid_uri.split(":")[0] == "liquidnetwork");
|
||||
|
||||
SendCoinsRecipient rcv;
|
||||
QVERIFY(GUIUtil::parseBitcoinURI(liquid_uri, &rcv));
|
||||
QVERIFY(rcv.address == QString("lq1qq0ha4ml3dsqexnkdssskvt203kl54xj5zxt9sfwgzpy7unf49aagslltf4k7pqjtwk4j8emny0k8vppj88k0z9pa4y0mwfzyu"));
|
||||
QVERIFY(rcv.amount == 100000000);
|
||||
QVERIFY(rcv.label == QString("label"));
|
||||
QVERIFY(rcv.message == QString("message"));
|
||||
|
||||
// example liquidv1 URI from blockstream app
|
||||
QUrl url{QString("liquidnetwork:lq1qq2j9v49hgsgz9s7v7myty50hsy0a6vk6sjmc9z6m0k208njwcllg9dzwk6prxmzy0wzvejc8tdn0fls88x8ksefwdw2l5hym9?assetid=6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d&amount=1.00000000")};
|
||||
QVERIFY(GUIUtil::parseBitcoinURI(url, &rcv));
|
||||
QVERIFY(rcv.address == QString("lq1qq2j9v49hgsgz9s7v7myty50hsy0a6vk6sjmc9z6m0k208njwcllg9dzwk6prxmzy0wzvejc8tdn0fls88x8ksefwdw2l5hym9"));
|
||||
QVERIFY(rcv.amount == 100000000);
|
||||
QVERIFY(rcv.label.isEmpty());
|
||||
QVERIFY(rcv.message.isEmpty());
|
||||
|
||||
// example liquid testnet URI from blockstream app
|
||||
url.setUrl(QString("liquidtestnet:tlq1qqggjrm7s09agm8vvgsld8sq3a0luppzwyg3fl3rtrl9xcq50n2cny8le5xdl4k7ufxz6m4249njkdvxfzhdax6fczggf8ncjz?assetid=144c654344aa716d6f3abcc1ca90e5641e4e2a7f633bc09fe3baf64585819a49&amount=0.00100000"));
|
||||
QVERIFY(GUIUtil::parseBitcoinURI(url, &rcv));
|
||||
QVERIFY(rcv.address == QString("tlq1qqggjrm7s09agm8vvgsld8sq3a0luppzwyg3fl3rtrl9xcq50n2cny8le5xdl4k7ufxz6m4249njkdvxfzhdax6fczggf8ncjz"));
|
||||
QVERIFY(rcv.amount == 100000);
|
||||
QVERIFY(rcv.label.isEmpty());
|
||||
QVERIFY(rcv.message.isEmpty());
|
||||
|
||||
// check bitcoin mode
|
||||
g_con_elementsmode = false;
|
||||
info = SendCoinsRecipient{"175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W", "label", 100000000, "message"};
|
||||
QString bitcoin_uri = GUIUtil::formatBitcoinURI(info);
|
||||
QVERIFY(bitcoin_uri.split(":")[0] == "bitcoin");
|
||||
QVERIFY(GUIUtil::parseBitcoinURI(bitcoin_uri, &rcv));
|
||||
QVERIFY(rcv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
|
||||
QVERIFY(rcv.amount == 100000000);
|
||||
QVERIFY(rcv.label == QString("label"));
|
||||
QVERIFY(rcv.message == QString("message"));
|
||||
|
||||
// Bitcoin URI tests from upstream
|
||||
SendCoinsRecipient rv;
|
||||
QUrl uri;
|
||||
uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist="));
|
||||
|
|
@ -64,5 +104,4 @@ void URITests::uriTests()
|
|||
|
||||
uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000.0&label=Wikipedia Example"));
|
||||
QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
|
||||
*/
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue