UnimplementedFeatureError: matrices dinámicas anidadas no implementadas aquí - bytes []

Creé un archivo de solidez que almacena todos los detalles en blockchain (aplicación de escritorio ganachi). Los detalles se mapearon con ' id ', que es un número alfanumérico (por ejemplo: US644563496). Ahora necesito mostrar todos los 'ID' de blockchain. Pero durante la compilación recibo el error ' UnimplementedFeatureError: matrices dinámicas anidadas no implementadas aquí '.

pragma solidity ^0.4.4;

contract Register{

 struct Details{
    bytes id;
    string name;
    string age;
   string country;
 }
 mapping (bytes => Details) DetailsTable;

bytes[] uid;

 function saveBondToBC(bytes id,string name,string age,string country) payable returns(bool success){

DetailsTable[id].id = id;
DetailsTable[id].name = name;
DetailsTable[id].age = age;
DetailsTable[id].country = country;
return true;

}


function insertID(bytes id) payable returns(bool success){

uid.push(id);
return true;

}

function getAllID() public returns(bytes[]){

    return uid;

}

}

Cuando eliminé la función getAllID() , se compiló y 'id' se insertó en la matriz. ¿Cómo obtener todos los datos de byte [] uid?

Respuestas (1)

UnimplementedFeatureError: matrices dinámicas anidadas no implementadas aquí

Este error le indica que Solidity no puede manejar arreglos 2D dinámicos. La función aún no se ha implementado.

Los detalles se mapearon con 'id', que es un número alfanumérico (p. ej.: US644563496)

Si ya sabe cuántos caracteres van a tener sus ID o cuál será su longitud máxima, puede definir la longitud del objeto de bytes. Véase también la Documentación .

Por lo tanto, una solución para usted podría ser simplemente reemplazar bytescon, bytes32por ejemplo. Cuando pruebo esto en Remix , no arroja un error.

Espero que ayude.

Gracias, cuando cambié el tipo de datos a bytes32... ¡Funcionó!