Current behavior:

```
src/bitcoin-cli -signet decodescript 2103d3b9c8cc852f3b4a06bad1711fd1a1761a592bf1475edc0a5f97b31759eba330ac736476a914b6e87320e876a740fc1365aeb1f4b6ab2fe4210b88ad53b268
```
```json
{
  "asm": "03d3b9c8cc852f3b4a06bad1711fd1a1761a592bf1475edc0a5f97b31759eba330 OP_CHECKSIG OP_IFDUP OP_NOTIF OP_DUP OP_HASH160 b6e87320e876a740fc1365aeb1f4b6ab2fe4210b OP_EQUALVERIFY OP_CHECKSIGVERIFY 3 OP_CHECKSEQUENCEVERIFY OP_ENDIF",
  "desc": "raw(2103d3b9c8cc852f3b4a06bad1711fd1a1761a592bf1475edc0a5f97b31759eba330ac736476a914b6e87320e876a740fc1365aeb1f4b6ab2fe4210b88ad53b268)#uul8nd2t",
  "type": "nonstandard",
  "p2sh": "2N62ryy2gBC2QBSdsm832Tv6qCW5py53wJn",
  "segwit": {
    "asm": "0 43c1d0387e91045591f19ff6d60af2bc0d91473b79dc3238aa9d0430f89741bc",
    "desc": "addr(tb1qg0qaqwr7jyz9ty03nlmdvzhjhsxez3em08wryw92n5zrp7yhgx7qj56vra)#ugngfnm5",
    "hex": "002043c1d0387e91045591f19ff6d60af2bc0d91473b79dc3238aa9d0430f89741bc",
    "address": "tb1qg0qaqwr7jyz9ty03nlmdvzhjhsxez3em08wryw92n5zrp7yhgx7qj56vra",
    "type": "witness_v0_scripthash",
    "p2sh-segwit": "2N9diLEHbASsz1oAeDQJPg5mb4LaAju9175"
  }
}
```

It would be nice if this (also) returned miniscript.

Perhaps `getaddressinfo` could do this as well (after #24148).

cc @sipa, @darosior 
+ HelpExampleCli("getrawtransaction", "\"mytxid\" 1 \"myblockhash\"")
            + HelpExampleCli("getrawtransaction", "\"mytxid\" 2 \"myblockhash\"")
                },
        [&](const RPCHelpMan& self, const JSONRPCRequest& request) -> UniValue
{
    const NodeContext& node = EnsureAnyNodeContext(request.context);
    ChainstateManager& chainman = EnsureChainman(node);
    uint256 hash = ParseHashV(request.params[0], "parameter 1");
    const CBlockIndex* blockindex = nullptr;
    if (hash == chainman.GetParams().GenesisBlock().hashMerkleRoot) {
        
        throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "The genesis block coinbase is not considered an ordinary transaction and cannot be retrieved");
    }
    
    int verbosity{0};
    if (!request.params[1].isNull()) {
        if (request.params[1].isBool()) {
            verbosity = request.params[1].get_bool();
        } else {
            verbosity = request.params[1].getInt<int>();
        }
    }
    if (!request.params[2].isNull()) {
        LOCK(cs_main);
        uint256 blockhash = ParseHashV(request.params[2], "parameter 3");
        blockindex = chainman.m_blockman.LookupBlockIndex(blockhash);
        if (!blockindex) {
            throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Block hash not found");
        }
    }