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.
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:
Verifique los parámetros de su llamada de función, parece que una de sus cláusulas requeridas interrumpe la transacción.
gisdev_p
contador infinito
gisdev_p
contador infinito