URI: 
       timplement MIN_RELAY_TX_FEE - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit fc7122008a877587e716b537a3efa15588bfb296
   DIR parent 70e82e99eaf93e4cd26b62ff8ac2b80a080ad28c
  HTML Author: ecdsa <ecdsa@github>
       Date:   Sun, 24 Mar 2013 11:25:17 +0100
       
       implement MIN_RELAY_TX_FEE
       
       Diffstat:
         M gui/gui_classic.py                  |       5 +++--
         M gui/gui_gtk.py                      |       5 +++--
         M lib/bitcoin.py                      |      11 ++++++++++-
         M lib/wallet.py                       |       1 +
       
       4 files changed, 17 insertions(+), 5 deletions(-)
       ---
   DIR diff --git a/gui/gui_classic.py b/gui/gui_classic.py
       t@@ -32,6 +32,7 @@ from PyQt4.QtCore import *
        import PyQt4.QtCore as QtCore
        import PyQt4.QtGui as QtGui
        from electrum.interface import DEFAULT_SERVERS
       +from electrum.bitcoin import MIN_RELAY_TX_FEE
        
        try:
            import icons_rc
       t@@ -795,8 +796,8 @@ class ElectrumWindow(QMainWindow):
                    self.show_message(str(e))
                    return
        
       -        if tx.requires_fee(self.wallet.verifier) and fee == 0:
       -            QMessageBox.warning(self, _('Error'), _("This transaction requires a fee, or it will not be propagated by the network."), _('OK'))
       +        if tx.requires_fee(self.wallet.verifier) and fee < MIN_RELAY_TX_FEE:
       +            QMessageBox.warning(self, _('Error'), _("This transaction requires a higher fee, or it will not be propagated by the network."), _('OK'))
                    return
        
                self.run_hook('send_tx', tx)
   DIR diff --git a/gui/gui_gtk.py b/gui/gui_gtk.py
       t@@ -35,6 +35,7 @@ MONOSPACE_FONT = 'Lucida Console' if platform.system() == 'Windows' else 'monosp
        
        from electrum.util import format_satoshis
        from electrum.interface import DEFAULT_SERVERS
       +from electrum.bitcoin import MIN_RELAY_TX_FEE
        
        def numbify(entry, is_int = False):
            text = entry.get_text().strip()
       t@@ -844,8 +845,8 @@ class ElectrumWindow:
                    self.show_message(str(e))
                    return
        
       -        if tx.requires_fee(self.wallet.verifier) and fee == 0:
       -            self.show_message( "This transaction requires a fee, or it will not be propagated by the network." )
       +        if tx.requires_fee(self.wallet.verifier) and fee < MIN_RELAY_TX_FEE:
       +            self.show_message( "This transaction requires a higher fee, or it will not be propagated by the network." )
                    return
        
                    
   DIR diff --git a/lib/bitcoin.py b/lib/bitcoin.py
       t@@ -577,6 +577,7 @@ class BIP32Sequence:
        
        ################################## transactions
        
       +MIN_RELAY_TX_FEE = 10000
        
        class Transaction:
            
       t@@ -877,15 +878,23 @@ class Transaction:
        
        
            def requires_fee(self, verifier):
       +        # see https://en.bitcoin.it/wiki/Transaction_fees
                threshold = 57600000
                size = len(self.raw)/2
       +        if size >= 10000: 
       +            return True
       +
       +        for o in self.outputs:
       +            value = o[1]
       +            if value < 1000000:
       +                return True
                sum = 0
                for i in self.inputs:
                    age = verifier.get_confirmations(i["tx_hash"])[0]
                    sum += i["value"] * age
                priority = sum / size
                print_error(priority, threshold)
       -        return priority < threshold
       +        return priority < threshold 
        
        
        
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -912,6 +912,7 @@ class Wallet:
                        height = None
                        for h in ext_h:
                            if h == ['*']: continue
       +                    print_error(h)
                            for item in h:
                                if item.get('tx_hash') == tx_hash:
                                    height = item.get('height')