Примечание: предполагается, что вы можете обновить код Solidity для создаваемого контракта или что он уже вызывает такое событие при создании.

аюсь развернуть контракт из другого заводского контракта и затем вернуть адрес вновь созданного контракта. Однако адрес, который он возвращает, является хешем транзакции, а не адресом договора. Я считаю, что это потому, что контракт еще не заминирован, когда адрес возвращается. Когда я развертываю контракт с использованием развертывания web3, кажется, что он ждет, пока контракт не будет развернут, прежде чем выводить адрес.

Заводской контракт:

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

Ответы на вопрос(2)

Ваш ответ на вопрос