Sign in
Log inSign up

Modifiers in solidity

Tawseef nabi's photo
Tawseef nabi
·Feb 19, 2022·

1 min read

Modifiers can be used to change the behavior of functions in a declarative way. For example, you can use a modifier to automatically check a condition prior to executing the function. they can be used for:

  1. Restrict access
  2. Validate inputs
  3. Guard against reentrancy hack

  4. use the modifier in the declaration of a function.

    Modifier to check that the caller is the owner of the contract

    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.
     _;
    }
    

    Modifiers can take inputs. This modifier checks that the address passed in is not the zero address.

    modifier validAddress(address _addr) {
         require(_addr != address(0), "Not valid address");
         _;
     }
    
    function changeOwner(address _newOwner) public onlyOwner validAddress(_newOwner) {
         owner = _newOwner;
     }
    

    Modifiers can be called before and / or after a function.This modifier prevents a function from being called while,it is still executing.

    modifier noReentrancy() {
     require(!locked, "No reentrancy");
       locked = true;
       _;
       locked = false;
    }
    
    function decrement(uint i) public noReentrancy {
     x -= i;
     if (i > 1) {
       decrement(i - 1);
     }
    }
    
Hassle-free blogging platform that developers and teams love.
  • Docs by Hashnode
    New
  • Blogs
  • AI Markdown Editor
  • GraphQL APIs
  • Open source Starter-kit

© Hashnode 2024 — LinearBytes Inc.

Privacy PolicyTermsCode of Conduct