eth-permit icon indicating copy to clipboard operation
eth-permit copied to clipboard

How can we check whether a token supports permit?

Open tab00 opened this issue 2 years ago • 1 comments

I'm developing a dapp with a smart contract that can receive ERC20 tokens. What's the best way for a dapp (using ethers or web3) to check whether a token has the permit function, so that execution can fall back to using approve if not?

I had just tried signERC2612Permit with WETH on Rinkeby and it succeeded to create signature values, however when the smart contract tries to call permit the transaction is reverted without a reason. I then checked WETH and found that that WETH doesn't have permit.

Should signERC2612Permit check for permit before returning signature values, throwing an error if it doesn't exist?

tab00 avatar Apr 13 '22 08:04 tab00

What I do now is call contract.functions.nonces(DUMMY_ADDRESS) and contract.functions.DOMAIN_SEPARATOR() and see if they don't throw + return expected values (zero for nonces and non-zero bytes for DOMAIN_SEPARATOR.

rkalis avatar Apr 29 '23 17:04 rkalis