I am trying to retrieve some money from my script which has been signed by three public keys. My final goal is
- Retrieve the unspent from the script by
P2WSH
Transaction
BUT every time I am Geeting witnessScript does not match scriptPubKey
error or ended up creating a P2SH
type transaction.
(Public key/private key)
03465618e4ebf897d966f4a8b72ca52d0ddc485b5b7eba6d40c12cec94a3858fbd/cSK8ezfkcgKbpBbVSb7NP8R3ppGMddqVv8U32z9cLSrK6e44B6Fx
032ecb7661bb23c0d6800fcb9e642d7a737667aee75876f90a401f898abf83e00e/cV5mZWixR81MRxoKaH66NWLDTaA6XeaQ2fbzxz11VqwxcFzNUzjV
02f36cc5b31c5af5b1d87c589be194976980330aa2a1df65e02f20748456d6b6f0
Don't have the 3rd one private key. All TestNet info. Here -
- bc - blockchain-cli
- $pubkey1, $pubkey2, $pubkey3 - is the three public key variables
bc -named createmultisig nrequired=2 keys='''["'$pubkey1'","'$pubkey2'","'$pubkey3'"]'''
{
"address": "2MsFQfjs9PmkxoAAqw7NzvnkpFRGLPEwtyo",
"redeemScript": "522103465618e4ebf897d966f4a8b72ca52d0ddc485b5b7eba6d40c12cec94a3858fbd21032ecb7661bb23c0d6800fcb9e642d7a737667aee75876f90a401f898abf83e00e2102f36cc5b31c5af5b1d87c589be194976980330aa2a1df65e02f20748456d6b6f053ae",
"descriptor": "sh(multi(2,03465618e4ebf897d966f4a8b72ca52d0ddc485b5b7eba6d40c12cec94a3858fbd,032ecb7661bb23c0d6800fcb9e642d7a737667aee75876f90a401f898abf83e00e,02f36cc5b31c5af5b1d87c589be194976980330aa2a1df65e02f20748456d6b6f0))#06tx67pl"
}
I have Send some money to the script address - 2MsFQfjs9PmkxoAAqw7NzvnkpFRGLPEwtyo
with transaction id - 22ea33232f9524d546382764b1ac8f5206ddd9459572dec38cf97fb99ab0557b
Transaction details
bc -named gettransaction txid=22ea33232f9524d546382764b1ac8f5206ddd9459572dec38cf97fb99ab0557b verbose=true
{
"amount": -0.00050000,
"fee": -0.00019811,
"confirmations": 4,
"blockhash": "00000000000ad6771f629d367cd4569646e9cb67f42b00f1b51aa03686ac8744",
"blockheight": 2349864,
"blockindex": 10,
"blocktime": 1665253069,
"txid": "22ea33232f9524d546382764b1ac8f5206ddd9459572dec38cf97fb99ab0557b",
"walletconflicts": [
],
"time": 1665252286,
"timereceived": 1665252286,
"bip125-replaceable": "no",
"details": [
{
"involvesWatchonly": true,
"address": "2MsFQfjs9PmkxoAAqw7NzvnkpFRGLPEwtyo",
"category": "send",
"amount": -0.00050000,
"label": "",
"vout": 0,
"fee": -0.00019811,
"abandoned": false
},
{
"address": "tb1qzagfwhcwwk5zn87ls7vxqldch5sklj4ze2fue4",
"category": "send",
"amount": -0.01000000,
"label": "",
"vout": 1,
"fee": -0.00019811,
"abandoned": false
},
{
"address": "tb1qzagfwhcwwk5zn87ls7vxqldch5sklj4ze2fue4",
"category": "receive",
"amount": 0.01000000,
"label": "",
"vout": 1
}
],
"hex": "020000000001013164d3472e6dd3f7d191b15a123c2da5046ac61c4bae90f29e86190aeafeb2370000000000ffffffff0250c300000000000017a9140008ea5a89a3ae133e2828b3c31603a08cd11e368740420f00000000001600141750975f0e75a8299fdf8798607db8bd216fcaa202473044022007f697ee913050b9e6294bd19487b5636ec12b400cccdd26d75f1a02703496530220706ab6b55c725fbcedded47f3dee01596e40b680e57230e15bb978ffa80e34af012103465618e4ebf897d966f4a8b72ca52d0ddc485b5b7eba6d40c12cec94a3858fbd00000000",
"decoded": {
"txid": "22ea33232f9524d546382764b1ac8f5206ddd9459572dec38cf97fb99ab0557b",
"hash": "eaae2a4ecc31e7dc0dc14b637b1683c1d0086bf36fca0ecef3220ec5d69038a2",
"version": 2,
"size": 223,
"vsize": 142,
"weight": 565,
"locktime": 0,
"vin": [
{
"txid": "37b2feea0a19869ef290ae4b1cc66a04a52d3c125ab191d1f7d36d2e47d36431",
"vout": 0,
"scriptSig": {
"asm": "",
"hex": ""
},
"txinwitness": [
"3044022007f697ee913050b9e6294bd19487b5636ec12b400cccdd26d75f1a02703496530220706ab6b55c725fbcedded47f3dee01596e40b680e57230e15bb978ffa80e34af01",
"03465618e4ebf897d966f4a8b72ca52d0ddc485b5b7eba6d40c12cec94a3858fbd"
],
"sequence": 4294967295
}
],
"vout": [
{
"value": 0.00050000,
"n": 0,
"scriptPubKey": {
"asm": "OP_HASH160 0008ea5a89a3ae133e2828b3c31603a08cd11e36 OP_EQUAL",
"hex": "a9140008ea5a89a3ae133e2828b3c31603a08cd11e3687",
"reqSigs": 1,
"type": "scripthash",
"addresses": [
"2MsFQfjs9PmkxoAAqw7NzvnkpFRGLPEwtyo"
]
}
},
{
"value": 0.01000000,
"n": 1,
"scriptPubKey": {
"asm": "0 1750975f0e75a8299fdf8798607db8bd216fcaa2",
"hex": "00141750975f0e75a8299fdf8798607db8bd216fcaa2",
"reqSigs": 1,
"type": "witness_v0_keyhash",
"addresses": [
"tb1qzagfwhcwwk5zn87ls7vxqldch5sklj4ze2fue4"
]
}
}
]
}
}
My insertion is to send some value the script 2MsFQfjs9PmkxoAAqw7NzvnkpFRGLPEwtyo
to address tb1qzagfwhcwwk5zn87ls7vxqldch5sklj4ze2fue4
. And the documentation I am following is this -
Bitcoin-CLI.
So, the first step -
rawtxhex_script=$(bc -named createrawtransaction inputs='''[ { "txid": "22ea33232f9524d546382764b1ac8f5206ddd9459572dec38cf97fb99ab0557b", "vout": 0 } ]''' outputs='''{ "tb1qzagfwhcwwk5zn87ls7vxqldch5sklj4ze2fue4": 0.00040000 }''')
And the second step -
bc decodescript 522103465618e4ebf897d966f4a8b72ca52d0ddc485b5b7eba6d40c12cec94a3858fbd21032ecb7661bb23c0d6800fcb9e642d7a737667aee75876f90a401f898abf83e00e2102f36cc5b31c5af5b1d87c589be194976980330aa2a1df65e02f20748456d6b6f053ae
{
"asm": "2 03465618e4ebf897d966f4a8b72ca52d0ddc485b5b7eba6d40c12cec94a3858fbd 032ecb7661bb23c0d6800fcb9e642d7a737667aee75876f90a401f898abf83e00e 02f36cc5b31c5af5b1d87c589be194976980330aa2a1df65e02f20748456d6b6f0 3 OP_CHECKMULTISIG",
"reqSigs": 2,
"type": "multisig",
"addresses": [
"mheEP3hjfyC4vHDKGuuKKRrnAqY8PThM5m",
"mfWypaqH23EDk2fNHEndgJzMRG4BP5eYKq",
"n4SUise83hJGrzhYdbtkFFN7efcG3vXSvF"
],
"p2sh": "2MsFQfjs9PmkxoAAqw7NzvnkpFRGLPEwtyo",
"segwit": {
"asm": "0 d40547b824433dcde19529821b9a752d05cfc6497fe26a816fc45143e7e20ab1",
"hex": "0020d40547b824433dcde19529821b9a752d05cfc6497fe26a816fc45143e7e20ab1",
"reqSigs": 1,
"type": "witness_v0_scripthash",
"addresses": [
"tb1q6sz50wpygv7umcv49xpphxn495zul3jf0l3x4qt0c3g58elzp2cs8qkznq"
],
"p2sh-segwit": "2NBF5pr9sv68WGuVcKbHqQQJ6pbAxPdCXzz"
}
}
I am using the hax from the above command as redeemScript
in my final step
And the final step -
bc -named signrawtransactionwithkey hexstring=$rawtxhex_script prevtxs='''[ { "txid": "22ea33232f9524d546382764b1ac8f5206ddd9459572dec38cf97fb99ab0557b", "vout": 0, "scriptPubKey": "a9140008ea5a89a3ae133e2828b3c31603a08cd11e3687", "redeemScript": "0020d40547b824433dcde19529821b9a752d05cfc6497fe26a816fc45143e7e20ab1", "witnessscript": "522103465618e4ebf897d966f4a8b72ca52d0ddc485b5b7eba6d40c12cec94a3858fbd21032ecb7661bb23c0d6800fcb9e642d7a737667aee75876f90a401f898abf83e00e2102f36cc5b31c5af5b1d87c589be194976980330aa2a1df65e02f20748456d6b6f053ae" } ]''' privkeys='["cSK8ezfkcgKbpBbVSb7NP8R3ppGMddqVv8U32z9cLSrK6e44B6Fx", "cV5mZWixR81MRxoKaH66NWLDTaA6XeaQ2fbzxz11VqwxcFzNUzjV"]'
From the command I am Geeting -
error code: -8
error message:
redeemScript/witnessScript does not match scriptPubKey
By removing the witnessscript
variable from my final command and using the redeemScript value in redeemScript
variable, I though can successfully create a P2SH transaction but that what I don't want, I need a P2WSH type transaction