Не удалось создать экземпляр нового контракта из заводского контракта на консоли geth в частной сети.

Пожалуйста, дайте мне, как мне создать новый контракт с завода на консоли geth. Я не могу создать экземпляр с консоли geth. Показанная ниже функция createFactory Factory Contract отлично работала, когда я пытался вызвать ее из браузера Remix онлайн. Он также увеличивает счетчик на 1 при каждом вызове. Мой майнер работает, когда я делаю все это.

Ниже приведен исходный код. Я компилирую исходный код с помощью онлайн-компилятора солидности браузера Remix.

pragma solidity ^0.4.6;

contract Factory {

    bytes32[] Names;
    address[] newContracts;
    uint public count=0;

    function createContract (bytes32 name) {
        address newContract = new Contract(name);
        count=count+1;
        newContracts.push(newContract);
    } 

    function getName  (uint i) constant returns (address sblcAddress){
        Contract con = Contract(newContracts[i]);
      sblcAddress= address(con);
       return sblcAddress;
    }
}

contract Contract {

    bytes32 public Name;

    function Contract (bytes32 name) {
        Name = name;
    }
}

После открытия консоли geth и разблокировки моей базовой учетной записи я развертываю приведенный ниже код.

var browser_contractfactory_sol_factoryContract = web3.eth.contract([{"constant":true,"inputs":[],"name":"count","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"name","type":"bytes32"}],"name":"createContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"getName","outputs":[{"name":"sblcAddress","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]);
var browser_contractfactory_sol_factory = browser_contractfactory_sol_factoryContract.new(
   {
     from: web3.eth.accounts[0], 
     data: '0x60606040526000600255341561001457600080fd5b5b610376806100246000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306661abd146100545780633f811b801461007d5780636b8ff574146100a4575b600080fd5b341561005f57600080fd5b610067610107565b6040518082815260200191505060405180910390f35b341561008857600080fd5b6100a260048080356000191690602001909190505061010d565b005b34156100af57600080fd5b6100c560048080359060200190919050506101b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60025481565b600081610118610205565b808260001916600019168152602001915050604051809103906000f080151561014057600080fd5b9050600160025401600281905550600180548060010182816101629190610214565b916000526020600020900160005b83909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050565b6000806001838154811015156101c957fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508091508191505b50919050565b60405160e58061026683390190565b81548183558181151161023b5781836000526020600020918201910161023a9190610240565b5b505050565b61026291905b8082111561025e576000816000905550600101610246565b5090565b9056006060604052341561000f57600080fd5b6040516020806100e5833981016040528080519060200190919050505b80600081600019169055505b505b609d806100486000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638052474d14603d575b600080fd5b3415604757600080fd5b604d606b565b60405180826000191660001916815260200191505060405180910390f35b600054815600a165627a7a7230582072ea4eb8d6bf397a5e1d641def036a3a3776b2de002fb3d8a696958a36fdb86f0029a165627a7a72305820f96383d7dc97bbb8dcb737fe3cc485d872fa45409d75db689ccda27f6d1448f90029', 
     gas: '1087718887660'
   }, function (e, contract){
    console.log(e, contract);
    if (typeof contract.address !== 'undefined') {
         console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
    }
 });

Приведенный выше код создает новый заводской контракт по новому адресу. Я получаю адрес, по которому создается мой заводской контракт. Используя этот адрес, я пытаюсь получить доступ к функции createContract контракта Factory.

var factoryCInstance = browser_contractfactory_sol_factoryContract.at('0x...FactoryContractAddress..');


factoryCInstance.createContract(3,{from: web3.eth.accounts[0]});

После запуска вышеуказанной строки все, что я получаю, это хэш транзакции. Когда я звоню, factoryCInstance.count();отображается количество 0

@ Роб Хитченс, ваша помощь будет оценена по достоинству. Мой шахтер встал. Я жду пару минут, прежде чем вызвать функцию count(). Все работает нормально, когда я делаю это через ремикс, но функция createContract не работает, когда я делаю это на консоли geth.
Можете ли вы проверить получение транзакции, которая вызывает createContract? Если транзакция не удалась, она не обновит переменные состояния.
Это квитанция транзакции, когда я вызываю createContract { blockHash: "0xe71764eb35304f6a35b58b7b7dee8d94610e929a05ab2bcdc4371c0b2509640a", blockNumber: 3236, contractAddress: null, cumulativeGasUsed: 90000, from: "0x", : "0x000...000", root: "0xf661019257bb8522ad073c82ea244c43f6845e86f2b253388d28f714884cc7c8", to: "0xAccountAddress of Factory Contract", transactionHash: "0x5f64ea44e7e3b7658d8c99a08d5e06b5deb31fa595930aa8f4c6864d45 ce7825", transactionIndex: 0 }
@Ismael Блок-хеш и числа показаны в квитанции о транзакции. Также при выполнении eth.pendingTransactions я ничего не получаю.

Ответы (1)

Вызов createContract() с указанным значением газа решил мою проблему

factoryCInstance.createContract(2,{from:eth.accounts[0],gas: 470000});