Merge #7980: [qa] smartfees: Properly use ordered dict
43bbcd0
[qa] Fix typos in doc and comments (Pavel Janík)fa17f93
[qa] smartfees: Properly use ordered dict (MarcoFalke)
This commit is contained in:
commit
88b77c7da0
1 changed files with 7 additions and 8 deletions
|
@ -7,6 +7,7 @@
|
||||||
# Test fee estimation code
|
# Test fee estimation code
|
||||||
#
|
#
|
||||||
|
|
||||||
|
from collections import OrderedDict
|
||||||
from test_framework.test_framework import BitcoinTestFramework
|
from test_framework.test_framework import BitcoinTestFramework
|
||||||
from test_framework.util import *
|
from test_framework.util import *
|
||||||
|
|
||||||
|
@ -22,7 +23,7 @@ SCRIPT_SIG = ["0451025175", "0451025275"]
|
||||||
def small_txpuzzle_randfee(from_node, conflist, unconflist, amount, min_fee, fee_increment):
|
def small_txpuzzle_randfee(from_node, conflist, unconflist, amount, min_fee, fee_increment):
|
||||||
'''
|
'''
|
||||||
Create and send a transaction with a random fee.
|
Create and send a transaction with a random fee.
|
||||||
The transaction pays to a trival P2SH script, and assumes that its inputs
|
The transaction pays to a trivial P2SH script, and assumes that its inputs
|
||||||
are of the same form.
|
are of the same form.
|
||||||
The function takes a list of confirmed outputs and unconfirmed outputs
|
The function takes a list of confirmed outputs and unconfirmed outputs
|
||||||
and attempts to use the confirmed list first for its inputs.
|
and attempts to use the confirmed list first for its inputs.
|
||||||
|
@ -49,10 +50,10 @@ def small_txpuzzle_randfee(from_node, conflist, unconflist, amount, min_fee, fee
|
||||||
if total_in <= amount + fee:
|
if total_in <= amount + fee:
|
||||||
raise RuntimeError("Insufficient funds: need %d, have %d"%(amount+fee, total_in))
|
raise RuntimeError("Insufficient funds: need %d, have %d"%(amount+fee, total_in))
|
||||||
outputs = {}
|
outputs = {}
|
||||||
outputs[P2SH_1] = total_in - amount - fee
|
outputs = OrderedDict([(P2SH_1, total_in - amount - fee),
|
||||||
outputs[P2SH_2] = amount
|
(P2SH_2, amount)])
|
||||||
rawtx = from_node.createrawtransaction(inputs, outputs)
|
rawtx = from_node.createrawtransaction(inputs, outputs)
|
||||||
# Createrawtransaction constructions a transaction that is ready to be signed
|
# createrawtransaction constructs a transaction that is ready to be signed.
|
||||||
# These transactions don't need to be signed, but we still have to insert the ScriptSig
|
# These transactions don't need to be signed, but we still have to insert the ScriptSig
|
||||||
# that will satisfy the ScriptPubKey.
|
# that will satisfy the ScriptPubKey.
|
||||||
completetx = rawtx[0:10]
|
completetx = rawtx[0:10]
|
||||||
|
@ -78,12 +79,10 @@ def split_inputs(from_node, txins, txouts, initial_split = False):
|
||||||
'''
|
'''
|
||||||
prevtxout = txins.pop()
|
prevtxout = txins.pop()
|
||||||
inputs = []
|
inputs = []
|
||||||
outputs = {}
|
|
||||||
inputs.append({ "txid" : prevtxout["txid"], "vout" : prevtxout["vout"] })
|
inputs.append({ "txid" : prevtxout["txid"], "vout" : prevtxout["vout"] })
|
||||||
half_change = satoshi_round(prevtxout["amount"]/2)
|
half_change = satoshi_round(prevtxout["amount"]/2)
|
||||||
rem_change = prevtxout["amount"] - half_change - Decimal("0.00001000")
|
rem_change = prevtxout["amount"] - half_change - Decimal("0.00001000")
|
||||||
outputs[P2SH_1] = half_change
|
outputs = OrderedDict([(P2SH_1, half_change), (P2SH_2, rem_change)])
|
||||||
outputs[P2SH_2] = rem_change
|
|
||||||
rawtx = from_node.createrawtransaction(inputs, outputs)
|
rawtx = from_node.createrawtransaction(inputs, outputs)
|
||||||
# If this is the initial split we actually need to sign the transaction
|
# If this is the initial split we actually need to sign the transaction
|
||||||
# Otherwise we just need to insert the property ScriptSig
|
# Otherwise we just need to insert the property ScriptSig
|
||||||
|
|
Loading…
Reference in a new issue