Enum como chave no mapeamento agora permitido?

Sep 19 2020

Eu li que enums não eram permitidos como chaves em mapeamentos, mas quando eu tentei, ele estava funcionando em remix.ethereum.org. Era permitido em versões mais recentes do Solidity?

O caso de uso para o qual estou usando enum como chave é codificar tokens de maneira um pouco diferente, para um contrato com vários tokens. Portanto, isso realmente facilita a leitura com enum Token como a chave.

enum Token { TokenName1, TokenName2, TokenName3, TokenName4 }

mapping (Token => mapping (address => uint)) balanceOf;
mapping (Token => mapping (address => mapping (address => uint))) public allowed;

Respostas

1 Johan Sep 20 2020 at 02:08

Enum como chaves em um mapeamento foram adicionadas no Solidity v. 0.6.3, lançado em 18 de fevereiro de 2020. Este documento parece cobrir a história da linguagem Solidity, https://github.com/ethereum/solidity/blob/develop/Changelog.md, vá até 0.6.3.