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 Entity
no 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 Entity
esa dirección.
Según tengo entendido EntityFactory
, habría creado un nuevo contrato llamando new
y 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?
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
emdor202
pabloruiz55