Add ERC20 permit() function

A post was split to a new topic: Why is ERC20Permit better than approve/transferFrom?