Obter o endereço de um contrato implantado por outro contrato
Estou tentando implantar um contrato de outro contrato de fábrica e retornar o endereço do contrato recém-criado. O endereço que ele retorna, porém, é o hash da transação e não o endereço do contrato. Acredito que isso ocorre porque o contrato ainda não foi minerado quando o endereço é retornado. Quando implanto um contrato usando a implementação web3, parece esperar até que o contrato seja implantado antes de emitir o endereço.
O contrato de fábrica:
contract Factory {
mapping(uint256 => Contract) deployedContracts;
uint256 numContracts;
function Factory(){
numContracts = 0;
}
function createContract (uint32 name) returns (address){
deployedContracts[numContracts] = new Contract(name);
numContracts++;
return deployedContracts[numContracts];
}}
É assim que estou chamando a função createContract.
factory.createContract(2,function(err, res){
if (err){
console.log(err)
}else{
console.log(res)
}
});