@achow101 noted we don't reject them therefore they must be silently accepted. This is not part of the specs, we should remove them. Also cc @sipa.

I can take care of this.
{
        assert(m_in);
        CPubKey pubkey(begin, end);
        if (pubkey.IsValid()) {
            Key key = m_keys.size();
            m_keys.push_back(InferPubkey(pubkey, ParseScriptContext::P2WSH, *m_in));
            return key;
        }
        return {};
    }
    template<typename I> std::optional<Key> FromPKHBytes(I begin, I end) const
    {
        assert(end - begin == 20);
        assert(m_in);
        uint160 hash;
        std::copy(begin, end, hash.begin());
        CKeyID keyid(hash);
        CPubKey pubkey;
        if (m_in->GetPubKey(keyid, pubkey)) {
            Key key = m_keys.size();
            m_keys.push_back(InferPubkey(pubkey, ParseScriptContext::P2WSH, *m_in));
            return key;
        }
        return {};
    }
};
std::unique_ptr<DescriptorImpl> ParseScript(uint32_t& key_exp_index, Span<const char>& sp, ParseScriptContext ctx, FlatSigningProvider& out, std::string& error)