Transacción sin gas pero gas usado menos del límite de gas

Tengo este método en un contrato que estoy probando en rinkeby

function addMatch(string _name, uint _fixtureId, uint8 _home, uint8 away, uint _start) public onlyOwner returns (uint8) {
    require(_home < NUM_TEAMS && _away < NUM_TEAMS && _home != _away);
    require(_start >= now);
    Match memory newMatch = Match({
        home: _home,
        away: _away, 
        fixtureId: uint2str(_fixtureId),
        winner: 0, 
        start: _start, 
        name: _name
    });
    uint8 matchId = uint8(matches.push(newMatch));
    string memory url = strConcat(
        "json(https://api.basketball-matches.org/[my api key]/", 
        newMatch.fixtureId,
        ").[?(@.status=='FINISHED')].result[scoreHome,scoreAway]");
    bytes32 oraclizeId = oraclize_query(_start + QUERY_INTERVAL, "URL", url);
    oraclizeIds[oraclizeId] = matchId;
    emit MatchCreated(matchId);
    return matchId;
}

No importa cuánto establezca el límite de gas en la transacción, aún falla, sin embargo, el gas utilizado que se muestra en el escaneo de éter es menor que el límite de gas (que configuré en el límite de la red). ¿Alguien tiene alguna idea de cuál podría ser el problema? Estoy usando web3 y usando infura a través de truffle HDWallet.

ingrese la descripción de la imagen aquí

Intentar estimar el costo del gas usando web3 solo arroja un error. El error devuelto cuando llamo a este método en la cadena de bloques es:

Error: Transaction ran out of gas. Please provide more gas:
Podría ser que una de sus cláusulas requeridas interrumpa la transacción
@gisdev_p parece que lo fue, se olvidó de las zonas horarias, pero ¿por qué arrojar un error de falta de gas, requiere consumir todo el gas restante? Además, tenga en cuenta que su comentario sea una respuesta para que pueda darle el representante.
No debería consumir todo el gas, y no creo que lo haga. Al menos en la captura de pantalla de su pregunta, el gas utilizado es diferente y mucho más pequeño que el gas máximo.
Error extraño para regresar en tal caso entonces, pero gracias por su ayuda

Respuestas (1)

Verifique los parámetros de su llamada de función, parece que una de sus cláusulas requeridas interrumpe la transacción.