Skip to content

Instantly share code, notes, and snippets.

@vis-kid
Created February 4, 2022 20:08
Show Gist options
  • Save vis-kid/a673777d5ef67a0cf03fbe65b61c349d to your computer and use it in GitHub Desktop.
Save vis-kid/a673777d5ef67a0cf03fbe65b61c349d to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.5.11+commit.22be8592.js&optimize=false&runs=200&gist=
pragma solidity 0.5.11;
contract Errors {
uint public balance;
uint public constant MAXAMOUNT = 2 ** 256 -1;
function deposit(uint _amount) external {
uint oldBalance = balance;
uint newBalance = balance + _amount;
require(newBalance >= balance, "Error");
balance = newBalance;
assert(balance >= oldBalance);
}
function withdraw(uint _amount) external {
uint oldBalance = balance;
if (balance < _amount) {
revert("Not enough funds");
}
uint newBalance = balance - _amount;
require(newBalance <= balance, "Error");
balance = newBalance;
assert(balance <= oldBalance);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment