DEV Community

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

Posted on • Edited on

Day 19 - Function Modifiers

GitHub logo envoy1084 / 30-Days-of-Solidity

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

Solidity

WARNING: This repository is currently undergoing updates and revisions to incorporate the latest information and advancements in Solidity programming. Please be advised that the content may not be up-to-date or accurate during this time. We expect the updates to be completed within the next 30 days, and appreciate your patience during this process. Thank you for your understanding.

Contents

This is Day 19 of 30 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

Top comments (0)