diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.cpp | 58 | ||||
-rw-r--r-- | src/qt/bitcoingui.cpp | 6 | ||||
-rw-r--r-- | src/qt/bitcoinstrings.cpp | 7 | ||||
-rw-r--r-- | src/qt/forms/receivecoinsdialog.ui | 2 | ||||
-rw-r--r-- | src/qt/locale/bitcoin_en.ts | 488 | ||||
-rw-r--r-- | src/qt/paymentserver.cpp | 52 | ||||
-rw-r--r-- | src/qt/paymentserver.h | 2 |
7 files changed, 368 insertions, 247 deletions
diff --git a/src/main.cpp b/src/main.cpp index 017a0768d5..9c6c1ba0c3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -56,8 +56,13 @@ int64_t CTransaction::nMinRelayTxFee = 10000; static CMedianFilter<int> cPeerBlockCounts(8, 0); // Amount of blocks that other nodes claim to have -map<uint256, CBlock*> mapOrphanBlocks; -multimap<uint256, CBlock*> mapOrphanBlocksByPrev; +struct COrphanBlock { + uint256 hashBlock; + uint256 hashPrev; + vector<unsigned char> vchBlock; +}; +map<uint256, COrphanBlock*> mapOrphanBlocks; +multimap<uint256, COrphanBlock*> mapOrphanBlocksByPrev; map<uint256, CTransaction> mapOrphanTransactions; map<uint256, set<uint256> > mapOrphanTransactionsByPrev; @@ -985,12 +990,19 @@ bool ReadBlockFromDisk(CBlock& block, const CBlockIndex* pindex) return true; } -uint256 static GetOrphanRoot(const CBlockHeader* pblock) +uint256 static GetOrphanRoot(const uint256& hash) { + map<uint256, COrphanBlock*>::iterator it = mapOrphanBlocks.find(hash); + if (it == mapOrphanBlocks.end()) + return hash; + // Work back to the first block in the orphan chain - while (mapOrphanBlocks.count(pblock->hashPrevBlock)) - pblock = mapOrphanBlocks[pblock->hashPrevBlock]; - return pblock->GetHash(); + do { + map<uint256, COrphanBlock*>::iterator it2 = mapOrphanBlocks.find(it->second->hashPrev); + if (it2 == mapOrphanBlocks.end()) + return it->first; + it = it2; + } while(true); } int64_t GetBlockValue(int nHeight, int64_t nFees) @@ -2277,12 +2289,19 @@ bool ProcessBlock(CValidationState &state, CNode* pfrom, CBlock* pblock, CDiskBl // Accept orphans as long as there is a node to request its parents from if (pfrom) { - CBlock* pblock2 = new CBlock(*pblock); + COrphanBlock* pblock2 = new COrphanBlock(); + { + CDataStream ss(SER_DISK, CLIENT_VERSION); + ss << *pblock; + pblock2->vchBlock = std::vector<unsigned char>(ss.begin(), ss.end()); + } + pblock2->hashBlock = hash; + pblock2->hashPrev = pblock->hashPrevBlock; mapOrphanBlocks.insert(make_pair(hash, pblock2)); - mapOrphanBlocksByPrev.insert(make_pair(pblock2->hashPrevBlock, pblock2)); + mapOrphanBlocksByPrev.insert(make_pair(pblock2->hashPrev, pblock2)); // Ask this guy to fill in what we're missing - PushGetBlocks(pfrom, chainActive.Tip(), GetOrphanRoot(pblock2)); + PushGetBlocks(pfrom, chainActive.Tip(), GetOrphanRoot(hash)); } return true; } @@ -2297,17 +2316,22 @@ bool ProcessBlock(CValidationState &state, CNode* pfrom, CBlock* pblock, CDiskBl for (unsigned int i = 0; i < vWorkQueue.size(); i++) { uint256 hashPrev = vWorkQueue[i]; - for (multimap<uint256, CBlock*>::iterator mi = mapOrphanBlocksByPrev.lower_bound(hashPrev); + for (multimap<uint256, COrphanBlock*>::iterator mi = mapOrphanBlocksByPrev.lower_bound(hashPrev); mi != mapOrphanBlocksByPrev.upper_bound(hashPrev); ++mi) { - CBlock* pblockOrphan = (*mi).second; + CBlock block; + { + CDataStream ss(mi->second->vchBlock, SER_DISK, CLIENT_VERSION); + ss >> block; + } + block.BuildMerkleTree(); // Use a dummy CValidationState so someone can't setup nodes to counter-DoS based on orphan resolution (that is, feeding people an invalid block based on LegitBlockX in order to get anyone relaying LegitBlockX banned) CValidationState stateDummy; - if (AcceptBlock(*pblockOrphan, stateDummy)) - vWorkQueue.push_back(pblockOrphan->GetHash()); - mapOrphanBlocks.erase(pblockOrphan->GetHash()); - delete pblockOrphan; + if (AcceptBlock(block, stateDummy)) + vWorkQueue.push_back(mi->second->hashBlock); + mapOrphanBlocks.erase(mi->second->hashBlock); + delete mi->second; } mapOrphanBlocksByPrev.erase(hashPrev); } @@ -3331,7 +3355,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv) if (!fImporting && !fReindex) pfrom->AskFor(inv); } else if (inv.type == MSG_BLOCK && mapOrphanBlocks.count(inv.hash)) { - PushGetBlocks(pfrom, chainActive.Tip(), GetOrphanRoot(mapOrphanBlocks[inv.hash])); + PushGetBlocks(pfrom, chainActive.Tip(), GetOrphanRoot(inv.hash)); } else if (nInv == nLastBlock) { // In case we are on a very long side-chain, it is possible that we already have // the last block in an inv bundle sent in response to getblocks. Try to detect @@ -4119,7 +4143,7 @@ public: mapBlockIndex.clear(); // orphan blocks - std::map<uint256, CBlock*>::iterator it2 = mapOrphanBlocks.begin(); + std::map<uint256, COrphanBlock*>::iterator it2 = mapOrphanBlocks.begin(); for (; it2 != mapOrphanBlocks.end(); it2++) delete (*it2).second; mapOrphanBlocks.clear(); diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 22c41a6201..67ffa330d7 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -302,12 +302,12 @@ void BitcoinGUI::createActions(bool fIsTestnet) openRPCConsoleAction = new QAction(QIcon(":/icons/debugwindow"), tr("&Debug window"), this); openRPCConsoleAction->setStatusTip(tr("Open debugging and diagnostic console")); - usedSendingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Used sending addresses..."), this); + usedSendingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Sending addresses..."), this); usedSendingAddressesAction->setStatusTip(tr("Show the list of used sending addresses and labels")); - usedReceivingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("Used &receiving addresses..."), this); + usedReceivingAddressesAction = new QAction(QIcon(":/icons/address-book"), tr("&Receiving addresses..."), this); usedReceivingAddressesAction->setStatusTip(tr("Show the list of used receiving addresses and labels")); - openAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_FileIcon), tr("Open URI..."), this); + openAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_FileIcon), tr("Open &URI..."), this); openAction->setStatusTip(tr("Open a bitcoin: URI or payment request")); connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit())); diff --git a/src/qt/bitcoinstrings.cpp b/src/qt/bitcoinstrings.cpp index 183a98061d..b88c7ec290 100644 --- a/src/qt/bitcoinstrings.cpp +++ b/src/qt/bitcoinstrings.cpp @@ -40,6 +40,9 @@ QT_TRANSLATE_NOOP("bitcoin-core", "" "be solved instantly. This is intended for regression testing tools and app " "development."), QT_TRANSLATE_NOOP("bitcoin-core", "" +"Enter regression test mode, which uses a special chain in which blocks can " +"be solved instantly."), +QT_TRANSLATE_NOOP("bitcoin-core", "" "Error: The transaction was rejected! This might happen if some of the coins " "in your wallet were already spent, such as if you used a copy of wallet.dat " "and coins were spent in the copy but not marked as spent here."), @@ -119,6 +122,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Connect to JSON-RPC on <port> (default: 8332 QT_TRANSLATE_NOOP("bitcoin-core", "Connect to a node to retrieve peer addresses, and disconnect"), QT_TRANSLATE_NOOP("bitcoin-core", "Corrupted block database detected"), QT_TRANSLATE_NOOP("bitcoin-core", "Discover own IP address (default: 1 when listening and no -externalip)"), +QT_TRANSLATE_NOOP("bitcoin-core", "Do not load the wallet and disable wallet RPC calls"), QT_TRANSLATE_NOOP("bitcoin-core", "Do you want to rebuild the block database now?"), QT_TRANSLATE_NOOP("bitcoin-core", "Done loading"), QT_TRANSLATE_NOOP("bitcoin-core", "Error initializing block database"), @@ -185,7 +189,6 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Select SOCKS version for -proxy (4 or 5, defa QT_TRANSLATE_NOOP("bitcoin-core", "Send command to Bitcoin server"), QT_TRANSLATE_NOOP("bitcoin-core", "Send commands to node running on <ip> (default: 127.0.0.1)"), QT_TRANSLATE_NOOP("bitcoin-core", "Send trace/debug info to console instead of debug.log file"), -QT_TRANSLATE_NOOP("bitcoin-core", "Send trace/debug info to debugger"), QT_TRANSLATE_NOOP("bitcoin-core", "Server certificate file (default: server.cert)"), QT_TRANSLATE_NOOP("bitcoin-core", "Server private key (default: server.pem)"), QT_TRANSLATE_NOOP("bitcoin-core", "Set database cache size in megabytes (default: 25)"), @@ -204,6 +207,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Specify your own public address"), QT_TRANSLATE_NOOP("bitcoin-core", "Start Bitcoin server"), QT_TRANSLATE_NOOP("bitcoin-core", "System error: "), QT_TRANSLATE_NOOP("bitcoin-core", "This help message"), +QT_TRANSLATE_NOOP("bitcoin-core", "This is intended for regression testing tools and app development."), QT_TRANSLATE_NOOP("bitcoin-core", "Threshold for disconnecting misbehaving peers (default: 100)"), QT_TRANSLATE_NOOP("bitcoin-core", "To use the %s option"), QT_TRANSLATE_NOOP("bitcoin-core", "Transaction amount too small"), @@ -225,6 +229,7 @@ QT_TRANSLATE_NOOP("bitcoin-core", "Verifying wallet..."), QT_TRANSLATE_NOOP("bitcoin-core", "Wait for RPC server to start"), QT_TRANSLATE_NOOP("bitcoin-core", "Wallet %s resides outside data directory %s"), QT_TRANSLATE_NOOP("bitcoin-core", "Wallet needed to be rewritten: restart Bitcoin to complete"), +QT_TRANSLATE_NOOP("bitcoin-core", "Wallet options:"), QT_TRANSLATE_NOOP("bitcoin-core", "Warning"), QT_TRANSLATE_NOOP("bitcoin-core", "Warning: Deprecated argument -debugnet ignored, use -debug=net"), QT_TRANSLATE_NOOP("bitcoin-core", "Warning: This version is obsolete, upgrade required!"), diff --git a/src/qt/forms/receivecoinsdialog.ui b/src/qt/forms/receivecoinsdialog.ui index e7138f5371..8242763e77 100644 --- a/src/qt/forms/receivecoinsdialog.ui +++ b/src/qt/forms/receivecoinsdialog.ui @@ -202,7 +202,7 @@ </font> </property> <property name="text"> - <string>Previously requested payments</string> + <string>Requested payments</string> </property> </widget> </item> diff --git a/src/qt/locale/bitcoin_en.ts b/src/qt/locale/bitcoin_en.ts index 368a4d6003..f52544687b 100644 --- a/src/qt/locale/bitcoin_en.ts +++ b/src/qt/locale/bitcoin_en.ts @@ -322,24 +322,43 @@ This product includes software developed by the OpenSSL Project for use in the O </message> </context> <context> + <name>BitcoinApplication</name> + <message> + <location filename="../bitcoin.cpp" line="+362"/> + <source>Bitcoin Core is shutting down... +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Do not shut down the computer until this window disappears.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> <name>BitcoinGUI</name> <message> - <location filename="../bitcoingui.cpp" line="+260"/> + <location filename="../bitcoingui.cpp" line="+297"/> <source>Sign &message...</source> <translation>Sign &message...</translation> </message> <message> - <location line="+290"/> + <location line="+323"/> <source>Synchronizing with network...</source> <translation>Synchronizing with network...</translation> </message> <message> - <location line="-360"/> + <location line="-395"/> <source>&Overview</source> <translation>&Overview</translation> </message> <message> - <location line="+1"/> + <location line="-139"/> + <source>Node</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+140"/> <source>Show general overview of wallet</source> <translation>Show general overview of wallet</translation> </message> @@ -354,7 +373,7 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>Browse transaction history</translation> </message> <message> - <location line="+15"/> + <location line="+17"/> <source>E&xit</source> <translation>E&xit</translation> </message> @@ -400,7 +419,22 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>&Change Passphrase...</translation> </message> <message> - <location line="+295"/> + <location line="+10"/> + <source>&Sending addresses...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> + <source>&Receiving addresses...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>Open &URI...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+313"/> <source>Importing blocks from disk...</source> <translation>Importing blocks from disk...</translation> </message> @@ -410,12 +444,12 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>Reindexing blocks on disk...</translation> </message> <message> - <location line="-358"/> + <location line="-393"/> <source>Send coins to a Bitcoin address</source> <translation>Send coins to a Bitcoin address</translation> </message> <message> - <location line="+47"/> + <location line="+49"/> <source>Modify configuration options for Bitcoin</source> <translation>Modify configuration options for Bitcoin</translation> </message> @@ -445,18 +479,17 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>&Verify message...</translation> </message> <message> - <location line="+375"/> + <location line="+414"/> <source>Bitcoin</source> <translation>Bitcoin</translation> </message> <message> - <location line="-563"/> - <location line="+10"/> + <location line="-629"/> <source>Wallet</source> <translation>Wallet</translation> </message> <message> - <location line="+113"/> + <location line="+148"/> <source>&Send</source> <translation>&Send</translation> </message> @@ -466,7 +499,7 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>&Receive</translation> </message> <message> - <location line="+44"/> + <location line="+46"/> <location line="+2"/> <source>&Show / Hide</source> <translation>&Show / Hide</translation> @@ -492,86 +525,70 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>Verify messages to ensure they were signed with specified Bitcoin addresses</translation> </message> <message> - <location line="+39"/> + <location line="+44"/> <source>&File</source> <translation>&File</translation> </message> <message> - <location line="+11"/> + <location line="+14"/> <source>&Settings</source> <translation>&Settings</translation> </message> <message> - <location line="+6"/> + <location line="+9"/> <source>&Help</source> <translation>&Help</translation> </message> <message> - <location line="+9"/> + <location line="+14"/> <source>Tabs toolbar</source> <translation>Tabs toolbar</translation> </message> <message> - <location line="-244"/> - <location line="+321"/> + <location line="-281"/> + <location line="+373"/> <source>[testnet]</source> <translation>[testnet]</translation> </message> <message> - <location line="-331"/> - <location line="+10"/> + <location line="-398"/> <source>Bitcoin Core</source> <translation type="unfinished">Bitcoin Core</translation> </message> <message> - <location line="+121"/> + <location line="+165"/> <source>Request payments (generates QR codes and bitcoin: URIs)</source> <translation type="unfinished"></translation> </message> <message> - <location line="+27"/> + <location line="+29"/> <location line="+2"/> <source>&About Bitcoin Core</source> <translation type="unfinished"></translation> </message> <message> - <location line="+34"/> - <source>&Used sending addresses...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+1"/> + <location line="+35"/> <source>Show the list of used sending addresses and labels</source> <translation type="unfinished"></translation> </message> <message> - <location line="+1"/> - <source>Used &receiving addresses...</source> - <translation type="unfinished"></translation> - </message> - <message> - <location line="+1"/> - <source>Show the list of used receiving addresses and labels</source> - <translation type="unfinished"></translation> - </message> - <message> <location line="+2"/> - <source>Open URI...</source> + <source>Show the list of used receiving addresses and labels</source> <translation type="unfinished"></translation> </message> <message> - <location line="+1"/> + <location line="+3"/> <source>Open a bitcoin: URI or payment request</source> <translation type="unfinished"></translation> </message> <message> - <location line="+126"/> + <location line="+157"/> <location line="+5"/> <source>Bitcoin client</source> <translation>Bitcoin client</translation> </message> <message numerus="yes"> - <location line="+133"/> + <location line="+135"/> <source>%n active connection(s) to Bitcoin network</source> <translation> <numerusform>%n active connection to Bitcoin network</numerusform> @@ -594,7 +611,7 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>Processed %1 blocks of transaction history.</translation> </message> <message numerus="yes"> - <location line="+20"/> + <location line="+23"/> <source>%n hour(s)</source> <translation> <numerusform>%n hour</numerusform> @@ -623,7 +640,7 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>%1 behind</translation> </message> <message> - <location line="+14"/> + <location line="+17"/> <source>Last received block was generated %1 ago.</source> <translation>Last received block was generated %1 ago.</translation> </message> @@ -648,27 +665,17 @@ This product includes software developed by the OpenSSL Project for use in the O <translation>Information</translation> </message> <message> - <location line="+77"/> - <source>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</source> - <translation>This transaction is over the size limit. You can still send it for a fee of %1, which goes to the nodes that process your transaction and helps to support the network. Do you want to pay the fee?</translation> - </message> - <message> - <location line="-152"/> + <location line="-81"/> <source>Up to date</source> <translation>Up to date</translation> </message> <message> - <location line="+31"/> + <location line="+34"/> <source>Catching up...</source> <translation>Catching up...</translation> </message> <message> - <location line="+124"/> - <source>Confirm transaction fee</source> - <translation>Confirm transaction fee</translation> - </message> - <message> - <location line="+8"/> + <location line="+126"/> <source>Sent transaction</source> <translation>Sent transaction</translation> </message> @@ -691,7 +698,7 @@ Address: %4 </translation> </message> <message> - <location line="+67"/> + <location line="+69"/> <source>Wallet is <b>encrypted</b> and currently <b>unlocked</b></source> <translation>Wallet is <b>encrypted</b> and currently <b>unlocked</b></translation> </message> @@ -701,7 +708,7 @@ Address: %4 <translation>Wallet is <b>encrypted</b> and currently <b>locked</b></translation> </message> <message> - <location filename="../bitcoin.cpp" line="+116"/> + <location filename="../bitcoin.cpp" line="+78"/> <source>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</source> <translation>A fatal error occurred. Bitcoin can no longer continue safely and will quit.</translation> </message> @@ -923,7 +930,12 @@ Address: %4 <translation type="unfinished"></translation> </message> <message> - <location line="+171"/> + <location line="+31"/> + <source>none</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+140"/> <source>Dust</source> <translation type="unfinished"></translation> </message> @@ -960,7 +972,7 @@ Address: %4 </message> <message> <location line="+1"/> - <source>This label turns red, if the priority is smaller than "medium"</source> + <source>This label turns red, if the priority is smaller than "medium".</source> <translation type="unfinished"></translation> </message> <message> @@ -1029,7 +1041,7 @@ Address: %4 <translation>&Address</translation> </message> <message> - <location filename="../editaddressdialog.cpp" line="+25"/> + <location filename="../editaddressdialog.cpp" line="+28"/> <source>New receiving address</source> <translation>New receiving address</translation> </message> @@ -1240,7 +1252,7 @@ Address: %4 <translation>Options</translation> </message> <message> - <location line="+16"/> + <location line="+13"/> <source>&Main</source> <translation>&Main</translation> </message> @@ -1265,7 +1277,47 @@ Address: %4 <translation>&Start Bitcoin on system login</translation> </message> <message> - <location line="+35"/> + <location line="+9"/> + <source>Size of &database cache</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Set database cache size in megabytes (default: 25)</source> + <translation type="unfinished">Set database cache size in megabytes (default: 25)</translation> + </message> + <message> + <location line="+13"/> + <source>MB</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+27"/> + <source>Number of script &verification threads</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+13"/> + <source>Set the number of script verification threads (up to 16, 0 = auto, <0 = leave that many cores free, default: 0)</source> + <translation type="unfinished">Set the number of script verification threads (up to 16, 0 = auto, <0 = leave that many cores free, default: 0)</translation> + </message> + <message> + <location line="+58"/> + <source>Connect to the Bitcoin network through a SOCKS proxy.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> + <source>&Connect through SOCKS proxy (default proxy):</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+34"/> + <source>IP address of the proxy (e.g. IPv4: 127.0.0.1 / IPv6: ::1)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+267"/> <source>Reset all client options to default.</source> <translation>Reset all client options to default.</translation> </message> @@ -1275,7 +1327,7 @@ Address: %4 <translation>&Reset Options</translation> </message> <message> - <location line="+13"/> + <location line="-323"/> <source>&Network</source> <translation>&Network</translation> </message> @@ -1290,32 +1342,17 @@ Address: %4 <translation>Map port using &UPnP</translation> </message> <message> - <location line="+7"/> - <source>Connect to the Bitcoin network through a SOCKS proxy (e.g. when connecting through Tor).</source> - <translation>Connect to the Bitcoin network through a SOCKS proxy (e.g. when connecting through Tor).</translation> - </message> - <message> - <location line="+3"/> - <source>&Connect through SOCKS proxy:</source> - <translation>&Connect through SOCKS proxy:</translation> - </message> - <message> - <location line="+9"/> + <location line="+19"/> <source>Proxy &IP:</source> <translation>Proxy &IP:</translation> </message> <message> - <location line="+19"/> - <source>IP address of the proxy (e.g. 127.0.0.1)</source> - <translation>IP address of the proxy (e.g. 127.0.0.1)</translation> - </message> - <message> - <location line="+7"/> + <location line="+32"/> <source>&Port:</source> <translation>&Port:</translation> </message> <message> - <location line="+19"/> + <location line="+25"/> <source>Port of the proxy (e.g. 9050)</source> <translation>Port of the proxy (e.g. 9050)</translation> </message> @@ -1400,7 +1437,12 @@ Address: %4 <translation type="unfinished"></translation> </message> <message> - <location line="+71"/> + <location line="+29"/> + <source>Active command-line options that override above options: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+107"/> <source>&OK</source> <translation>&OK</translation> </message> @@ -1410,44 +1452,38 @@ Address: %4 <translation>&Cancel</translation> </message> <message> - <location line="+10"/> - <source>&Apply</source> - <translation>&Apply</translation> - </message> - <message> - <location filename="../optionsdialog.cpp" line="+63"/> + <location filename="../optionsdialog.cpp" line="+68"/> <source>default</source> <translation>default</translation> </message> <message> - <location line="+131"/> + <location line="+57"/> + <source>none</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+75"/> <source>Confirm options reset</source> <translation>Confirm options reset</translation> </message> <message> <location line="+1"/> - <source>Some settings may require a client restart to take effect.</source> - <translation>Some settings may require a client restart to take effect.</translation> - </message> - <message> - <location line="+0"/> - <source>Do you want to proceed?</source> - <translation>Do you want to proceed?</translation> + <location line="+29"/> + <source>Client restart required to activate changes.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+42"/> - <location line="+9"/> - <source>Warning</source> - <translation>Warning</translation> + <location line="-29"/> + <source>Client will be shutdown, do you want to proceed?</source> + <translation type="unfinished"></translation> </message> <message> - <location line="-9"/> - <location line="+9"/> - <source>This setting will take effect after restarting Bitcoin.</source> - <translation>This setting will take effect after restarting Bitcoin.</translation> + <location line="+33"/> + <source>This change would require a client restart.</source> + <translation type="unfinished"></translation> </message> <message> - <location line="+29"/> + <location line="+34"/> <source>The supplied proxy address is invalid.</source> <translation>The supplied proxy address is invalid.</translation> </message> @@ -1461,22 +1497,22 @@ Address: %4 </message> <message> <location line="+50"/> - <location line="+214"/> + <location line="+231"/> <source>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</source> <translation>The displayed information may be out of date. Your wallet automatically synchronizes with the Bitcoin network after a connection is established, but this process has not completed yet.</translation> </message> <message> - <location line="-140"/> + <location line="-155"/> <source>Unconfirmed:</source> <translation>Unconfirmed:</translation> </message> <message> - <location line="-81"/> + <location line="-83"/> <source>Wallet</source> <translation>Wallet</translation> </message> <message> - <location line="+49"/> + <location line="+51"/> <source>Confirmed:</source> <translation>Confirmed:</translation> </message> @@ -1511,7 +1547,7 @@ Address: %4 <translation>Your current total balance</translation> </message> <message> - <location line="+56"/> + <location line="+71"/> <source><b>Recent transactions</b></source> <translation><b>Recent transactions</b></translation> </message> @@ -1525,7 +1561,8 @@ Address: %4 <context> <name>PaymentServer</name> <message> - <location filename="../paymentserver.cpp" line="+397"/> + <location filename="../paymentserver.cpp" line="+400"/> + <location line="+13"/> <source>URI handling</source> <translation type="unfinished">URI handling</translation> </message> @@ -1535,24 +1572,42 @@ Address: %4 <translation type="unfinished">URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters.</translation> </message> <message> - <location line="+91"/> + <location line="+96"/> <source>Requested payment amount of %1 is too small (considered dust).</source> <translation type="unfinished"></translation> </message> <message> - <location line="-204"/> - <location line="+195"/> + <location line="-216"/> + <location line="+207"/> <location line="+13"/> + <location line="+95"/> + <location line="+18"/> + <location line="+16"/> <source>Payment request error</source> <translation type="unfinished"></translation> </message> <message> - <location line="-207"/> + <location line="-348"/> <source>Cannot start bitcoin: click-to-pay handler</source> <translation type="unfinished"></translation> </message> <message> - <location line="+195"/> + <location line="+106"/> + <source>Payment request fetch URL is invalid: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+27"/> + <source>Payment request file handling</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> + <source>Payment request file can not be read or processed! This can be caused by an invalid payment request file.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+73"/> <source>Unverified payment requests to custom payment scripts are unsupported.</source> <translation type="unfinished"></translation> </message> @@ -1562,24 +1617,27 @@ Address: %4 <translation type="unfinished"></translation> </message> <message> - <location line="+42"/> + <location line="+43"/> <source>Error communicating with %1: %2</source> <translation type="unfinished"></translation> </message> <message> - <location line="+28"/> + <location line="+24"/> + <source>Payment request can not be parsed or processed!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+11"/> <source>Bad response from server %1</source> <translation type="unfinished"></translation> </message> <message> - <location line="+32"/> + <location line="+33"/> <source>Payment acknowledged</source> <translation type="unfinished"></translation> </message> <message> - <location line="-55"/> - <location line="+27"/> - <location line="+17"/> + <location line="-11"/> <source>Network request error</source> <translation type="unfinished"></translation> </message> @@ -1587,18 +1645,18 @@ Address: %4 <context> <name>QObject</name> <message> - <location filename="../bitcoin.cpp" line="+119"/> - <location line="+5"/> + <location filename="../bitcoin.cpp" line="+71"/> + <location line="+11"/> <source>Bitcoin</source> <translation>Bitcoin</translation> </message> <message> - <location line="-4"/> + <location line="+1"/> <source>Error: Specified data directory "%1" does not exist.</source> <translation>Error: Specified data directory "%1" does not exist.</translation> </message> <message> - <location line="+4"/> + <location line="-12"/> <source>Error: Invalid combination of -regtest and -testnet.</source> <translation type="unfinished"></translation> </message> @@ -1640,7 +1698,8 @@ Address: %4 <location line="+23"/> <location line="+23"/> <location line="+36"/> - <location line="+53"/> + <location line="+23"/> + <location line="+36"/> <location line="+23"/> <location line="+23"/> <location filename="../rpcconsole.cpp" line="+360"/> @@ -1648,7 +1707,7 @@ Address: %4 <translation>N/A</translation> </message> <message> - <location line="-217"/> + <location line="-223"/> <source>Client version</source> <translation>Client version</translation> </message> @@ -1663,7 +1722,12 @@ Address: %4 <translation type="unfinished"></translation> </message> <message> - <location line="+78"/> + <location line="+25"/> + <source>General</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+53"/> <source>Using OpenSSL version</source> <translation>Using OpenSSL version</translation> </message> @@ -1679,16 +1743,16 @@ Address: %4 </message> <message> <location line="+7"/> - <source>Number of connections</source> - <translation>Number of connections</translation> + <source>Name</source> + <translation type="unfinished"></translation> </message> <message> <location line="+23"/> - <source>On testnet</source> - <translation>On testnet</translation> + <source>Number of connections</source> + <translation>Number of connections</translation> </message> <message> - <location line="+23"/> + <location line="+29"/> <source>Block chain</source> <translation>Block chain</translation> </message> @@ -1753,17 +1817,12 @@ Address: %4 <translation type="unfinished"></translation> </message> <message> - <location line="-541"/> + <location line="-547"/> <source>Build date</source> <translation>Build date</translation> </message> <message> - <location line="-79"/> - <source>Bitcoin Core</source> - <translation>Bitcoin Core</translation> - </message> - <message> - <location line="+279"/> + <location line="+206"/> <source>Debug log file</source> <translation>Debug log file</translation> </message> @@ -1897,7 +1956,7 @@ Address: %4 </message> <message> <location line="+47"/> - <source>Previously requested payments</source> + <source>Requested payments</source> <translation type="unfinished"></translation> </message> <message> @@ -1992,7 +2051,7 @@ Address: %4 <context> <name>RecentRequestsTableModel</name> <message> - <location filename="../recentrequeststablemodel.cpp" line="+14"/> + <location filename="../recentrequeststablemodel.cpp" line="+17"/> <source>Date</source> <translation type="unfinished">Date</translation> </message> @@ -2012,7 +2071,7 @@ Address: %4 <translation type="unfinished">Amount</translation> </message> <message> - <location line="+36"/> + <location line="+38"/> <source>(no label)</source> <translation type="unfinished">(no label)</translation> </message> @@ -2027,7 +2086,7 @@ Address: %4 <message> <location filename="../forms/sendcoinsdialog.ui" line="+14"/> <location filename="../sendcoinsdialog.cpp" line="+381"/> - <location line="+81"/> + <location line="+80"/> <source>Send Coins</source> <translation>Send Coins</translation> </message> @@ -2137,7 +2196,7 @@ Address: %4 <translation>S&end</translation> </message> <message> - <location filename="../sendcoinsdialog.cpp" line="-229"/> + <location filename="../sendcoinsdialog.cpp" line="-228"/> <source>Confirm send coins</source> <translation>Confirm send coins</translation> </message> @@ -2240,22 +2299,22 @@ Address: %4 <translation type="unfinished"></translation> </message> <message> - <location line="+113"/> + <location line="+112"/> <source>Warning: Invalid Bitcoin address</source> <translation type="unfinished"></translation> </message> <message> - <location line="+13"/> + <location line="+21"/> <source>(no label)</source> <translation type="unfinished">(no label)</translation> </message> <message> - <location line="+8"/> + <location line="-11"/> <source>Warning: Unknown change address</source> <translation type="unfinished"></translation> </message> <message> - <location line="-378"/> + <location line="-366"/> <source>Are you sure you want to send?</source> <translation type="unfinished"></translation> </message> @@ -2565,7 +2624,7 @@ Address: %4 <context> <name>SplashScreen</name> <message> - <location filename="../splashscreen.cpp" line="+26"/> + <location filename="../splashscreen.cpp" line="+28"/> <source>Bitcoin Core</source> <translation type="unfinished">Bitcoin Core</translation> </message> @@ -2811,8 +2870,13 @@ Address: %4 <source>Amount</source> <translation>Amount</translation> </message> + <message> + <location line="+59"/> + <source>Immature (%1 confirmations, will be available after %2)</source> + <translation type="unfinished"></translation> + </message> <message numerus="yes"> - <location line="+57"/> + <location line="+16"/> <source>Open for %n more block(s)</source> <translation> <numerusform>Open for %n more block</numerusform> @@ -2835,20 +2899,13 @@ Address: %4 <translation>Unconfirmed (%1 of %2 confirmations)</translation> </message> <message> - <location line="+3"/> + <location line="-22"/> + <location line="+25"/> <source>Confirmed (%1 confirmations)</source> <translation>Confirmed (%1 confirmations)</translation> </message> - <message numerus="yes"> - <location line="+8"/> - <source>Mined balance will be available when it matures in %n more block(s)</source> - <translation> - <numerusform>Mined balance will be available when it matures in %n more block</numerusform> - <numerusform>Mined balance will be available when it matures in %n more blocks</numerusform> - </translation> - </message> <message> - <location line="+5"/> + <location line="-22"/> <source>This block was not received by any other nodes and will probably not be accepted!</source> <translation>This block was not received by any other nodes and will probably not be accepted!</translation> </message> @@ -2858,7 +2915,7 @@ Address: %4 <translation>Generated but not accepted</translation> </message> <message> - <location line="+43"/> + <location line="+62"/> <source>Received with</source> <translation>Received with</translation> </message> @@ -3154,7 +3211,7 @@ Address: %4 <context> <name>bitcoin-core</name> <message> - <location filename="../bitcoinstrings.cpp" line="+217"/> + <location filename="../bitcoinstrings.cpp" line="+221"/> <source>Usage:</source> <translation>Usage:</translation> </message> @@ -3174,7 +3231,7 @@ Address: %4 <translation>Options:</translation> </message> <message> - <location line="+23"/> + <location line="+22"/> <source>Specify configuration file (default: bitcoin.conf)</source> <translation>Specify configuration file (default: bitcoin.conf)</translation> </message> @@ -3194,7 +3251,7 @@ Address: %4 <translation>Set database cache size in megabytes (default: 25)</translation> </message> <message> - <location line="-27"/> + <location line="-26"/> <source>Listen for connections on <port> (default: 8333 or testnet: 18333)</source> <translation>Listen for connections on <port> (default: 8333 or testnet: 18333)</translation> </message> @@ -3204,7 +3261,7 @@ Address: %4 <translation>Maintain at most <n> connections to peers (default: 125)</translation> </message> <message> - <location line="-50"/> + <location line="-51"/> <source>Connect to a node to retrieve peer addresses, and disconnect</source> <translation>Connect to a node to retrieve peer addresses, and disconnect</translation> </message> @@ -3214,22 +3271,22 @@ Address: %4 <translation>Specify your own public address</translation> </message> <message> - <location line="+4"/> + <location line="+5"/> <source>Threshold for disconnecting misbehaving peers (default: 100)</source> <translation>Threshold for disconnecting misbehaving peers (default: 100)</translation> </message> <message> - <location line="-147"/> + <location line="-148"/> <source>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</source> <translation>Number of seconds to keep misbehaving peers from reconnecting (default: 86400)</translation> </message> <message> - <location line="-33"/> + <location line="-36"/> <source>An error occurred while setting up the RPC port %u for listening on IPv4: %s</source> <translation>An error occurred while setting up the RPC port %u for listening on IPv4: %s</translation> </message> <message> - <location line="+31"/> + <location line="+34"/> <source>Listen for JSON-RPC connections on <port> (default: 8332 or testnet: 18332)</source> <translation>Listen for JSON-RPC connections on <port> (default: 8332 or testnet: 18332)</translation> </message> @@ -3239,7 +3296,7 @@ Address: %4 <translation>Accept command line and JSON-RPC commands</translation> </message> <message> - <location line="+79"/> + <location line="+80"/> <source>Run in the background as a daemon and accept commands</source> <translation>Run in the background as a daemon and accept commands</translation> </message> @@ -3249,12 +3306,12 @@ Address: %4 <translation>Use the test network</translation> </message> <message> - <location line="-117"/> + <location line="-118"/> <source>Accept connections from outside (default: 1 if no -proxy or -connect)</source> <translation>Accept connections from outside (default: 1 if no -proxy or -connect)</translation> </message> <message> - <location line="-92"/> + <location line="-95"/> <source>%s, you must set a rpcpassword in the configuration file: %s It is recommended you use the following random password: @@ -3305,6 +3362,11 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. </message> <message> <location line="+4"/> + <source>Enter regression test mode, which uses a special chain in which blocks can be solved instantly.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+3"/> <source>Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</source> <translation>Error: The transaction was rejected! This might happen if some of the coins in your wallet were already spent, such as if you used a copy of wallet.dat and coins were spent in the copy but not marked as spent here.</translation> </message> @@ -3410,6 +3472,11 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. </message> <message> <location line="+1"/> + <source>Do not load the wallet and disable wallet RPC calls</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+1"/> <source>Do you want to rebuild the block database now?</source> <translation>Do you want to rebuild the block database now?</translation> </message> @@ -3574,7 +3641,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation type="unfinished"></translation> </message> <message> - <location line="+8"/> + <location line="+7"/> <source>Set maximum block size in bytes (default: %d)</source> <translation type="unfinished"></translation> </message> @@ -3594,7 +3661,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation type="unfinished"></translation> </message> <message> - <location line="+12"/> + <location line="+3"/> + <source>This is intended for regression testing tools and app development.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+10"/> <source>Usage (deprecated, use bitcoin-cli):</source> <translation type="unfinished"></translation> </message> @@ -3619,7 +3691,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Wallet %s resides outside data directory %s</translation> </message> <message> - <location line="+3"/> + <location line="+2"/> + <source>Wallet options:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location line="+2"/> <source>Warning: Deprecated argument -debugnet ignored, use -debug=net</source> <translation type="unfinished"></translation> </message> @@ -3629,12 +3706,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>You need to rebuild the database using -reindex to change -txindex</translation> </message> <message> - <location line="-78"/> + <location line="-79"/> <source>Imports blocks from external blk000??.dat file</source> <translation>Imports blocks from external blk000??.dat file</translation> </message> <message> - <location line="-104"/> + <location line="-105"/> <source>Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)</source> <translation>Execute command when a relevant alert is received or we see a really long fork (%s in cmd is replaced by message)</translation> </message> @@ -3654,7 +3731,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Set the number of script verification threads (up to 16, 0 = auto, <0 = leave that many cores free, default: 0)</translation> </message> <message> - <location line="+88"/> + <location line="+89"/> <source>Information</source> <translation>Information</translation> </message> @@ -3704,11 +3781,6 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Send trace/debug info to console instead of debug.log file</translation> </message> <message> - <location line="+1"/> - <source>Send trace/debug info to debugger</source> - <translation>Send trace/debug info to debugger</translation> - </message> - <message> <location line="+6"/> <source>Set minimum block size in bytes (default: 0)</source> <translation>Set minimum block size in bytes (default: 0)</translation> @@ -3734,7 +3806,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>System error: </translation> </message> <message> - <location line="+4"/> + <location line="+5"/> <source>Transaction amount too small</source> <translation>Transaction amount too small</translation> </message> @@ -3764,7 +3836,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Username for JSON-RPC connections</translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>Warning</source> <translation>Warning</translation> </message> @@ -3784,37 +3856,37 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>wallet.dat corrupt, salvage failed</translation> </message> <message> - <location line="-57"/> + <location line="-58"/> <source>Password for JSON-RPC connections</source> <translation>Password for JSON-RPC connections</translation> </message> <message> - <location line="-69"/> + <location line="-70"/> <source>Allow JSON-RPC connections from specified IP address</source> <translation>Allow JSON-RPC connections from specified IP address</translation> </message> <message> - <location line="+79"/> + <location line="+80"/> <source>Send commands to node running on <ip> (default: 127.0.0.1)</source> <translation>Send commands to node running on <ip> (default: 127.0.0.1)</translation> </message> <message> - <location line="-131"/> + <location line="-132"/> <source>Execute command when the best block changes (%s in cmd is replaced by block hash)</source> <translation>Execute command when the best block changes (%s in cmd is replaced by block hash)</translation> </message> <message> - <location line="+160"/> + <location line="+161"/> <source>Upgrade wallet to latest format</source> <translation>Upgrade wallet to latest format</translation> </message> <message> - <location line="-23"/> + <location line="-24"/> <source>Set key pool size to <n> (default: 100)</source> <translation>Set key pool size to <n> (default: 100)</translation> </message> <message> - <location line="-12"/> + <location line="-11"/> <source>Rescan the block chain for missing wallet transactions</source> <translation>Rescan the block chain for missing wallet transactions</translation> </message> @@ -3824,7 +3896,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Use OpenSSL (https) for JSON-RPC connections</translation> </message> <message> - <location line="-29"/> + <location line="-30"/> <source>Server certificate file (default: server.cert)</source> <translation>Server certificate file (default: server.cert)</translation> </message> @@ -3839,17 +3911,17 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>This help message</translation> </message> <message> - <location line="+6"/> + <location line="+7"/> <source>Unable to bind to %s on this computer (bind returned error %d, %s)</source> <translation>Unable to bind to %s on this computer (bind returned error %d, %s)</translation> </message> <message> - <location line="-106"/> + <location line="-107"/> <source>Allow DNS lookups for -addnode, -seednode and -connect</source> <translation>Allow DNS lookups for -addnode, -seednode and -connect</translation> </message> <message> - <location line="+59"/> + <location line="+60"/> <source>Loading addresses...</source> <translation>Loading addresses...</translation> </message> @@ -3889,7 +3961,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Unknown -socks proxy version requested: %i</translation> </message> <message> - <location line="-100"/> + <location line="-101"/> <source>Cannot resolve -bind address: '%s'</source> <translation>Cannot resolve -bind address: '%s'</translation> </message> @@ -3899,7 +3971,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Cannot resolve -externalip address: '%s'</translation> </message> <message> - <location line="+47"/> + <location line="+48"/> <source>Invalid amount for -paytxfee=<amount>: '%s'</source> <translation>Invalid amount for -paytxfee=<amount>: '%s'</translation> </message> @@ -3919,7 +3991,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Loading block index...</translation> </message> <message> - <location line="-61"/> + <location line="-62"/> <source>Add a node to connect to and attempt to keep the connection open</source> <translation>Add a node to connect to and attempt to keep the connection open</translation> </message> @@ -3929,12 +4001,12 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Unable to bind to %s on this computer. Bitcoin is probably already running.</translation> </message> <message> - <location line="+94"/> + <location line="+95"/> <source>Loading wallet...</source> <translation>Loading wallet...</translation> </message> <message> - <location line="-55"/> + <location line="-56"/> <source>Cannot downgrade wallet</source> <translation>Cannot downgrade wallet</translation> </message> @@ -3944,7 +4016,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Cannot write default address</translation> </message> <message> - <location line="+66"/> + <location line="+67"/> <source>Rescanning...</source> <translation>Rescanning...</translation> </message> @@ -3964,7 +4036,7 @@ for example: alertnotify=echo %%s | mail -s "Bitcoin Alert" admin@foo. <translation>Error</translation> </message> <message> - <location line="-34"/> + <location line="-35"/> <source>You must set rpcpassword=<password> in the configuration file: %s If the file does not exist, create it with owner-readable-only file permissions.</source> diff --git a/src/qt/paymentserver.cpp b/src/qt/paymentserver.cpp index 17d80940b7..e22ac43fb2 100644 --- a/src/qt/paymentserver.cpp +++ b/src/qt/paymentserver.cpp @@ -382,40 +382,52 @@ void PaymentServer::handleURIOrFile(const QString& s) #else QUrlQuery uri((QUrl(s))); #endif - if (uri.hasQueryItem("r")) + if (uri.hasQueryItem("r")) // payment request URI { QByteArray temp; temp.append(uri.queryItemValue("r")); QString decoded = QUrl::fromPercentEncoding(temp); QUrl fetchUrl(decoded, QUrl::StrictMode); - qDebug() << "PaymentServer::handleURIOrFile : fetchRequest(" << fetchUrl << ")"; - if (fetchUrl.isValid()) + { + qDebug() << "PaymentServer::handleURIOrFile : fetchRequest(" << fetchUrl << ")"; fetchRequest(fetchUrl); + } else + { qDebug() << "PaymentServer::handleURIOrFile : Invalid URL: " << fetchUrl; + emit message(tr("URI handling"), + tr("Payment request fetch URL is invalid: %1").arg(fetchUrl.toString()), + CClientUIInterface::ICON_WARNING); + } return; } + else // normal URI + { + SendCoinsRecipient recipient; + if (GUIUtil::parseBitcoinURI(s, &recipient)) + emit receivedPaymentRequest(recipient); + else + emit message(tr("URI handling"), + tr("URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."), + CClientUIInterface::ICON_WARNING); - SendCoinsRecipient recipient; - if (GUIUtil::parseBitcoinURI(s, &recipient)) - emit receivedPaymentRequest(recipient); - else - emit message(tr("URI handling"), - tr("URI can not be parsed! This can be caused by an invalid Bitcoin address or malformed URI parameters."), - CClientUIInterface::ICON_WARNING); - - return; + return; + } } - if (QFile::exists(s)) + if (QFile::exists(s)) // payment request file { PaymentRequestPlus request; SendCoinsRecipient recipient; if (readPaymentRequest(s, request) && processPaymentRequest(request, recipient)) emit receivedPaymentRequest(recipient); + else + emit message(tr("Payment request file handling"), + tr("Payment request file can not be read or processed! This can be caused by an invalid payment request file."), + CClientUIInterface::ICON_WARNING); return; } @@ -594,7 +606,7 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply) .arg(reply->errorString()); qDebug() << "PaymentServer::netRequestFinished : " << msg; - emit message(tr("Network request error"), msg, CClientUIInterface::MSG_ERROR); + emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR); return; } @@ -606,9 +618,16 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply) PaymentRequestPlus request; SendCoinsRecipient recipient; if (request.parse(data) && processPaymentRequest(request, recipient)) + { emit receivedPaymentRequest(recipient); + } else + { qDebug() << "PaymentServer::netRequestFinished : Error processing payment request"; + emit message(tr("Payment request error"), + tr("Payment request can not be parsed or processed!"), + CClientUIInterface::MSG_ERROR); + } return; } @@ -621,9 +640,10 @@ void PaymentServer::netRequestFinished(QNetworkReply* reply) .arg(reply->request().url().toString()); qDebug() << "PaymentServer::netRequestFinished : " << msg; - emit message(tr("Network request error"), msg, CClientUIInterface::MSG_ERROR); + emit message(tr("Payment request error"), msg, CClientUIInterface::MSG_ERROR); } - else { + else + { emit receivedPaymentACK(GUIUtil::HtmlEscape(paymentACK.memo())); } } diff --git a/src/qt/paymentserver.h b/src/qt/paymentserver.h index 5ee85f7db4..af19661bdd 100644 --- a/src/qt/paymentserver.h +++ b/src/qt/paymentserver.h @@ -102,7 +102,7 @@ public slots: // Submit Payment message to a merchant, get back PaymentACK: void fetchPaymentACK(CWallet* wallet, SendCoinsRecipient recipient, QByteArray transaction); - // Handle an incoming URI or file + // Handle an incoming URI, URI with local file scheme or file void handleURIOrFile(const QString& s); private slots: |