官术网_书友最值得收藏!

  • Mastering Ethereum
  • Merunas Grincalaitis
  • 259字
  • 2021-06-24 15:01:06

Modifiers

Modifiers are a special type of function that are used to verify data or execute something before the current function execution as a middleware. They are mostly used to verify that the user executing the function has the required permissions and to verify the parameters:

address public owner;
modifier onlyOwner() {
require(msg.sender == owner, ‘You must be the owner');
_;
}

function doSomething() public onlyOwner {}

As you can see, the onlyOwner modifier is used to check if the doSomething function is being executed by the owner of the contract or by another user. If the caller is the owner, the functions gets executed, and if it's an external address, the contract will revert, and an exception will be thrown.

Note that the require() function is a global assert function to verify that the condition inside it it's true or not. If not, it will throw, and it will stop executing the smart contract.

The underscore statement inside the _ modifier is used to indicate where the code of the function will be executed. Sometimes, you want to execute the function before the modifier's checks. The underscore statement is mandatory in modifiers. Also note that the modifier can have parameters optionally. If none are required, you can remove the brackets as follows:

modifier onlyOwner { ... }

Modifiers are very powerful tools that you'll often use whenever you see repetitive code doing the same verifications for several functions.

In the next section, you'll see the types of special modifiers that functions can take for visibility and payments.

主站蜘蛛池模板: 盐亭县| 鸡泽县| 扶绥县| 郓城县| 库尔勒市| 南靖县| 惠来县| 西昌市| 临安市| 龙南县| 武山县| 登封市| 田林县| 大悟县| 特克斯县| 军事| 房山区| 浮山县| 天长市| 湘潭市| 平舆县| 长葛市| 连云港市| 辽宁省| 五寨县| 佛学| 怀集县| 资溪县| 武城县| 南京市| 时尚| 平邑县| 江城| 江北区| 固镇县| 镇宁| 揭东县| 石林| 石城县| 咸阳市| 富阳市|