<!-- This issue tracker is only for technical issues related to Bitcoin Core.

General bitcoin questions and/or support requests are best directed to the Bitcoin StackExchange at https://bitcoin.stackexchange.com.

For reporting security issues, please read instructions at https://bitcoincore.org/en/contact/.

If the node is "stuck" during sync or giving "block checksum mismatch" errors, please ensure your hardware is stable by running memtest and observe CPU temperature with a load-test tool such as linpack before creating an issue! -->

<!-- Describe the issue -->

**Expected behavior**

I'd expect funds in a watchonly wallet to be shown as "watchonly", be unspendable.

**Actual behavior**

Funds are shown as "mine" in getbalances, can be "spent" (sendtoaddress completes without error, however transaction is unspent and fails to enter mempool. Balance is incorrectly decremented)

**To reproduce**

Make a watchonly descriptor wallet.

```
bitcoin-cli createwallet w2 true true "" true true false 
```

Load up a descriptor that's got some funds on it.

```
$ bitcoin-cli -rpcwallet=w2 importdescriptors '[{"desc":"wpkh(tpubD6NzVbkrYhZ4Wh1z2cvkzQsM12k9kvyMMrGXi7rdk5eyUYUFND1qhB1zEZ3pJwSSSGLYsKfZLKNvs4L7oqNb8vJj3zJTvxMRCKWsNhX9JXQ/*)#86kup682", "timestamp":"now","active":true,"range":100}]'

```

See the balance.

```
$ bitcoin-cli -rpcwallet=w2 getbalances
{
  "mine": {
    "trusted": 3.00000000,
    "untrusted_pending": 3.00000000,
    "immature": 0.00000000,
    "used": 0.00000000
  }
}
```

Spend the balance.

```
$ bitcoin-cli -rpcwallet=w2 sendtoaddress bcrt1qnk09yy5ayyhwvfydg2x58zwy443pjx5uesg9gw 3.0 "" "" true
90bce182f476376e6cf3552e234c686ce5bfee4d47739081f5cba90de374156b
```

See the balance update.

```
$ bitcoin-cli -rpcwallet=w2 getbalances
{
  "mine": {
    "trusted": 0.00000000,
    "untrusted_pending": 0.00000000,
    "immature": 0.00000000,
    "used": 3.00000000
  }
}
```

Not in the mempool though

```
$ bitcoin-cli getmempoolentry 90bce182f476376e6cf3552e234c686ce5bfee4d47739081f5cba90de374156b
error code: -5
error message:
Transaction not in mempool
```


**System information**

Bitcoin Core version v0.21.0

<!-- What version of Bitcoin Core are you using, where did you get it (website, self-compiled, etc)? -->

<!-- What type of machine are you observing the error on (OS/CPU and disk type)? -->

<!-- GUI-related issue? What is your operating system and its version? If Linux, what is your desktop environment and graphical shell? -->

<!-- Any extra information that might be useful in the debugging process. -->
<!--- This is normally the contents of a `debug.log` or `config.log` file. Raw text or a link to a pastebin type site are preferred. -->

{
    return RPCHelpMan{"fundrawtransaction",
                "\nIf the transaction has no inputs, they will be automatically selected to meet its out value.\n"
                "It will add at most one change output to the outputs.\n"
                "No existing outputs will be modified unless \"subtractFeeFromOutputs\" is specified.\n"
                "Note that inputs which were signed may need to be resigned after completion since in/outputs have been added.\n"
                "The inputs added will not be signed, use signrawtransactionwithkey\n"
                " or signrawtransactionwithwallet for that.\n"
                "Note that all existing inputs must have their previous output transaction be in the wallet.\n"
                "Note that all inputs selected must be of standard form and P2SH scripts must be\n"
                "in the wallet using importaddress or addmultisigaddress (to calculate fees).\n"
                "You can see whether this is the case by checking the \"solvable\" field in the listunspent output.\n"
                "Only pay-to-pubkey, multisig, and P2SH versions thereof are currently supported for watch-only\n",
                {
                    {"hexstring", RPCArg::Type::STR_HEX, RPCArg::Optional::NO, "The hex string of the raw transaction"},
                    {"options", RPCArg::Type::OBJ, RPCArg::Optional::OMITTED_NAMED_ARG, "for backward compatibility: passing in a true instead of an object will result in {\"includeWatching\":true}",
                        {
                            {"add_inputs", RPCArg::Type::BOOL,  "true", "For a transaction with existing inputs, automatically include more if they are not enough."},
                            {"changeAddress", RPCArg::Type::STR,  "pool address", "The bitcoin address to receive the change"},
                            {"changePosition", RPCArg::Type::NUM,  "random", "The index of the change output"},
                            {"change_type", RPCArg::Type::STR,  "set by -changetype", "The output type to use. Only valid if changeAddress is not specified. Options are \"legacy\", \"p2sh-segwit\", and \"bech32\"."},
                            {"includeWatching", RPCArg::Type::BOOL,  "true for watch-only wallets, otherwise false", "Also select inputs which are watch only.\n"
                                                          "Only solvable inputs can be used. Watch-only destinations are solvable if the public key and/or output script was imported,\n"
                                                          "e.g. with 'importpubkey' or 'importmulti' with the 'pubkeys' or 'desc' field."},
                            {"lockUnspents", RPCArg::Type::BOOL,  "false", "Lock selected unspent outputs"},
                            {"fee_rate", RPCArg::Type::AMOUNT,  "not set, fall back to wallet fee estimation", "Specify a fee rate in " + CURRENCY_ATOM + "/vB."},
                            {"feeRate", RPCArg::Type::AMOUNT,  "not set, fall back to wallet fee estimation", "Specify a fee rate in " + CURRENCY_UNIT + "/kvB."},
                            {"subtractFeeFromOutputs", RPCArg::Type::ARR,  "empty array", "The integers.\n"
                                                          "The fee will be equally deducted from the amount of each specified output.\n"
                                                          "Those recipients will receive less bitcoins than you enter in their corresponding amount field.\n"