No se puede llamar a la función y enviar transacciones de escritura desde geth-console

Tengo un contrato que tiene esta función:

function registerSensor(bytes32 name, bytes32 unit, bytes32 location) returns (bool success)
{
    sensors[msg.sender].exists = true;
    sensors[msg.sender].name = name;
    sensors[msg.sender].unit = unit;
    sensors[msg.sender].location = location;
    addresses.push(msg.sender);
    return true;
}

Si llamo a esta función en la consola de trufas con este comando:

Svd.then(function(instance) {return instance.registerSensor("Miner", "MH/s", "Desk"); })

entonces todo funciona bien, el sensor se agrega a la matriz de direcciones.

Si trato de hacer lo mismo en la consola geth, entonces no pasa nada, el sensor no se agrega a la matriz de direcciones. Puedo ver que la transacción se envía y también obtengo una identificación de transacción.

var svd = web3.eth.contract([{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getSensorData","outputs":[{"name":"data","type":"bytes32[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getSensorAddresses","outputs":[{"name":"addr","type":"address[]"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"name","type":"bytes32"},{"name":"unit","type":"bytes32"},{"name":"location","type":"bytes32"}],"name":"registerSensor","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getSensorMetaData","outputs":[{"name":"name","type":"bytes32"},{"name":"unit","type":"bytes32"},{"name":"location","type":"bytes32"}],"payable":false,"type":"function"},{"inputs":[],"payable":true,"type":"constructor"}]).at('0x27517492524152c925061648b15d78d451bbd04b')

svd.registerSensor("Node 1", "C", "Desk", {from: web3.eth.accounts[0]}, function(err, result) {
   console.log(err);
   console.log(result);
})

Aquí está la salida de la consola:ingrese la descripción de la imagen aquí

¿Me estoy perdiendo de algo?

Respuestas (1)

Ok, el problema fue que no definí un límite de gas, así que después de agregar la cantidad máxima de gas, finalmente funciona:

svd.registerSensor("Node 1", "C", "Desk", {from: web3.eth.accounts[0], gas:3000000})

:), parece que la trufa agrega el límite de gas automáticamente