মডিফায়ার হল সলিডিটিতে একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ফাংশনের আচরণ পরিবর্তন করতে এবং বিশেষ শর্তে তাদের কার্যকারিতা নিয়ন্ত্রণ করতে ব্যবহৃত হয়। নিচে বিভিন্ন ধরনের মডিফায়ারের উদাহরণ দেওয়া হল।
১. মালিকানা যাচাই করার জন্য মডিফায়ার
এই মডিফায়ারটি চুক্তির মালিকের অনুমতি ছাড়া কোনও ফাংশনে প্রবেশাধিকার প্রতিরোধ করে।
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 {
// কার্যকরী কোড
}
}
উপসংহার
সলিডিটিতে মডিফায়ারগুলি ডেভেলপারদের জন্য একটি শক্তিশালী টুল, যা ফাংশনের নিরাপত্তা এবং নিয়ন্ত্রণ নিশ্চিত করে। উদাহরণগুলির মাধ্যমে দেখা গেছে যে, কিভাবে বিভিন্ন শর্ত এবং নিয়মাবলী মডিফায়ারগুলির মাধ্যমে প্রয়োগ করা যায়। এই বৈশিষ্ট্যগুলি স্মার্ট কন্ট্রাক্টের কার্যকারিতা এবং নিরাপত্তা বাড়াতে গুরুত্বপূর্ণ ভূমিকা পালন করে।
12 views
Please Login to comment