es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Estructura de Solidity y error de código de apuesta: Por favor, revise el contrato.

Había construido un contrato de participación, pero mientras probaba la participación, está arrojando el error “La transacción se ha revertido al estado inicial”. Nota: La función llamada debe ser pagable si se envía un valor, y el valor que se envía debe ser menor que su saldo actual. Depure la transacción para obtener más información acerca de este error. Mi código es:

function startGame(address secondPlayer, string memory phrase, uint _amount) external {

    require(token.balanceOf(msg.sender) >= _amount);
    uint _stakedAmountChallenger = stakeZug(_amount);
    uint secret = uint(keccak256(abi.encodePacked(phrase)));
    matchLists.push(matchUps(matchStatus.Start, msg.sender, secondPlayer, _stakedAmountChallenger, 0, _stakedAmountChallenger, secret, false));
    uint gameNumber = matchLists.length - 1;
    isValid[gameNumber] = true;
    emit challengeInitiator(msg.sender, secondPlayer, false, gameNumber);
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con la línea require(token.balanceOf(msg.sender) >= _amount);. Asegúrate de que el _amount es menor que token.balanceOf(msg.sender) y que la función esté marcada como payable. Además, puedes depurar la transacción para obtener más información.

Comments are closed.