La matriz dinámica no puede ser parámetro de entrada

contract MyContract {
    uint public len;
    mapping(uint=>byte) public names;
    function initContracts(byte[] contractNames_){
        for(uint i=0;i<contractNames_.length;i++){
            names[i]=contractNames_[i];
        }
        len=contractNames_.length;
    }
}

Cuando uso Mist y paso [0x01,0x02,0x03], parece que byte[] contractNames_no se puede asignar al mapeo de almacenamiento names, y la variable lenpermanece en 0.

¿Has probado ["0x01","0x02","0x03"]con las cadenas hexadecimales citadas en Mist? Probé su código tal como está y funcionó con cadenas hexadecimales entre comillas en la solidez del navegador (salida en pastebin.com/psYDzPn0 ).
¡Muchas gracias! [0x01,0x02,0x03] no es válido.

Respuestas (1)

La entrada [0x01,0x02,0x03] tenía que usar cadenas hexadecimales entrecomilladas:["0x01","0x02","0x03"]

El código funciona tal como está en la solidez del navegador y OP ha confirmado que también funciona en Mist.