
<!-- Describe the issue -->
Following commit 46004790588c24174a0bec49b540d158ce163ffd (@achow101), `decodepsbt` overstates the fee, apparently including both the `witness_utxo` and `non_witness_utxo` amounts in the inputs.

**Expected behavior**

The decoded fee should be the sum of the inputs, minus the sum of the outputs.

**Actual behavior**

The decoded fee is exactly twice the amount of the inputs, minus the sum of the outputs.

**To reproduce**

Build any PSBT using `createpsbt`, `walletprocesspsbt`, then decode it with `decodepsbt`. See the `fee` field in the JSON.

**System information**

I compiled myself from 5550fa5983ea59e7ccef6540b7ec49a1770fb3ca on Whonix 14.

Then I did `git revert 46004790588c24174a0bec49b540d158ce163ffd ` and the problem went away.

}
        if (!input.missing_sigs.empty()) {
            UniValue missing_sigs_univ(UniValue::VARR);
            for (const CKeyID& pubkey : input.missing_sigs) {
                missing_sigs_univ.push_back(HexStr(pubkey));
            }
            missing.pushKV("signatures", missing_sigs_univ);
        }
        if (!missing.getKeys().empty()) {
            input_univ.pushKV("missing", missing);
        }
        inputs_result.push_back(input_univ);
    }
    if (!inputs_result.empty()) result.pushKV("inputs", inputs_result);
    if (psbta.estimated_vsize != nullopt) {
        result.pushKV("estimated_vsize", (int)*psbta.estimated_vsize);
    }
    if (psbta.estimated_feerate != nullopt) {
        result.pushKV("estimated_feerate", ValueFromAmount(psbta.estimated_feerate->GetFeePerK()));
    }
    if (psbta.fee != nullopt) {
        result.pushKV("fee", ValueFromAmount(*psbta.fee));
    }
    result.pushKV("next", PSBTRoleName(psbta.next));
    if (!psbta.error.empty()) {
        result.pushKV("error", psbta.error);
    }
    return result;
}
void RegisterRawTransactionRPCCommands(CRPCTable &t)