Recibo este error mientras pruebo mi contrato inteligente usando un casco
TypeError: no se pueden leer las propiedades de undefined (leyendo 'checkUpkeep')
código para la prueba
describe("checkUpkeep", () => { it("returns false if people haven't sent any eth", async () => { await network.provider.send("evm_increaseTime", [interval.toNumber() + 1]) await network.provider.send("evm_mine", []) const { upkeepNeeded } = await raffle.callstatic.checkUpkeep("0x") assert(!upkeepNeeded) }) })código relevante del contrato inteligente
function checkUpkeep( bytes memory /* checkData*/ ) public view override returns ( bool upkeepNeeded, bytes memory /* performData */ ) { bool isOpen = RaffleState.OPEN == s_raffleState; bool timePassed = (((block.timestamp) - s_lastTimeStamp) > i_interval); bool hasPlayers = s_players.length > 0; bool hasBalance = address(this).balance > 0; upkeepNeeded = (isOpen && timePassed && hasPlayers && hasBalance); return (upkeepNeeded, "0x0"); }Dado que es JS, es difícil saber cuál de las llamadas de función está tratando de acceder a una variable con un valor indefinido. Según el código que proporcionó, incluso podría ser que la referencia a la raffle no esté definida.
Pero asumo que este código es el mismo que está aquí .
Es posible que falte una importación en la configuración de su casco o en sus importaciones de prueba. Compruébalos dos veces. Parece que hay algo que su contexto de ejecución requiere que no se inyecta cuando se ejecutan sus pruebas.