我试图在另一个工厂合约中部署一个合约,然后返回新创建的合约地址。但是它返回的地址是交易哈希而不是合约地址。我认为这是因为当地址被返回时,合约尚未被挖掘。当我使用web3 deploy部署合约时,它似乎会等待合约部署完成后再输出地址。
工厂合约:
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];
}}
这是我调用 createContract 函数的方式。
factory.createContract(2,function(err, res){
if (err){
console.log(err)
}else{
console.log(res)
}
});