Exemplo Básico
Consideremos um modificador simples que restringe o acesso a uma função apenas ao dono (owner) do contrato:
pragmasolidity^0.8.0;contract MyContract{addresspublic owner;constructor() { owner =msg.sender;// Estabelece o dono do contrato ao ser implantado}// Definição do modificadormodifieronlyOwner() {require(msg.sender== owner,"Somente o proprietário pode executar esta função.");_;// Continua com a execução da função modificada}// Uso do modificador em uma funçãofunctionmyRestrictedFunction()publiconlyOwner{// Coloque a lógica da função aqui}}
CaracterÃsticas Importantes
Composição: Os modificadores podem ser aplicados a uma função em sequência, permitindo compor diferentes comportamentos e restrições de maneira flexÃvel.
Parâmetros: Assim como as funções, os modificadores podem receber parâmetros. Isso permite criar modificadores mais dinâmicos e reutilizáveis que podem operar com base em argumentos passados durante a chamada da função.
Visibilidade: Os modificadores podem ser declarados como public ou internal. Isso afeta como eles podem ser utilizados dentro do mesmo contrato ou em contratos derivados.