When using the lockunspent RPC method to prevent concurrency when creating raw transactions, after spending a locked output it is impossible to remove that output from locked unspent list due to an issue introduced in this PR #11087.
Example:
❯ bitcoin-cli listunspent
[ { "txid": "889379c3ea542024c2cba1d2f938ed3ea9d77d1c3b25bc36c6cc7b866aed9624", "vout": 0, "address": "mhNZnkDU9DtNqXDCo8jNUpPAYX4bfsdYdy", "scriptPubKey": "21030e468d40a69954e5ed1d9536a8bec61317c423b423a4eac49869609a0034d859ac", "amount": 50.00000000, "confirmations": 101, "spendable": true, "solvable": true, "safe": true } ]
❯ bitcoin-cli lockunspent false '[{ "txid": "889379c3ea542024c2cba1d2f938ed3ea9d77d1c3b25bc36c6cc7b866aed9624", "vout": 0 }]'
true
❯ bitcoin-cli listlockunspent
[ { "txid": "889379c3ea542024c2cba1d2f938ed3ea9d77d1c3b25bc36c6cc7b866aed9624", "vout": 0 } ]
❯ bitcoin-cli createrawtransaction '[{"txid":"889379c3ea542024c2cba1d2f938ed3ea9d77d1c3b25bc36c6cc7b866aed9624", "vout":0}]' '{ "mhNZnkDU9DtNqXDCo8jNUpPAYX4bfsdYdy": 49.99999 }'
02000000012496ed6a867bccc636bc253b1c7dd7a93eed38f9d2a1cbc2242054eac37993880000000000ffffffff0118ee052a010000001976a914145a232ba20c2f679585145d487546cc294cf54e88ac00000000
❯ bitcoin-cli signrawtransaction 02000000012496ed6a867bccc636bc253b1c7dd7a93eed38f9d2a1cbc2242054eac37993880000000000ffffffff0118ee052a010000001976a914145a232ba20c2f6795851
45d487546cc294cf54e88ac00000000
{ "hex": "02000000012496ed6a867bccc636bc253b1c7dd7a93eed38f9d2a1cbc2242054eac37993880000000049483045022100e71376bc4336db9021a3ec0d4ec99d160d062d941127771c05ce9120c93be90f02202670572802b27ae363f420cea7a7abd7cf29ac0f7277057a6e4ff1bced6c88eb01ffffffff0118ee052a010000001976a914145a232ba20c2f679585145d487546cc294cf54e88ac00000000", "complete": true }
❯ bitcoin-cli sendrawtransaction 02000000012496ed6a867bccc636bc253b1c7dd7a93eed38f9d2a1cbc2242054eac37993880000000049483045022100e71376bc4336db9021a3ec0d4ec99d160d062d941127771c05ce9120c93be90f02202670572802b27ae363f420cea7a7abd7cf29ac0f7277057a6e4ff1bced6c88eb01ffffffff0118ee052a010000001976a914145a232ba20c2f679585145d487546cc294cf54e88ac00000000
1b66295a16eda977788516c71d1e87c7a24b88651141678320b50b85c6602026
❯ bitcoin-cli listlockunspent
[ { "txid": "889379c3ea542024c2cba1d2f938ed3ea9d77d1c3b25bc36c6cc7b866aed9624", "vout": 0 } ]
# Unlock the already spent output
❯ bitcoin-cli lockunspent true '[{ "txid": "889379c3ea542024c2cba1d2f938ed3ea9d77d1c3b25bc36c6cc7b866aed9624", "vout": 0 }]'
error code: -8
error message:
Invalid parameter, expected unspent output
❯ bitcoin-cli listlockunspent
[ { "txid": "889379c3ea542024c2cba1d2f938ed3ea9d77d1c3b25bc36c6cc7b866aed9624", "vout": 0 } ]
The expected output was:
# Unlock the already spent output
❯ bitcoin-cli lockunspent true '[{ "txid": "889379c3ea542024c2cba1d2f938ed3ea9d77d1c3b25bc36c6cc7b866aed9624", "vout": 0 }]'
true
❯ bitcoin-cli listlockunspent
[ ]