diff options
| author | Wladimir J. van der Laan <[email protected]> | 2012-02-12 05:52:34 -0800 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2012-02-12 05:52:34 -0800 |
| commit | 15b87b2ec40bdcbc7e8173c79b829fc0f550909e (patch) | |
| tree | c8e5a9f35d20d22a76b9c67dee073c0fb38bd706 /src/qt/guiutil.cpp | |
| parent | Add export action to file menu (as long as we have a file menu, export certai... (diff) | |
| parent | Add Bitcoin-Qt test suite with some bitcoin: URL Tests to start. (diff) | |
| download | discoin-15b87b2ec40bdcbc7e8173c79b829fc0f550909e.tar.xz discoin-15b87b2ec40bdcbc7e8173c79b829fc0f550909e.zip | |
Merge pull request #807 from TheBlueMatt/bip21
Add req- prefixes to comply with BIP21.
Diffstat (limited to 'src/qt/guiutil.cpp')
| -rw-r--r-- | src/qt/guiutil.cpp | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 22d9cc738..29ef554ac 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -56,19 +56,36 @@ bool GUIUtil::parseBitcoinURL(const QUrl *url, SendCoinsRecipient *out) SendCoinsRecipient rv; rv.address = url->path(); - rv.label = url->queryItemValue("label"); - - QString amount = url->queryItemValue("amount"); - if(amount.isEmpty()) - { - rv.amount = 0; - } - else // Amount is non-empty + rv.amount = 0; + QList<QPair<QString, QString> > items = url->queryItems(); + for (QList<QPair<QString, QString> >::iterator i = items.begin(); i != items.end(); i++) { - if(!BitcoinUnits::parse(BitcoinUnits::BTC, amount, &rv.amount)) + bool fShouldReturnFalse = false; + if (i->first.startsWith("req-")) { - return false; + i->first.remove(0, 4); + fShouldReturnFalse = true; } + + if (i->first == "label") + { + rv.label = i->second; + fShouldReturnFalse = false; + } + else if (i->first == "amount") + { + if(!i->second.isEmpty()) + { + if(!BitcoinUnits::parse(BitcoinUnits::BTC, i->second, &rv.amount)) + { + return false; + } + } + fShouldReturnFalse = false; + } + + if (fShouldReturnFalse) + return false; } if(out) { |