跳至主要内容

[solidity] Overflow and Underflow

Github 連結

說明

在 Solidity 0.8.0 版本以前,使用 uint 型態會發生 Overflow 和 Underflow 之問題,而 0.8.0 版本以下的 Solidity 通常會使用 OpenZeppelin 的 SafeMath 來防止該問題發生。

Image

在 0.8.0 版本後的 Solidity 改善了此問題,當一筆交易發生 Overflow 或 Underflow 時,會自動中斷該次交易並跳出錯誤提示。

Image

Image

但如果在 Underflow 或 Overflow 時,加上 unchecked 指令,Solidity 將不檢查是否發生 Overflow 或 Underflow 之問題,交易一樣能成功執行。

Image

Image

Image