use new virtualchain tx API

This commit is contained in:
Jude Nelson
2017-04-20 17:43:36 -04:00
parent dbadfd6f65
commit 45f44ffed0
9 changed files with 48 additions and 48 deletions

View File

@@ -67,11 +67,11 @@ def make_outputs( data, inputs, change_address, tx_fee ):
return [
# main output
{"script_hex": virtualchain.make_data_script(str(data)),
{"script": virtualchain.make_data_script(str(data)),
"value": 0},
# change output
{"script_hex": virtualchain.make_payment_script(change_address),
{"script": virtualchain.make_payment_script(change_address),
"value": virtualchain.calculate_change_amount(inputs, op_fee, dust_fee)}
]
@@ -114,14 +114,14 @@ def get_fees( inputs, outputs ):
return (None, None)
# 0: op_return
if not tx_output_is_op_return( outputs[0] ):
if not virtualchain.tx_output_has_data( outputs[0] ):
return (None, None)
if outputs[0]["value"] != 0:
return (None, None)
# 1: change address
if virtualchain.script_hex_to_address( outputs[1]["script_hex"] ) is None:
if virtualchain.script_hex_to_address( outputs[1]["script"] ) is None:
return (None, None)
dust_fee = (len(inputs) + 1) * DEFAULT_DUST_FEE + DEFAULT_OP_RETURN_FEE

View File

@@ -75,19 +75,19 @@ def make_outputs( data, inputs, recipient_address, sender_address, update_hash_b
return [
# main output
{"script_hex": virtualchain.make_data_script(str(data)),
{"script": virtualchain.make_data_script(str(data)),
"value": 0},
# recipient output
{"script_hex": virtualchain.make_payment_script(recipient_address),
{"script": virtualchain.make_payment_script(recipient_address),
"value": dust_value},
# update hash output
{"script_hex": virtualchain.make_payment_script(update_hash_b58),
{"script": virtualchain.make_payment_script(update_hash_b58),
"value": dust_value},
# change output
{"script_hex": virtualchain.make_payment_script(sender_address),
{"script": virtualchain.make_payment_script(sender_address),
"value": virtualchain.calculate_change_amount(inputs, op_fee, dust_fee)}
]

View File

@@ -96,15 +96,15 @@ def make_outputs( data, inputs, change_addr, fee, tx_fee, pay_fee=True ):
return [
# main output
{"script_hex": virtualchain.make_data_script(str(data)),
{"script": virtualchain.make_data_script(str(data)),
"value": 0},
# change address
{"script_hex": virtualchain.make_payment_script( change_addr ),
{"script": virtualchain.make_payment_script( change_addr ),
"value": virtualchain.calculate_change_amount(inputs, bill, dust_fee)},
# burn address
{"script_hex": virtualchain.make_payment_script(BLOCKSTACK_BURN_ADDRESS),
{"script": virtualchain.make_payment_script(BLOCKSTACK_BURN_ADDRESS),
"value": op_fee}
]
@@ -155,7 +155,7 @@ def get_fees( inputs, outputs ):
return (None, None)
# 0: op_return
if not tx_output_is_op_return( outputs[0] ):
if not virtualchain.tx_output_has_data( outputs[0] ):
log.debug("outputs[0] is not an OP_RETURN")
return (None, None)
@@ -164,12 +164,12 @@ def get_fees( inputs, outputs ):
return (None, None)
# 1: change address
if virtualchain.script_hex_to_address( outputs[1]["script_hex"] ) is None:
if virtualchain.script_hex_to_address( outputs[1]["script"] ) is None:
log.error("outputs[1] has no decipherable change address")
return (None, None)
# 2: burn address
addr_hash = virtualchain.script_hex_to_address( outputs[2]["script_hex"] )
addr_hash = virtualchain.script_hex_to_address( outputs[2]["script"] )
if addr_hash is None:
log.error("outputs[2] has no decipherable burn address")
return (None, None)

View File

@@ -64,11 +64,11 @@ def make_outputs( nulldata, inputs, change_addr, tx_fee=0 ):
Make namespace-ready outputs
"""
return [
{ "script_hex": virtualchain.make_data_script(str(nulldata)),
{ "script": virtualchain.make_data_script(str(nulldata)),
"value": 0
},
# change output
{ "script_hex": virtualchain.make_payment_script(change_addr),
{ "script": virtualchain.make_payment_script(change_addr),
"value": virtualchain.calculate_change_amount(inputs, 0, tx_fee + DEFAULT_OP_RETURN_FEE)
}
]

View File

@@ -92,15 +92,15 @@ def make_outputs( data, inputs, sender_addr, fee, tx_fee, pay_fee=True ):
return [
# main output
{"script_hex": virtualchain.make_data_script(str(data)),
{"script": virtualchain.make_data_script(str(data)),
"value": 0},
# change address (can be subsidy key)
{"script_hex": virtualchain.make_payment_script(sender_addr),
{"script": virtualchain.make_payment_script(sender_addr),
"value": virtualchain.calculate_change_amount(inputs, bill, dust_fee)},
# burn address
{"script_hex": virtualchain.make_payment_script(BLOCKSTACK_BURN_ADDRESS),
{"script": virtualchain.make_payment_script(BLOCKSTACK_BURN_ADDRESS),
"value": op_fee}
]
@@ -156,7 +156,7 @@ def get_fees( inputs, outputs ):
return (None, None)
# 0: op_return
if not tx_output_is_op_return( outputs[0] ):
if not virtualchain.tx_output_has_data( outputs[0] ):
log.debug("outputs[0] is not an OP_RETURN")
return (None, None)
@@ -165,12 +165,12 @@ def get_fees( inputs, outputs ):
return (None, None)
# 1: change address
if virtualchain.script_hex_to_address( outputs[1]["script_hex"] ) is None:
if virtualchain.script_hex_to_address( outputs[1]["script"] ) is None:
log.error("outputs[1] has no decipherable change address")
return (None, None)
# 2: burn address
addr_hash = virtualchain.script_hex_to_address( outputs[2]["script_hex"] )
addr_hash = virtualchain.script_hex_to_address( outputs[2]["script"] )
if addr_hash is None:
log.error("outputs[2] has no decipherable burn address")
return (None, None)

View File

@@ -102,15 +102,15 @@ def make_outputs( data, change_inputs, register_addr, change_addr, tx_fee, renew
outputs = [
# main output
{"script_hex": virtualchain.make_data_script(str(data)),
{"script": virtualchain.make_data_script(str(data)),
"value": 0},
# register address
{"script_hex": virtualchain.make_payment_script(register_addr),
{"script": virtualchain.make_payment_script(register_addr),
"value": dust_value},
# change address (can be the subsidy address)
{"script_hex": virtualchain.make_payment_script(change_addr),
{"script": virtualchain.make_payment_script(change_addr),
"value": virtualchain.calculate_change_amount(change_inputs, bill, dust_fee)},
]
@@ -118,7 +118,7 @@ def make_outputs( data, change_inputs, register_addr, change_addr, tx_fee, renew
outputs.append(
# burn address (when renewing)
{"script_hex": virtualchain.make_payment_script(BLOCKSTACK_BURN_ADDRESS),
{"script": virtualchain.make_payment_script(BLOCKSTACK_BURN_ADDRESS),
"value": op_fee}
)
@@ -178,26 +178,26 @@ def get_fees( inputs, outputs ):
return (None, None)
# 0: op_return
if not tx_output_is_op_return( outputs[0] ):
if not virtualchain.tx_output_has_data( outputs[0] ):
log.debug("output[0] is not an OP_RETURN")
return (None, None)
# 1: reveal address
if virtualchain.script_hex_to_address( outputs[1]["script_hex"] ) is None:
log.debug("output[1] is not a p2pkh or p2sh script")
if virtualchain.script_hex_to_address( outputs[1]["script"] ) is None:
log.debug("output[1] is not a standard script")
return (None, None)
# 2: change address
if virtualchain.script_hex_to_address( outputs[2]["script_hex"] ) is None:
log.debug("output[2] is not a p2pkh or p2sh script")
if virtualchain.script_hex_to_address( outputs[2]["script"] ) is None:
log.debug("output[2] is not a a standard script")
return (None, None)
# 3: burn address, if given
if len(outputs) == 4:
addr_hash = virtualchain.script_hex_to_address( outputs[3]["script_hex"] )
addr_hash = virtualchain.script_hex_to_address( outputs[3]["script"] )
if addr_hash is None:
log.debug("output[3] is not a valid script")
log.debug("output[3] is not a standard script")
return (None, None)
if addr_hash != BLOCKSTACK_BURN_ADDRESS:
@@ -211,7 +211,7 @@ def get_fees( inputs, outputs ):
else:
# should match make_outputs().
# the +2 comes frmo 1 owner UTXO + 1 new output
# the +2 comes from 1 owner UTXO + 1 new output
dust_fee = (len(inputs) + 2) * DEFAULT_DUST_FEE + DEFAULT_OP_RETURN_FEE
return (dust_fee, op_fee)

View File

@@ -78,11 +78,11 @@ def make_outputs( data, inputs, change_address, tx_fee, pay_fee=True ):
return [
# main output
{"script_hex": virtualchain.make_data_script(str(data)),
{"script": virtualchain.make_data_script(str(data)),
"value": 0},
# change output
{"script_hex": virtualchain.make_payment_script(change_address),
{"script": virtualchain.make_payment_script(change_address),
"value": virtualchain.calculate_change_amount(inputs, op_fee, dust_fee)}
]
@@ -122,14 +122,14 @@ def get_fees( inputs, outputs ):
return (None, None)
# 0: op_return
if not tx_output_is_op_return( outputs[0] ):
if not virtualchain.tx_output_has_data( outputs[0] ):
return (None, None)
if outputs[0]["value"] != 0:
return (None, None)
# 1: change address
if virtualchain.script_hex_to_address( outputs[1]["script_hex"] ) is None:
if virtualchain.script_hex_to_address( outputs[1]["script"] ) is None:
return (None, None)
# should match make_outputs().

View File

@@ -102,13 +102,13 @@ def make_outputs( data, inputs, new_name_owner_address, change_address, tx_fee=0
return [
# main output
{"script_hex": virtualchain.make_data_script(str(data)),
{"script": virtualchain.make_data_script(str(data)),
"value": 0},
# new name owner output
{"script_hex": virtualchain.make_payment_script(new_name_owner_address),
{"script": virtualchain.make_payment_script(new_name_owner_address),
"value": dust_value},
# change output
{"script_hex": virtualchain.make_payment_script(change_address),
{"script": virtualchain.make_payment_script(change_address),
"value": virtualchain.calculate_change_amount(inputs, op_fee, dust_fee)}
]
@@ -153,18 +153,18 @@ def get_fees( inputs, outputs ):
return (None, None)
# 0: op_return
if not tx_output_is_op_return( outputs[0] ):
if not virtualchain.tx_output_has_data( outputs[0] ):
return (None, None)
if outputs[0]["value"] != 0:
return (None, None)
# 1: transfer address
if virtualchain.script_hex_to_address( outputs[1]["script_hex"] ) is None:
if virtualchain.script_hex_to_address( outputs[1]["script"] ) is None:
return (None, None)
# 2: change address
if virtualchain.script_hex_to_address( outputs[2]["script_hex"] ) is None:
if virtualchain.script_hex_to_address( outputs[2]["script"] ) is None:
return (None, None)
# should match make_outputs()

View File

@@ -99,11 +99,11 @@ def make_outputs( data, inputs, change_address, tx_fee, pay_fee=True ):
return [
# main output
{"script_hex": virtualchain.make_data_script(str(data)),
{"script": virtualchain.make_data_script(str(data)),
"value": 0},
# change output
{"script_hex": virtualchain.make_payment_script(change_address),
{"script": virtualchain.make_payment_script(change_address),
"value": virtualchain.calculate_change_amount(inputs, op_fee, dust_fee)}
]
@@ -151,7 +151,7 @@ def get_fees( inputs, outputs ):
return (None, None)
# 0: op_return
if not tx_output_is_op_return( outputs[0] ):
if not virtualchain.tx_output_has_data( outputs[0] ):
log.debug("Not an OP_RETURN output: %s" % outputs[0])
return (None, None)
@@ -160,7 +160,7 @@ def get_fees( inputs, outputs ):
return (None, None)
# 1: change address
if virtualchain.script_hex_to_address( outputs[1]["script_hex"] ) is None:
if virtualchain.script_hex_to_address( outputs[1]["script"] ) is None:
return (None, None)
# should match make_outputs()