El contrato que crea otro contrato no muestra los detalles de la transacción resultante en etherescan

Buscando ayuda con una transacción exitosa que no muestra los detalles en etherescan.

Tener un contrato de fábrica desplegado así (simplificado):

contract EntityFactory  {

    event EntityCreated(address entity);

    function createEntity (string _hash) public returns (Entity entity) {
        Entity ent = new Entity(_hash);

        EntityCreated(ent);
        return ent;
    }
}

contract Entity {
    string private hash;

    function Entity (string _hash) public {
        hash = _hash;
    }

    function getHash() public returns(string) { 
        return hash; 
    }
}

Llamé EntityFactory.createEntity(...)con éxito y la transacción fue minada, etc.

En etherscan veo la transacción de llamada EntityFactory.createEntity(...)así como los eventos emitidos . En el registro de eventos vinculado, es el segundo evento. El primer dato del evento es la dirección del creado Entity.

Sin embargo, la dirección de Entityno se puede encontrar en etherscan. Cuando tomo la misma dirección y uso la consola de truffle para llamar Entity.at('<address>'), se encuentran los datos correctos y puedo interactuar con Entityesa dirección.

Según tengo entendido EntityFactory, habría creado un nuevo contrato llamando newy ese contrato también debería estar visible en etherscan.

¿Dónde estoy pensando mal acerca de esto?

¿Hay alguna manera de ver el contrato resultante de la llamada a EntityFactory.createEntity(...)algún lugar en etherescan?

Respuestas (1)

Acabo de probarlo en Remix.

El código parece funcionar bien, aunque debe marcar getHash() como constante/vista, ya que solo está leyendo datos.

Primero implementé el contrato EntityFactory: https://ropsten.etherscan.io/address/0x66ef7b2923c769c529300cb6f9d002be0337fc58

Luego ejecutó createEntity("Hello"), que creó e implementó un nuevo contrato de entidad.

Este es el hash tx: https://ropsten.etherscan.io/tx/0x40c981bd9f5936cad26f62ada2761484d17e7befdc6ee6a3b19a768087aea08f

Y el contrato de Entidad que generó: https://ropsten.etherscan.io/address/0xc9c9b580fc41cdcf10df9743cadc845f6d8300e9

Cuando miro el registro de eventos de la transacción que llamó al método de fábrica, puedo ver que la dirección de la Entidad está registrada allí como 0xc9c9b580fc41cdcf10df9743cadc845f6d8300e9. Sin embargo, esa dirección no aparece en etherscan entonces. ¿Cree que se debe a que se trata de una 'transacción interna'? Obviamente, la transacción tuvo éxito en general.
@ emdor202 sí, se muestra. Tienes una tabla con una entrada y algunas columnas. La tercera columna (_to) muestra la dirección del contrato creado por la transacción interna.