견고성 수정자

수정자는 선언적 방식으로 함수의 동작을 변경하는 데 사용할 수 있습니다.
예를 들어 수정자를 사용하여 함수를 실행하기 전에 조건을 자동으로 확인할 수 있습니다. 다음 용도로 사용할 수 있습니다.
  • 액세스 제한
  • 입력 확인
  • 재진입 해킹 방지
  • 함수 선언에 modifier를 사용합니다.

  • 호출자가 계약의 소유자인지 확인하는 수정자

    modifier onlyOwner {
       require(msg.sender == owner);
         // Underscore is a special character only used inside
         // a function modifier and it tells Solidity to
         // execute the rest of the code.
       _;
     }
    


    수정자는 입력을 받을 수 있습니다. 이 수정자는 전달된 주소가 0 주소가 아닌지 확인합니다.

     modifier validAddress(address _addr) {
           require(_addr != address(0), "Not valid address");
           _;
       }
    



    function changeOwner(address _newOwner) public onlyOwner validAddress(_newOwner) {
           owner = _newOwner;
       }
    


    수정자는 함수 이전 및/또는 이후에 호출할 수 있습니다. 이 수정자는 함수가 실행 중인 동안 호출되는 것을 방지합니다.

     modifier noReentrancy() {
       require(!locked, "No reentrancy");
         locked = true;
         _;
         locked = false;
     }
    
     function decrement(uint i) public noReentrancy {
       x -= i;
       if (i > 1) {
         decrement(i - 1);
       }
     }
    

    좋은 웹페이지 즐겨찾기