Solidity তে কন্ট্র্যাক্ট ডিক্লারেশন

Smart Contracts এর ধারণা (Concept of Smart Contracts) - সলিডিটি (Solidity) - Computer Programming

251

Solidity তে কন্ট্র্যাক্ট হল একটি বিশেষ ধরনের প্রোগ্রাম যা Ethereum ব্লকচেইনে স্মার্ট কন্ট্রাক্ট হিসেবে কাজ করে। কন্ট্র্যাক্ট ডিক্লারেশন এর মাধ্যমে Solidity তে একটি স্মার্ট কন্ট্রাক্ট তৈরি করা হয়। কন্ট্র্যাক্টের মধ্যে লজিক এবং কার্যক্রম সংরক্ষিত থাকে, যা নির্দিষ্ট শর্ত পূর্ণ হলে স্বয়ংক্রিয়ভাবে কার্যকর হয়। এই কন্ট্র্যাক্টে বিভিন্ন ফাংশন, ভেরিয়েবল, এবং কনস্ট্রাক্টর (constructor) থাকতে পারে।

এখানে, Solidity তে কন্ট্র্যাক্ট ডিক্লারেশন কিভাবে করা হয় তা বিস্তারিত আলোচনা করা হলো।


1. কন্ট্র্যাক্ট ডিক্লারেশন

Solidity তে কন্ট্র্যাক্ট ডিক্লারেশন করা হয় contract কিওয়ার্ড দিয়ে, এবং কন্ট্র্যাক্টের ভিতরে কোডের ব্লক থাকে। কন্ট্র্যাক্ট ডিক্লারেশন শুরু হতে হয় contract কিওয়ার্ড দিয়ে, এরপর কন্ট্র্যাক্টের নাম দেওয়া হয় এবং {} ব্রেসের মধ্যে কন্ট্র্যাক্টের কার্যক্রম থাকে।

গঠন:

pragma solidity ^0.8.0;

contract ContractName {
    // কন্ট্র্যাক্টের ভেরিয়েবল এবং ফাংশনগুলো এখানে থাকবে
}

এখানে, ContractName হল কন্ট্র্যাক্টের নাম, এবং এর ভিতরে বিভিন্ন ফাংশন, ভেরিয়েবল এবং কনস্ট্রাক্টর ডিফাইন করা হয়।


2. কন্ট্র্যাক্টের ভেরিয়েবল (State Variables)

কন্ট্র্যাক্টের ভিতরে বিভিন্ন ধরনের ভেরিয়েবল ডিফাইন করা হয়, যেগুলি ব্লকচেইনে স্টোর হয়। এই ভেরিয়েবলগুলিকে স্টেট ভেরিয়েবল বলা হয়। স্টেট ভেরিয়েবলগুলি কন্ট্র্যাক্টের অভ্যন্তরে ডেটা সংরক্ষণ করার জন্য ব্যবহৃত হয়, এবং ব্লকচেইনে একে অপরের মধ্যে শেয়ার করা হয়।

উদাহরণ:

pragma solidity ^0.8.0;

contract MyContract {
    uint256 public balance;  // স্টেট ভেরিয়েবল

    function setBalance(uint256 _balance) public {
        balance = _balance;
    }
}

এখানে, balance একটি স্টেট ভেরিয়েবল যা uint256 ধরনের এবং এটি ব্লকচেইনে সংরক্ষিত থাকে। setBalance ফাংশনটি এই ভেরিয়েবলে মান সেট করে।


3. কনস্ট্রাক্টর (Constructor)

কনস্ট্রাক্টর একটি বিশেষ ধরনের ফাংশন যা কন্ট্র্যাক্ট ডিপ্লয় হওয়ার সময় একবার রান হয়। কনস্ট্রাক্টরের মাধ্যমে কন্ট্র্যাক্টের প্রাথমিক মান সেট করা হয়।

গঠন:

constructor(parameters) public {
    // কনস্ট্রাক্টরের কোড
}

উদাহরণ:

pragma solidity ^0.8.0;

