Obtener la dirección de un contrato implementado por otro contrato

Estoy tratando de implementar un contrato de otro contrato de fábrica y luego devolver la dirección del contrato recién creado. Sin embargo, la dirección que devuelve es el hash de la transacción, no la dirección del contrato. Creo que esto se debe a que el contrato aún no se extrae cuando se devuelve la dirección. Cuando despliego un contrato usando el despliegue web3, parece esperar hasta que se despliega el contrato antes de enviar la dirección.

El 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];
}}

Así es como llamo a la función createContract.

factory.createContract(2,function(err, res){
        if (err){
            console.log(err)
        }else{
        console.log(res)
        }
    });

Respuestas a la pregunta(2)

Su respuesta a la pregunta