Skip to content

rpc: createmultisig adds incorrect warning for address type p2sh-segwit #25127

@mruddy

Description

@mruddy

The createmultisig RPC adds a spurious warning message when creating for address type p2sh-segwit.

createmultisig 2 '["0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", "0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"]' 'p2sh-segwit'
{
  "address": "3QfZQY7wQrBGEUB7E5vVLggeeAUVZ1Bbg9",
  "redeemScript": "52210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179852ae",
  "descriptor": "sh(wsh(multi(2,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)))#m8ww0c9m",
  "warnings": [
    "Unable to make chosen address type, please ensure no uncompressed public keys are present."
  ]
}

I think this traces back to #23113

In the code, the comparison at

if (!request.params[2].isNull() && OutputTypeFromDestination(dest) != output_type) {
fails since output_type is OutputType::P2SH_SEGWIT and
return OutputType::LEGACY;
returns OutputType::LEGACY

Expected behavior

No warning message. For example:

createmultisig 2 '["0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", "0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"]' 'p2sh-segwit'
{
  "address": "3QfZQY7wQrBGEUB7E5vVLggeeAUVZ1Bbg9",
  "redeemScript": "52210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179852ae",
  "descriptor": "sh(wsh(multi(2,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798,0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)))#m8ww0c9m"
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions