eth-infinitism/account-abstraction

TokenCallbackHandler.supportsInterface does not return true for IERC777Recipient interfaceId

Closed this issue · 1 comments

Description

The function supportsInterface from the contract TokenCallbackHandler does not return true for the selector of tokensReceived from IERC777Recipient:

    function supportsInterface(bytes4 interfaceId) external view virtual override returns (bool) {
        return
            interfaceId == type(IERC721Receiver).interfaceId ||
            interfaceId == type(IERC1155Receiver).interfaceId ||
            interfaceId == type(IERC165).interfaceId;
    }

Recommendation

Either include || interfaceId == type(IERC777Recipient).interfaceId or remove ERC-777 support altogether as in #354

there is an issue to remove erc-777: #359