@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.
EllSwiftPubKey(Span<const std::byte> ellswift) noexcept;
    
    CPubKey Decode() const;
    
    const std::byte* data() const { return m_pubkey.data(); }
    static constexpr size_t size() { return SIZE; }
    auto begin() const { return m_pubkey.cbegin(); }
    auto end() const { return m_pubkey.cend(); }
    bool friend operator==(const EllSwiftPubKey& a, const EllSwiftPubKey& b)
    {
        return a.m_pubkey == b.m_pubkey;
    }
    bool friend operator!=(const EllSwiftPubKey& a, const EllSwiftPubKey& b)
    {
        return a.m_pubkey != b.m_pubkey;
    }
};
struct CExtPubKey {
    unsigned char version[4];
    unsigned char nDepth;
    unsigned char vchFingerprint[4];
    unsigned int nChild;
    ChainCode chaincode;
    CPubKey pubkey;
    friend bool operator==(const CExtPubKey &a, const CExtPubKey &b)