la solidez devuelve el mapeo (estructura) no funciona

    pragma solidity ^0.4.4;


contract heheBox { 

    struct DataBox {
        mapping(address => string) Data_01;
        mapping(address => string) Data_02;
    }

    mapping(address => DataBox) DataBox_hehe;

    function save(string _InputData_01, string _InputData_02) public  {
        DataBox_hehe[msg.sender].Data_01[msg.sender] = _InputData_01;
        DataBox_hehe[msg.sender].Data_02[msg.sender] = _InputData_02;           
    }   

    function display(address _address) constant public returns (struct) {
        return DataBox_hehe[_address];         
    }   

}

Deseo que la pantalla de función muestre el mapeo, DataBox_hehepero no lo hace. ¿Puede alguien me puede enseñar cómo puede hacer esto?

¡¡muchas gracias!!ingrese la descripción de la imagen aquí

Respuestas (1)

En lugar de devolver estructuras (que serían returns(DataBox)), devuelve elementos individuales. Esto lo mantiene compatible con otros contratos.

Prueba esto:

contract heheBox { 

    struct DataBox {
        mapping(address => string) Data_01;
        mapping(address => string) Data_02;
    }

    mapping(address => DataBox) DataBox_hehe;

    function save(string _InputData_01, string _InputData_02) public  {
        DataBox_hehe[msg.sender].Data_01[msg.sender] = _InputData_01;
        DataBox_hehe[msg.sender].Data_02[msg.sender] = _InputData_02;
    }   

    function display(address addressBox, address addressMap) constant public returns(string, string) {
        return(DataBox_hehe[addressBox].Data_01[addressMap], DataBox_hehe[addressBox].Data_02[addressMap]);
    }   

}

Espero eso ayude.

Rob Hitchens, mi maestro, muchas gracias, es un trabajo, pero mi esperanza original es obtener el mapeo de una estructura. Creo que esto ahorrará el gas. ¿Crees que es correcto? de todas formas te agradezco mucho tu comentario!!
Debería considerar dejar las 'asignaciones' donde están. En su lugar, considere pasar las llaves. Es posible devolver una matriz dinámica (de claves), pero existen limitaciones no triviales y casi siempre sería más costoso que una clave a la vez, según sea necesario. Puede estar buscando estructuras asignadas con índice aquí: ethereum.stackexchange.com/questions/13167/… o incluso pensando en medium.com/@robhitchens/…
muchas gracias, esta completa es la respuesta que necesito medium.com/@robhitchens/…