Metapunk Web3 Community

Cover image for Day 19 - Function Modifiers
Vedant Chainani
Vedant Chainani

Posted on • Originally published at dev.to

Day 19 - Function Modifiers

GitHub logo Envoy-VC / 100-Days-of-Solidity

100 Days of Solidity step-by-step guide to learn Smart Contract Development.

This is Day 19 of 100 in Solidity Series
Today I Learned About Function Modifiers in Solidity.

Modifiers assist in the execution of a function’s behavior. The behavior of a function can be changed using a function modifier, they can also be called before or after a function is executed.

Solidity function modifiers help in the following:

  • To access restrictions
  • Input accuracy checks
  • Hacks protection

Example:

contract Owner {
   modifier onlyOwner {
      require(msg.sender == owner);
      _;
   }
}
Enter fullscreen mode Exit fullscreen mode

The function body is inserted where the special symbol "_;" appears in the definition of a modifier. So if condition of modifier is satisfied while calling this function, the function is executed and otherwise, an exception is thrown.

Example:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

contract Mint {
    constructor()  {
        owner = msg.sender;
    }
    modifier onlyOwner {
      require(msg.sender == owner);
      _;

    function _mint(address to , uint tokenId) onlyOwner {
      mint(to, tokenId);
    }
}
Enter fullscreen mode Exit fullscreen mode

Discussion (0)