Add Coinbase exchange rate option
[electrum-nvc.git] / plugins / pointofsale.py
index 6e66142..27f4ccd 100644 (file)
@@ -1,6 +1,7 @@
 import re
 import platform
 from decimal import Decimal
+from urllib import quote
 
 from PyQt4.QtGui import *
 from PyQt4.QtCore import *
@@ -65,7 +66,10 @@ class QR_Window(QWidget):
         amount_text = ''
         if amount:
             if currency:
-                self.amount = Decimal(amount) / self.exchanger.exchange(1, currency) if currency else amount
+                try:
+                    self.amount = Decimal(amount) / self.exchanger.exchange(1, currency) if currency else amount
+                except Exception:
+                    self.amount = None
             else:
                 self.amount = Decimal(amount)
             self.amount = self.amount.quantize(Decimal('1.0000'))
@@ -86,9 +90,11 @@ class QR_Window(QWidget):
         if self.amount is not None:
             msg += '?amount=%s'%(str( self.amount))
             if self.label is not None:
-                msg += '&label=%s'%(self.label)
+                encoded_label = quote(self.label)
+                msg += '&label=%s'%(encoded_label)
         elif self.label is not None:
-            msg += '?label=%s'%(self.label)
+            encoded_label = quote(self.label)
+            msg += '?label=%s'%(encoded_label)
             
         self.qrw.set_addr( msg )
 
@@ -248,7 +254,7 @@ class Plugin(BasePlugin):
         item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled)
 
     
-    def receive_menu(self, menu):
+    def receive_menu(self, menu, addr):
         menu.addAction(_("Request amount"), self.edit_amount)
         menu.addAction(_("Show Invoice"), lambda: self.toggle_QR_window(True))