Funções externas: Todas as funções declaradas em uma interface devem ser externas. Isso significa que só podem ser chamadas de fora do contrato, e não de dentro dele.
Herança: As interfaces podem herdar de outras interfaces, e os contratos podem implementar múltiplas interfaces, permitindo uma forma de herança múltipla.
Compatibilidade: As interfaces facilitam a interação entre contratos ao definir um conjunto comum de funções públicas sem impor uma estrutura interna. Isso permite que contratos diferentes interajam entre si, desde que cumpram com a interface especificada.
Para declarar uma interface em Solidity, utiliza-se a palavra-chave interface. A seguir, está um exemplo simples de como uma interface pode ser definida:
Um contrato implementa uma interface ao herdar dela e fornecer implementações concretas para todas as suas funções. Aqui está um exemplo de como um contrato pode implementar a interface IGreeter definida anteriormente:
As interfaces são especialmente úteis em Solidity para definir padrões comuns e permitir a interação entre contratos. Por exemplo, o ERC-20 e o ERC-721 são interfaces que definem os padrões para tokens fungÃveis e não fungÃveis na Ethereum, respectivamente. Ao implementar essas interfaces, os contratos de tokens garantem a interoperabilidade com wallets, exchanges e outros contratos que esperam tokens que seguem essas especificações.
As interfaces promovem a separação entre a definição de uma funcionalidade e sua implementação, permitindo que desenvolvedores de contratos inteligentes criem sistemas modulares e extensÃveis que podem interagir de maneira eficiente e segura no ecossistema do Ethereum.