āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ āĻšāϞ āϏāϞāĻŋāĻĄāĻŋāĻāĻŋāϤ⧠āĻāĻāĻāĻŋ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āϝāĻž āĻĢāĻžāĻāĻļāύā§āϰ āĻāĻāϰāĻŖ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻāĻŦāĻ āĻŦāĻŋāĻļā§āώ āĻļāϰā§āϤ⧠āϤāĻžāĻĻā§āϰ āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻž āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāϤ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤ āύāĻŋāĻā§ āĻŦāĻŋāĻāĻŋāύā§āύ āϧāϰāύā§āϰ āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻā§āĻāϝāĻŧāĻž āĻšāϞāĨ¤
ā§§. āĻŽāĻžāϞāĻŋāĻāĻžāύāĻž āϝāĻžāĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ
āĻāĻ āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāĻāĻŋ āĻā§āĻā§āϤāĻŋāϰ āĻŽāĻžāϞāĻŋāĻā§āϰ āĻ āύā§āĻŽāϤāĻŋ āĻāĻžāĻĄāĻŧāĻž āĻā§āύāĻ āĻĢāĻžāĻāĻļāύ⧠āĻĒā§āϰāĻŦā§āĻļāĻžāϧāĻŋāĻāĻžāϰ āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻāϰā§āĨ¤
pragma solidity ^0.8.0;
contract Ownership { address public owner;
constructor() {
owner = msg.sender; // āĻā§āĻā§āϤāĻŋāϰ āύāĻŋāϰā§āĻŽāĻžāϤāĻž āĻšāϞ āĻŽāĻžāϞāĻŋāĻ
}
modifier onlyOwner() {
require(msg.sender == owner, "You are not the owner!");
_; // āĻāĻāĻžāύ⧠āĻĢāĻžāĻāĻļāύā§āϰ āĻŽā§āϞ āĻā§āĻĄ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻ āĻšāĻŦā§
}
function secureFunction() public onlyOwner {
// āĻā§āĻŦāϞ āĻŽāĻžāϞāĻŋāĻāĻ āĻāĻ āĻĢāĻžāĻāĻļāύāĻāĻŋ āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§
}
}
⧍. āϏāĻŽāϝāĻŧ āϏā§āĻŽāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŖāĻāĻžāϰ⧠āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ
āĻāĻ āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύāĻā§ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻŽāϝāĻŧā§āϰ āĻāύā§āϝ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧ āĻāϰā§āĨ¤
pragma solidity ^0.8.0;
contract TimeRestricted { uint256 public lastCalled; uint256 public timeLimit = 1 hours;
modifier timeLimitReached() {
require(block.timestamp >= lastCalled + timeLimit, "Function called too soon!");
_;
}
function restrictedFunction() public timeLimitReached {
lastCalled = block.timestamp; // āϏāĻŽāϝāĻŧ āϏā§āĻŽāĻž āĻĒā§āύāϰāĻžāϝāĻŧ āϏā§āĻ āĻāϰā§āύ
// āĻāĻžāϰā§āϝāĻāϰ⧠āĻā§āĻĄ
}
}
ā§Š. āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻā§āϰ āĻŦā§āϝāĻžāϞā§āύā§āϏ āϝāĻžāĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ
āĻāĻ āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāĻāĻŋ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰ⧠āϝā§, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻā§ āĻĒāϰā§āϝāĻžāĻĒā§āϤ āĻŦā§āϝāĻžāϞā§āύā§āϏ āĻāĻā§āĨ¤
pragma solidity ^0.8.0;
contract BalanceCheck { mapping(address => uint256) public balances;
modifier hasSufficientBalance(uint256 amount) {
require(balances[msg.sender] >= amount, "Insufficient balance!");
_;
}
function withdraw(uint256 amount) public hasSufficientBalance(amount) {
balances[msg.sender] -= amount; // āĻ
ā§āϝāĻžāĻāĻžāĻāύā§āĻ āĻĨā§āĻā§ āĻāĻžāĻāĻž āϤā§āϞ⧠āύā§āĻāϝāĻŧāĻž
}
}
ā§Ē. āĻāύāĻĢāĻžāϰā§āĻŽā§āĻļāύ āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ
āĻāĻ āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āĻāϞā§āϰ āĻĒā§āϰā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āύāĻŋāĻļā§āĻāĻŋāϤāĻāϰāĻŖ āĻāĻžāϝāĻŧāĨ¤
pragma solidity ^0.8.0;
contract Confirmation { modifier confirmed() { require(msg.sender == tx.origin, "You must confirm the transaction!"); _; }
function executeAction() public confirmed {
// āĻāĻžāϰā§āϝāĻāϰ⧠āĻā§āĻĄ
}
}
ā§Ģ. āĻāĻāĻžāϧāĻŋāĻ āĻļāϰā§āϤ āϝāĻžāĻāĻžāĻāĻāĻžāϰ⧠āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ
āĻāĻ āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāĻāĻŋ āĻāĻāĻžāϧāĻŋāĻ āĻļāϰā§āϤ āϝāĻžāĻāĻžāĻ āĻāϰā§āĨ¤
pragma solidity ^0.8.0;
contract MultiCondition { address public owner; bool public isActive;
constructor() {
owner = msg.sender;
isActive = true;
}
modifier onlyOwnerAndActive() {
require(msg.sender == owner, "You are not the owner!");
require(isActive, "Contract is not active!");
_;
}
function secureFunction() public onlyOwnerAndActive {
// āĻāĻžāϰā§āϝāĻāϰ⧠āĻā§āĻĄ
}
function deactivate() public onlyOwnerAndActive {
isActive = false; // āĻā§āĻā§āϤāĻŋ āύāĻŋāώā§āĻā§āϰāĻŋāϝāĻŧ āĻāϰā§āύ
}
}
ā§Ŧ. āĻĒāĻāĻŋāĻāĻŋāĻ āύāĻŽā§āĻŦāϰ āϝāĻžāĻāĻžāĻāĻāĻžāϰ⧠āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ
āĻāĻ āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāĻāĻŋ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰ⧠āϝā§, āϏāĻāĻā§āϝāĻž āĻĒāĻāĻŋāĻāĻŋāĻāĨ¤
pragma solidity ^0.8.0;
contract PositiveNumberCheck { modifier onlyPositive(uint256 number) { require(number > 0, "Number must be positive!"); _; }
function processNumber(uint256 number) public onlyPositive(number) {
// āĻāĻžāϰā§āϝāĻāϰ⧠āĻā§āĻĄ
}
}
ā§. āĻŽāĻžāϞā§āĻāĻŋ-āĻĢāĻžāĻāĻļāύ āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰ
āĻāĻ āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāĻāĻŋ āĻāĻāĻžāϧāĻŋāĻ āĻĢāĻžāĻāĻļāύā§āϰ āĻāύā§āϝ āĻāĻāĻ āĻļāϰā§āϤ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰā§āĨ¤
pragma solidity ^0.8.0;
contract MultiFunctionModifier { address public owner;
constructor() {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner, "You are not the owner!");
_;
}
function functionOne() public onlyOwner {
// āĻāĻžāϰā§āϝāĻāϰ⧠āĻā§āĻĄ
}
function functionTwo() public onlyOwner {
// āĻāĻžāϰā§āϝāĻāϰ⧠āĻā§āĻĄ
}
}
āĻāĻĒāϏāĻāĻšāĻžāϰ
āϏāϞāĻŋāĻĄāĻŋāĻāĻŋāϤ⧠āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāĻā§āϞāĻŋ āĻĄā§āĻā§āϞāĻĒāĻžāϰāĻĻā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻā§āϞ, āϝāĻž āĻĢāĻžāĻāĻļāύā§āϰ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻāĻŦāĻ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāĻā§āϞāĻŋāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĻā§āĻāĻž āĻā§āĻā§ āϝā§, āĻāĻŋāĻāĻžāĻŦā§ āĻŦāĻŋāĻāĻŋāύā§āύ āĻļāϰā§āϤ āĻāĻŦāĻ āύāĻŋāϝāĻŧāĻŽāĻžāĻŦāϞ⧠āĻŽāĻĄāĻŋāĻĢāĻžāϝāĻŧāĻžāϰāĻā§āϞāĻŋāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤ āĻāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻāύā§āĻā§āϰāĻžāĻā§āĻā§āϰ āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻž āĻāĻŦāĻ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻŦāĻžāĻĄāĻŧāĻžāϤ⧠āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻā§āĻŽāĻŋāĻāĻž āĻĒāĻžāϞāύ āĻāϰā§āĨ¤
Please Login to comment