# -*- coding: utf-8 -*-
"""
@Time : 2020/7/10 10:52
@Athor : LinXiao
@功能 :
"""
# ------------------------------
from pprint import pprint
from copy import deepcopy
def get_outputList(tx):
voutValues=0
vinValues=0
outputValue=0
vout=tx["vout"] # list
vin=tx["vin"] # list
for vi in vin:
outputList=[]
if vi['id'] == 'coinbase':
for vout_data in vout:
if vout_data["address"] != "":
dic={
"address": vout_data["address"][0],
"value": vout_data["value"]
}
outputValue=dic["value"]
outputList.append(dic)
# pprint(f"coinbase outputList is: {outputList}")
# pprint(f"coinbase outputValue is: {outputValue}")
# return outputValue, outputList
btc_data={
"outputList": outputList,
"voutValues": outputValue,
"vinValues": 0,
"outputValue": dic["value"],
"fee": dic["value"],
}
# pprint(btc_data)
tx.update(btc_data)
pprint(tx)
return tx
else:
# 判断vin中的地址是否在vout中出现,若出现在vout中,则删除掉vout中的这笔交易
vout1=deepcopy(vout)
for vi in vin:
vinValues+=vi["value"]
for vo in vout1:
if vi["address"] == vo["address"]:
vout1.remove(vo)
for vo1 in vout1:
output={
"address": vo1["address"][0],
"value": vo1["value"]
}
outputValue+=vo1["value"]
outputList.append(output)
for vot in vout:
voutValues+=vot["value"]
fee=vinValues - voutValues
# pprint(f"outputList : {outputList}")
# pprint(f"voutValues : {voutValues}")
# pprint(f"vinValues : {vinValues}")
# pprint(f"outputValue: {outputValue}")
# pprint(f"fee : {fee}")
# return outputValue, outputList, voutValues, vinValues, fee
btc_data={
"outputList": outputList,
"voutValues": voutValues,
"vinValues": vinValues,
"outputValue": outputValue,
"fee": fee,
}
tx.update(btc_data)
pprint(tx)
return tx
# pprint(outputList)
if __name__ == '__main__':
tx={'_id': '0ca067b886f20efcf9c4cdaa4317f68bb39e0d3adf04eba5ddc025a8ef35119d',
'blocknumber': 77913,
'blocktime': 1283548095,
'vin': [{'address': [''], 'id': 'coinbase', 'value': 0.0}],
'vout': [{'address': ['1BwaFhJVVAwzv7zWyfyxfW9QKBdmruYUB4'],
'id': '0',
'value': 50.0}]}
tx1={"_id": "a82bcbade7f2ab98a0b9208dae2e5fa6b44f5e37f8403ec8f74ca63c4d6189d2",
"blocknumber": 80002,
"blocktime": 1284615935,
"vin": [{"id": "11", "value": 10.50, "address": ["1LgsbKRKTcw7gYohUwntSUh6rtEWShxSH8"]},
{"id": "232", "value": 20.0, "address": ["qwe234"]},
{"id": "22", "value": 30.0, "address": ["qwerty123"]},
{"id": "22", "value": 80.0, "address": ["qwerty12323455"]},
],
"vout": [{"id": "0", "value": 10.0, "address": ["1LgsbKRKTcw7gYohUwntSUh6rtEWShxSH8"]},
{"id": "22", "value": 20.0, "address": ["qwe123"]},
{"id": "232", "value": 30.0, "address": ["zuuEcUSsBjL7s"]},
{"id": "232", "value": 40.0, "address": ["eeeeeeee"]},
{"id": "232", "value": 10.0, "address": ["qwerty12323455"]}
]}
# pprint(tx)
get_outputList(tx1)
网友评论