Nesse artigo iremos abordar o funcionamento do enum
no Solidity.
Enum (Enumerador)
O Solidity suporta os enumeradores e eles são muito úteis para modelar a escolha e acompanhar o estado do seu contrato inteligente.
Enums podem ser declarados fora de um contrato e acessados globalmente.
// SPDX-License-Identifier: MITpragma solidity ^0.8.13;contract Enum {// Enum representando o status do envioenum Status {Pending,Shipped,Accepted,Rejected,Canceled}// O valor padrão é o primeiro elemento listado na// definição do tipo, neste caso "Pending"Status public status;// Retorna uint// Pending - 0// Shipped - 1// Accepted - 2// Rejected - 3// Canceled - 4function get() public view returns (Status) {return status;}// Atualize o status passando uint na entradafunction set(Status _status) public {status = _status;}// Você pode atualizar para um enum específico como estefunction cancel() public {status = Status.Canceled;}// delete - redefine o enum para seu primeiro valor, 0function reset() public {delete status;}}
Declarando e importando Enum
Arquivo em que o enum é declarado
// SPDX-License-Identifier: MITpragma solidity ^0.8.13;// Nosso enum foi salvo com nome de 'EnumStatus.sol'enum Status {Pending,Shipped,Accepted,Rejected,Canceled}
Para importarmos o enum
, precisamos fazer o import do arquivo que salvamos anteriormente
// SPDX-License-Identifier: MITpragma solidity ^0.8.13;import "./EnumStatus.sol";contract Enum {Status public status;}