Witness program hash mismatch while signing bech32 transaction

1

1

I'm trying to sign a transaction using signrawtransactionwithkey on bitcoin-core 0.17 but I'm getting the following error:

{"ERROR":"[{"txid":"c7e5bc9c9662384464182c713a6a6e20a2da72adb2b2a5799457be643d764139","vout":0,"witness":[],"scriptSig":"","sequence":4294967295,"error":"Witness program hash mismatch"}] 

parameters sent correctly since it's working on the testnet network it's just the mainnet

anyway the params sent as:

["transaction_in_hex",["private_key"],[inputs]

the inputs are

[{"txid":"c7e5bc9c9662384464182c713a6a6e20a2da72adb2b2a5799457be643d764139","vout":0,"scriptPubKey":"0014f3dd9523e2a801770513e00ed717fd610ea634af","amount":"0.00099784","address":"bc1q70we2glz4qqhwpgnuq8dw9lavy82vd903k7hpe","redeemScript":""}]]

I have been reading the bitcoin source code trying to understand what's the problem and it's obvious that the exception been thrown on here

  if (memcmp(hashScriptPubKey.begin(), program.data(), 32)) {
                return set_error(serror, SCRIPT_ERR_WITNESS_PROGRAM_MISMATCH);
            }

and here

if (witness.stack.size() != 2) {
                return set_error(serror, SCRIPT_ERR_WITNESS_PROGRAM_MISMATCH); // 2 items in witness
            }

Adam

Posted 2019-03-16T07:06:07.927

Reputation: 3 215

Could you please try removing the redeemScript parameter entirely?MCCCS 2019-03-16T13:20:36.640

I have tried that but exact same error. what makes me wonder that current exact code is working for testnet but not for mainnet.Adam 2019-03-16T13:35:25.837

Are you sure you're using the correct private key?Andrew Chow 2019-03-16T15:45:45.523

Answers

2

This error means that the transaction wasn't signed, which given that all of the inputs look correct, means that you are providing the wrong private key to sign the transaction with.

Andrew Chow

Posted 2019-03-16T07:06:07.927

Reputation: 40 910

Thanks a lot it's was a rare error caused by an update to mysql server, which caused the problem. Thanks again and I wish that bitcoin-core make the errors a little bit cleaner.Adam 2019-03-16T17:21:20.577