-
Notifications
You must be signed in to change notification settings - Fork 85
Expand file tree
/
Copy pathModifierInvocations.sol
More file actions
35 lines (28 loc) · 1014 Bytes
/
ModifierInvocations.sol
File metadata and controls
35 lines (28 loc) · 1014 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// SPDX-License-Identifier: MIT
pragma solidity 0.8.34;
contract ModifierDefinitions {
// We enforce the use of parentheses in modifiers without parameters.
modifier emptyParams {_;}
modifier noParams() {_;}
}
contract ModifierInvocations is ModifierDefinitions {
// We can't differentiate between constructor calls or modifiers, so we keep
// parentheses untouched in constructors.
constructor () emptyParams noParams() ModifierDefinitions() {}
// We remove parentheses in modifiers without arguments.
function test() public emptyParams noParams() {}
}
library ModifierInvocationsLibrary {
// We enforce the use of parentheses in modifiers without parameters.
modifier emptyParams {_;}
modifier noParams() {_;}
modifier nonZero (uint x) {
require (x != 0);
_;
}
function isPrime (uint x) public nonZero (x) returns (bool) {
// Complicated logic here
}
// We remove parentheses in modifiers without arguments.
function test() public emptyParams noParams() {}
}