contract MyContract {
    uint256 public balance;

    // কনস্ট্রাক্টর
    constructor(uint256 _balance) {
        balance = _balance;  // কনস্ট্রাক্টরের মাধ্যমে প্রাথমিক মান সেট
    }
}

এখানে, কনস্ট্রাক্টরটি _balance প্যারামিটার নেয় এবং balance ভেরিয়েবলে প্রাথমিক মান সেট করে।


4. ফাংশন (Functions)

Solidity তে কন্ট্র্যাক্টে বিভিন্ন ফাংশন থাকে, যা কন্ট্র্যাক্টের কার্যক্রম পরিচালনা করে। ফাংশনগুলি কোডের অংশ যেগুলি একটি নির্দিষ্ট কাজ সম্পাদন করে এবং তাদের প্যারামিটার থাকতে পারে অথবা রিটার্ন ভ্যালু থাকতে পারে।

ফাংশন ডিক্লারেশন গঠন:

function functionName(parameters) public returns (type) {
    // কোড
}

উদাহরণ:

pragma solidity ^0.8.0;

contract MyContract {
    uint256 public balance;

    function setBalance(uint256 _balance) public {
        balance = _balance;
    }

    function getBalance() public view returns (uint256) {
        return balance;
    }
}

এখানে, setBalance এবং getBalance দুটি ফাংশন ডিফাইন করা হয়েছে। setBalance একটি মান সেট করে, এবং getBalance ফাংশনটি সেই মানটি রিটার্ন করে।


5. Access Modifiers (ভিজিবিলিটি)

Solidity তে ফাংশন এবং ভেরিয়েবলের ভিজিবিলিটি নির্ধারণ করতে public, private, internal, external কিওয়ার্ড ব্যবহৃত হয়। এগুলি কন্ট্র্যাক্টের বাহির থেকে ফাংশন বা ভেরিয়েবলকে অ্যাক্সেস করার ক্ষমতা নিয়ন্ত্রণ করে।

  • public: কন্ট্র্যাক্টের বাইরে থেকেও অ্যাক্সেস করা যাবে।
  • private: কেবলমাত্র কন্ট্র্যাক্টের ভিতরে অ্যাক্সেসযোগ্য।
  • internal: কন্ট্র্যাক্ট এবং তার সাব-কন্ট্র্যাক্ট থেকে অ্যাক্সেসযোগ্য।
  • external: কেবল বাইরের কন্ট্র্যাক্ট বা ব্যবহারকারীরা এক্সেস করতে পারবে।

উদাহরণ:

pragma solidity ^0.8.0;

contract MyContract {
    uint256 private balance; // private ভেরিয়েবল
    address public owner;    // public ভেরিয়েবল

    // public ফাংশন
    function setBalance(uint256 _balance) public {
        balance = _balance;
    }

    // private ফাংশন
    function getBalance() private view returns (uint256) {
        return balance;
    }
}

এখানে, balance ভেরিয়েবলটি প্রাইভেট, তাই এটি কেবল কন্ট্র্যাক্টের ভিতরে অ্যাক্সেস করা যাবে। owner ভেরিয়েবলটি পাবলিক, তাই এটি বাইরে থেকেও অ্যাক্সেস করা যাবে।


সারাংশ

Solidity তে কন্ট্র্যাক্ট ডিক্লারেশন একটি গুরুত্বপূর্ণ প্রক্রিয়া, যেখানে কন্ট্র্যাক্টের নাম, ভেরিয়েবল, ফাংশন এবং কনস্ট্রাক্টর ডিফাইন করা হয়। কন্ট্র্যাক্টে স্টেট ভেরিয়েবল, ফাংশন এবং কনস্ট্রাক্টরের মাধ্যমে বিভিন্ন কাজ করা যায় এবং এই কন্ট্র্যাক্ট ব্লকচেইনে ডিপ্লয় করার পর তা একাধিক ব্যবহারকারী দ্বারা ইন্টারঅ্যাক্ট করা যেতে পারে। Solidity তে কন্ট্র্যাক্টের ভিজিবিলিটি ব্যবস্থার মাধ্যমে ফাংশন এবং ভেরিয়েবলগুলোর অ্যাক্সেস নিয়ন্ত্রণ করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...