• R/O
  • HTTP
  • SSH
  • HTTPS

bytom-kit: 提交

kaleidoscope


Commit MetaInfo

修订版07d47d24a1d4e0cfb9c8219c002fe749b77bed96 (tree)
时间2019-03-11 19:18:35
作者Chengcheng Zhang <943420582@qq.c...>
CommiterChengcheng Zhang

Log Message

add get_mux_id, get_output_id

更改概述

差异

--- a/app/model/transaction.py
+++ b/app/model/transaction.py
@@ -93,7 +93,16 @@ def get_input_id(spend_output_id_hexstr):
9393 return input_id_hexstr
9494
9595
96-# def get_output_id():
96+def get_mux_id(prepare_mux_hexstr):
97+ innerhash_bytes = sha3_256(bytes.fromhex(prepare_mux_hexstr)).digest()
98+ mux_id_hexstr = sha3_256(b'entryid:mux1:' + innerhash_bytes).hexdigest()
99+ return mux_id_hexstr
100+
101+
102+def get_output_id(prepare_output_id_hexstr):
103+ innerhash_bytes = sha3_256(bytes.fromhex(prepare_output_id_hexstr)).digest()
104+ output_id_hexstr = sha3_256(b'entryid:output1:' + innerhash_bytes).hexdigest()
105+ return output_id_hexstr
97106
98107
99108 '''
@@ -168,6 +177,7 @@ def decode_raw_tx(raw_tx_str, network_str):
168177 offset = offset + 2 * length
169178 tx_input_amount, length = get_uvarint(raw_tx_str[offset:offset+8])
170179 offset = offset + 2 * length
180+ prepare_mux_hexstr = (tx_input_amount).to_bytes((tx_input_amount.bit_length() + 7) // 8, 'little').hex()
171181 for _ in range(tx_input_amount):
172182 tx_input = {
173183 "address": "",
@@ -221,10 +231,13 @@ def decode_raw_tx(raw_tx_str, network_str):
221231 offset = offset + 2 * argument_length
222232 tx_input['witness_arguments'].append(argument)
223233 tx['inputs'].append(tx_input)
234+ prepare_mux_hexstr += tx_input['input_id'] + tx_input['asset_id'] + (tx_input['amount']).to_bytes(8, byteorder='little').hex() + '0000000000000000'
224235 elif input_type == 2:
225236 pass
226237 tx_output_amount, length = get_uvarint(raw_tx_str[offset:offset+16])
227238 offset = offset + 2 * length
239+ prepare_mux_hexstr += '0100000000000000' + '0151'
240+ mux_id_hexstr = get_mux_id(prepare_mux_hexstr)
228241 for i in range(tx_output_amount):
229242 tx_output = {
230243 "address": "",
@@ -255,5 +268,7 @@ def decode_raw_tx(raw_tx_str, network_str):
255268 tx_output['address'] = receiver.create_address(tx_output['control_program'], network_str)['address']
256269 _, length = get_uvarint(raw_tx_str[offset:offset+16])
257270 offset = offset + 2 * length
271+ prepare_output_id_hexstr = mux_id_hexstr + tx_output['asset_id'] + (tx_output['amount']).to_bytes(8, byteorder='little').hex() + (i).to_bytes(8, byteorder='little').hex() + '0100000000000000' + (control_program_length).to_bytes((control_program_length.bit_length() + 7) // 8, 'little').hex() + tx_output['control_program']
272+ tx_output['id'] = get_output_id(prepare_output_id_hexstr)
258273 tx['outputs'].append(tx_output)
259274 return tx
Show on old repository browser