Create overflow.md

This commit is contained in:
steinkirch.eth, phd 2023-06-19 08:24:32 -07:00 committed by GitHub
parent 671ac806bd
commit ef334243d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,54 @@
## overflow of numbers
<br>
<br>
----
### unchecked math
<br>
* overflow and underflow of numbers in solidity 0.8 throw an error. this can be disabled with `unchecked`.
* disabling overflow / underflow check saves gas.
<br>
```
contract UncheckedMath {
function add(uint x, uint y) external pure returns (uint) {
// 22291 gas
// return x + y;
// 22103 gas
unchecked {
return x + y;
}
}
function sub(uint x, uint y) external pure returns (uint) {
// 22329 gas
// return x - y;
// 22147 gas
unchecked {
return x - y;
}
}
function sumOfCubes(uint x, uint y) external pure returns (uint) {
// Wrap complex math logic inside unchecked
unchecked {
uint x3 = x * x * x;
uint y3 = y * y * y;
return x3 + y3;
}
}
}
```
<br>