ethernaut
ethernaut copied to clipboard
Add new level: Good Samaritan
This level shows the user that Reverts Errors can be simulated from the call stack (bubbled-up), potentially provoking unexpected behavior if the developer assumes that the Error comes from one specific contract.
In this specific example (the level), an attacker can steal all the funds "simulating" the NotEnoughBalance() error defined in the Wallet contract.
I also added support for Solidity ^0.8.0 by aliasing the library to "openzeppelin-contracts-08" using:
yarn add openzeppelin-contracts-08@npm:@openzeppelin/contracts
Now the game supports uploading levels in versions 0.5.3, 0.6.12, or 0.8.12.
I hope you guys find this level useful.