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)
        }
    });

questionAnswers(2)

yourAnswerToTheQuestion