Error: excepción de máquina virtual al procesar la transacción: sin combustible

Me encuentro con una excepción de falta de gasolina al llamar a esta función: contractInstance.createProposal("ADHD", "Foo", 2, {from: web3.eth.accounts[1]}). ¡Soy súper nuevo en ethereum y realmente agradecería algo de ayuda!

Aquí está mi contrato súper simple

pragma solidity ^0.4.2;

contract DataProvider {

struct Proposal {
    address owner;
    uint id;
    bytes16 name;
    bytes32 desc;
    uint pool_size;
    address[] consents;
    bool initialized;
}

address public admin;
Proposal[] public proposals;

function DataProvider() {
    admin = msg.sender;
}

function createProposal(bytes16 nm, bytes32 ds, uint n) {
    address[] memory cons;
    proposals.push(Proposal({ owner: msg.sender, id: proposals.length, name: nm, desc: ds, consents: cons, pool_size: n, initialized: true }));
}


}
con un límite de gas de 3000000 tu código funciona correctamente
@itachi primero, bienvenido a la comunidad, ya que pareces ser nuevo en la comunidad, para tu información, es mejor y sería útil al responder una pregunta si puedes mencionar qué intentaste para resolver el problema y cuáles fueron los resultados de esos al preguntar una pregunta. Buena suerte :) .
@AchalaDissanayake Gotcha, seguramente lo hará la próxima vez :) ¡Gracias por ser tan amable al respecto!

Respuestas (2)

Primero verifique el saldo de su cuenta: balance = web3.eth.getBalance(someAddress);luego intente especificar el límite de gascontractInstance.createProposal("ADHD", "Foo", 2, {from: web3.eth.accounts[1], gas:3000000})

¡Genial gracias! :) Además, también tenía un par de otras funciones que no he incluido por simplicidad, pero luego todas funcionaron bien. ¿Por qué esta función consume mucho más gas que otras?
depende del cálculo y del almacenamiento utilizado
@BadrBellaj Cambié el límite de gas a 3000000 usando remix . Pero me sigue dando out of gaserror. ¿Tuve que cambiar el precio de la gasolina también? Mi precio actual de la gasolina es 20000000000.

La solución de Badr Bellaj funcionó para mí, pero tuve que especificar contractInstance.method.myMethoden lugar de solo contractInstance.myMethod. Esto me hizo buscar una solución durante días, aunque lo intenté inmediatamente después de que ocurriera el error.