Add ERC: Contract signature validation extension for EIP-2612 Permit

If owner is an EOA […]

If owner is a contract […]

How should the contract determine if owner is an EOA or contract? There is at least one proposal (EIP-3540) that is trying to remove visibility into the code of external accounts. To be maximally forward compatible, I think you could define an algorithm for contracts to follow. Maybe a boolean for ecrecover vs. ERC-1271, or “try ecrecover first. If that fails, try ERC-1271.”