https://secureum.substack.com/p/solidity-201
176. OpenZeppelin SignedSafeMath
- SignedSafeMath는 부호 있는 정수(signed integer)(int256) 타입의 산술 연산에서
- 오버플로(overflow)와 언더플로(underflow)를 방지하기 위해 만들어진 라이브러리입니다.
- SafeMath가 uint256용이라면, SignedSafeMath는 음수도 포함된 정수에 적용.
- Solidity 0.8.0 이전에서는 필수적으로 사용.
- Solidity 0.8.0 이후에는 자동으로 오버플로/언더플로를 revert하지만, 코드 가독성이나 호환성 때문에 여전히 쓰일 수 있음.
주요 함수
177. OpenZeppelin SafeCast
- Solidity에서 큰 정수 → 작은 정수로 형 변환(downcasting)할 때, 오버플로(overflow) 시 자동 revert가 안 되는 문제를 해결.
- SafeCast는 이런 경우 자동으로 revert시켜서, 개발자가 의도치 않은 값 손실을 방지.