No se registra la transacción

Estoy escribiendo un fragmento de código que debería llamar a una API y registrar la respuesta a la cadena:

function(APIResponse) {
    // Write to chain
    console.log(`API responded with:\n${APIResponse}`);
    let callResult = instance.writeResponse.call(APIResponse);
    console.log(`Writing api response to chain result: ${callResult}`);
    const ID = instance.writeResponse.sendTransaction(APIResponse);
    console.log(`Transaction ID: ${ID}`)
}

En un intento de usar el patrón adecuado, primero llamo para verificar la función y luego envío la transacción. La llamada pasa y devuelve un valor booleano, pero sendTransaction falla con lo siguiente:

requestmanager.js:61 Uncaught Error: VM Exception while processing transaction: out of gas(…)

Haciendo referencia a un problema similar , intenté agregar gas a las llamadas de función:

function(APIResponse) {
    // Write to chain
    console.log(`API responded with:\n${APIResponse}`);
    let callResult = instance.writeResponse.call({gas: helper.averageGasBump}, APIResponse);
    console.log(`Writing api response to chain result: ${callResult}`);
    const ID = instance.writeResponse.sendTransaction({gas: helper.averageGasBump}, APIResponse);
    console.log(`Transaction ID: ${ID}`)
}

Esta vez, no se arroja ningún error, la transacción se registra, pero cuando intento acceder a la variable que debería haberse almacenado en la cadena como una cadena JSON, se devuelve una cadena vacía.

Curiosamente, dentro de la consola de trufas puedo invocar todas las funciones sin la necesidad de un golpe de gas adicional y se registran correctamente.

Estoy usando testrpc .

¿Podrías explicarme qué está pasando?

Respuestas (1)

Después de algunos retoques, descubrí dónde estaba el problema: estaba usando mal la API.

La llamada adecuada con el golpe de gas debería haber sido:

instance.writeResponse.call(APIResponse, {gas: helper.averageGasBump});