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')