the codes i take advantage of to construct the transaction
import hashlib
import base58
prev_txid = ‘ec5596bf71a498fc944e912f0bc21f0ead3806965402d74f1d670c2fff7c08c2’
prev_index = 0 # Assuming the output you wish to spend is the primary output of the earlier transaction
prev_amount = 0.01 # Quantity of the earlier transaction output
output_address=”tb1qyynpskfgzq7vszgra3ehvvhvu6d3xkdjqrq652″
output_amount = 0.0099 # Sending 0.01 BTC, minus 0.0001 BTC for the charge
witness_script_hex = ’76a914787be176f2618457541d957dd84d2df475b5d6ec88ac’ # Witness script
witness_script = bytes.fromhex(witness_script_hex)
witness_script_hash = hashlib.new(‘ripemd160’, hashlib.sha256(witness_script).digest()).digest()
input_script = bytes.fromhex(‘160014’) + witness_script_hash # OP_0 <witness_script_hash>
output_script = bytes.fromhex(‘0014’) + base58.b58decode(output_address)[5:] # P2WPKH output script
model = 1
locktime = 0
tx_in_count = 1
tx_out_count = 1
tx_in = (
bytes.fromhex(prev_txid)[::-1] + # prev tx id, little endian
prev_index.to_bytes(4, byteorder=”little”) + # prev index, little endian
len(input_script).to_bytes(1, byteorder=”little”) + # script size
input_script + # enter script
b’xffxffxffxff’ # sequence, little endian (0xFFFFFFFF)
)
tx_out = (
int(output_amount * 100000000).to_bytes(8, byteorder=”little”) + # worth, 8 bytes
len(output_script).to_bytes(1, byteorder=”little”) + # script size
output_script # output script
)
witness = (
len(input_script).to_bytes(1, byteorder=”little”) + # witness script size
input_script # witness script
)
final_tx = (
model.to_bytes(4, byteorder=”little”) + # model
tx_in_count.to_bytes(1, byteorder=”little”) + # variety of inputs
tx_in + # enter
tx_out_count.to_bytes(1, byteorder=”little”) + # variety of outputs
tx_out + # output
locktime.to_bytes(4, byteorder=”little”) + # lock time
b’00’ + # marker for SegWit transaction
witness # witness knowledge
)
tx_hash = hashlib.sha256(hashlib.sha256(final_tx).digest()).digest()
final_tx_hex = final_tx.hex() + tx_hash.hex()
print(“Unsigned Transaction Hex:”)
print(final_tx_hex)
and end result rawtransaction is
0100000001c2087cff2f0c671d4fd70254960638ad0e1fc20b2f914e94fc98a471bf9655ec00000000171600141ee06adc3ff6103b173eef823f8612345d3919d5ffffffff01301b0f00000000001c00141e2361ff02e8b850288e0b3a07f4420743b1deec45d744ced1ad000000003030171600141ee06adc3ff6103b173eef823f8612345d3919d5292a3cc2d63078d6441f02a42edc1be8debddf288fbb836bba289b1b266eb183
and provides rejection
Error validating transaction: witness redeem script detected in tx with out witness knowledge.
i acquired confused fixing the tx with out witness knowledge, anybody will help me ?