more accurate computation of transaction fees.
This commit is contained in:
@@ -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():
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user