¿Enum como clave en el mapeo ahora permitido?

Sep 19 2020

Leí que las enumeraciones no estaban permitidas como claves en las asignaciones, pero cuando lo intenté, estaba funcionando en remix.ethereum.org. ¿Estaba permitido en versiones más recientes de Solidity?

El caso de uso para el que estoy usando enum como clave es codificar tokens de manera un poco diferente, para un contrato con múltiples tokens. Así que realmente hace que sea más fácil de leer con enum Token como clave.

enum Token { TokenName1, TokenName2, TokenName3, TokenName4 }

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

Respuestas

1 Johan Sep 20 2020 at 02:08

Enum, ya que se agregaron claves en un mapeo en Solidity v. 0.6.3, publicado el 18 de febrero de 2020. Este documento parece cubrir la historia del lenguaje Solidity, https://github.com/ethereum/solidity/blob/develop/Changelog.md, desplácese hasta 0.6.3.