mirror of
https://github.com/autistic-symposium/blockchains-security-toolkit.git
synced 2025-05-14 04:32:17 -04:00
organize chapters for the ongoing research, remove dead links, add new resources
This commit is contained in:
parent
1748d1ed22
commit
184e917000
98 changed files with 421 additions and 11268 deletions
|
@ -1,54 +0,0 @@
|
|||
## 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>
|
Loading…
Add table
Add a link
Reference in a new issue