Solidity 솔리디티 강좌 26강 : 에러 핸들러 - assert, revert, require (0.8.x 버전)

flowing1ife·2023년 7월 7일
0

[ Solidity 깨부수기 ]

목록 보기
26/29
post-thumbnail

Solidity 솔리디티 강좌 26강 : 에러 핸들러 - assert, revert, require (0.8.x 버전)

이번엔 solidity의 0.8.x 버전, 에러 핸들러에 대해 알아보도록 하자.


에러 핸들러 (0.8.x 버전)

📌 Solidity

0.8.x 버전에서 에러 핸들러가 맞이한 변화는 assert에 있다. solidity documentation 0.8.7에 의하면 이제 assert는 가스를 환불해주고, 오직 내부적 에러 테스트, 불변성 체크 용도로 변경되었다. 또한 assert가 에러를 발생시키면 solidity에서 정의한 에러인 Panic이라는 에러 타입의 에러가 발생한다.

// SPDX-License-Identifier: GPL-3.0
pragma solidity >= 0.7.0 < 0.9.0;

contract lec26{
    function assertNow() public pure{
        assert(false); //test 용
    }
}

👉 결과

0.4.22 ~ 0.7.x 버전

2978936 gas를 소비한 것으로 보아 gas를 환불 안해주는 것을 알 수 있다.

0.8.x 버전

175 gas를 소비한 것으로 보아 이제는 assert도 gas를 환불해준다는 것을 알 수 있다.


출처 및 참고 자료

profile
👩🏻‍💻 Backend Engineer, Contract Developer

0개의 댓글