1
0

more accurate computation of transaction fees.

This commit is contained in:
thomasv
2013-03-23 09:23:57 +01:00
parent f3a1a57a78
commit a5168cc09f
5 changed files with 34 additions and 7 deletions

View File

@@ -876,6 +876,18 @@ class Transaction:
return out
def requires_fee(self, verifier):
threshold = 57600000
size = len(self.raw)/2
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
def test_bip32():

View File

@@ -74,7 +74,7 @@ class Wallet:
self.seed_version = config.get('seed_version', SEED_VERSION)
self.gap_limit = config.get('gap_limit', 5)
self.use_change = config.get('use_change',True)
self.fee = int(config.get('fee',100000))
self.fee = int(config.get('fee',10000))
self.num_zeros = int(config.get('num_zeros',0))
self.use_encryption = config.get('use_encryption', False)
self.seed = config.get('seed', '') # encrypted
@@ -565,14 +565,20 @@ class Wallet:
total += v
inputs.append( item )
fee = self.fee*len(inputs) if fixed_fee is None else fixed_fee
if fixed_fee is None:
estimated_size = len(inputs) * 180 + 80 # this assumes non-compressed keys
fee = self.fee * round(estimated_size/1024.)
if fee == 0: fee = self.fee
else:
fee = fixed_fee
if total >= amount + fee: break
else:
#print "not enough funds: %s %s"%(format_satoshis(total), format_satoshis(fee))
inputs = []
return inputs, total, fee
def add_tx_change( self, outputs, amount, fee, total, change_addr=None ):
change_amount = total - ( amount + fee )
if change_amount != 0: