ERC-20 Standard Token এর ধারণা

Tokens এবং ERC Standards (টোকেন এবং ERC স্ট্যান্ডার্ডস) - সলিডিটি (Solidity) - Computer Programming

431

ERC-20 হলো Ethereum ব্লকচেইনে একটি টোকেন স্ট্যান্ডার্ড, যা ডিজিটাল অ্যাসেট বা টোকেন তৈরির জন্য একটি নির্দিষ্ট নিয়মাবলি বা প্রোটোকল প্রদান করে। এটি Ethereum ব্লকচেইনে স্মার্ট কন্ট্রাক্টের মাধ্যমে টোকেন তৈরি এবং পরিচালনা করার জন্য ব্যবহৃত হয়। ERC-20 স্ট্যান্ডার্ড অনুযায়ী তৈরি টোকেনগুলো ব্লকচেইনে সহজেই একে অপরের মধ্যে ট্রেড করা, স্টোর করা এবং প্রেরণ করা যায়। এটি একটি অতি পরিচিত এবং widely adopted স্ট্যান্ডার্ড, যা ডিজিটাল মুদ্রা, ক্রিপ্টোকারেন্সি, এবং অন্যান্য টোকেনের জন্য ব্যবহৃত হয়।

ERC-20 এর মূল ধারণা

ERC-20 হলো Ethereum Request for Comments 20 এর সংক্ষিপ্ত রূপ, যা 2015 সালে Fabian Vogelsteller এবং Vitalik Buterin দ্বারা প্রস্তাবিত হয়েছিল। এটি Ethereum ব্লকচেইনে একটি ইউনিফর্ম টোকেন ইন্টারফেস তৈরি করে, যা ডেভেলপারদের জন্য একটি নির্দিষ্ট নিয়মাবলি দিয়ে টোকেন তৈরি এবং ব্যবহার সহজ করে দেয়। ERC-20 স্ট্যান্ডার্ড একটি টোকেনের জন্য বেশ কিছু প্রয়োজনীয় ফাংশন এবং ইভেন্ট ডিফাইন করে, যাতে এটি ব্লকচেইনে অন্যান্য কন্ট্রাক্ট এবং অ্যাপ্লিকেশনগুলির সাথে সঠিকভাবে কাজ করতে পারে।

ERC-20 স্ট্যান্ডার্ডের মৌলিক ফাংশনসমূহ

ERC-20 স্ট্যান্ডার্ডের আওতায় আসা একটি টোকেনকে সর্বনিম্ন পাঁচটি গুরুত্বপূর্ণ ফাংশন প্রদান করতে হয়:

  1. totalSupply()
    • এটি টোকেনের মোট সরবরাহ (total supply) ফেরত দেয়। অর্থাৎ, কত মোট টোকেন তৈরি করা হয়েছে।
  2. balanceOf(address account)
    • এটি একটি নির্দিষ্ট ঠিকানার টোকেন ব্যালেন্স ফেরত দেয়।
  3. transfer(address recipient, uint amount)
    • এটি টোকেনের একটি নির্দিষ্ট পরিমাণ একটি ঠিকানা থেকে অন্য ঠিকানায় স্থানান্তর করতে ব্যবহৃত হয়।
  4. allowance(address owner, address spender)
    • এটি মালিকের পক্ষ থেকে কোন স্পেন্ডার কত টোকেন খরচ করার অনুমতি পেয়েছে, তা নির্ধারণ করে।
  5. approve(address spender, uint amount)
    • এটি মালিকের পক্ষ থেকে কোনো স্পেন্ডারকে একটি নির্দিষ্ট পরিমাণ টোকেন খরচ করার অনুমতি দেয়।
  6. transferFrom(address sender, address recipient, uint amount)
    • এটি একটি নির্দিষ্ট পরিমাণ টোকেন এক ঠিকানা থেকে অন্য ঠিকানায় স্থানান্তর করতে ব্যবহৃত হয়, যখন স্পেন্ডারের কাছে পূর্বে অনুমতি থাকে।

ERC-20 স্ট্যান্ডার্ডের ইভেন্টসমূহ

ERC-20 স্ট্যান্ডার্ডে দুটি প্রধান ইভেন্ট রয়েছে:

  1. Transfer(address indexed from, address indexed to, uint value)
    • যখনই টোকেন স্থানান্তরিত হয়, এই ইভেন্টটি ট্রিগার হয়।
    • এটি ব্লকচেইনে টোকেন ট্রান্সফারের একটি লগ হিসেবে সংরক্ষিত হয়, যা ট্রানজেকশন ট্র্যাক করতে সাহায্য করে।
  2. Approval(address indexed owner, address indexed spender, uint value)
    • এটি তখন ট্রিগার হয়, যখন মালিক কোন স্পেন্ডারকে নির্দিষ্ট পরিমাণ টোকেন খরচ করার অনুমতি দেয়।

ERC-20 স্ট্যান্ডার্ডের সুবিধাসমূহ

  1. বিভিন্ন কন্ট্রাক্টের মধ্যে টোকেন সহজে ট্রেড এবং এক্সচেঞ্জ করা যায়: ERC-20 স্ট্যান্ডার্ডের কারণে টোকেনগুলো বিভিন্ন প্ল্যাটফর্মে এবং ড্যাপস (DApps) মধ্যে একে অপরের সাথে ইন্টারঅ্যাক্ট করতে সক্ষম হয়।
  2. টোকেনের জন্য একটি সুশৃঙ্খল নিয়মাবলি: ডেভেলপাররা ERC-20 স্ট্যান্ডার্ড অনুসরণ করে একটি নির্দিষ্ট ফাংশন এবং ইভেন্ট কাঠামো পায়, যা টোকেনের কার্যকারিতা এবং ট্রানজেকশন প্রসেসকে সহজ করে।
  3. ব্যবহারকারী এবং ডেভেলপারদের জন্য সহজ ইন্টিগ্রেশন: ERC-20 টোকেনগুলো বিভিন্ন ওয়ালেট, এক্সচেঞ্জ এবং স্মার্ট কন্ট্রাক্টের মাধ্যমে সহজে ব্যবহার করা যায়, যা ইন্টিগ্রেশন প্রক্রিয়াকে দ্রুত এবং সোজা করে তোলে।
  4. ডিজিটাল অ্যাসেটগুলির স্ট্যান্ডার্ডাইজেশন: এটি ক্রিপ্টোকারেন্সি এবং অন্যান্য ডিজিটাল অ্যাসেটগুলির জন্য একটি প্রচলিত স্ট্যান্ডার্ড হিসাবে কাজ করে, যা ব্লকচেইনে একাধিক অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।

ERC-20 স্ট্যান্ডার্ডের একটি উদাহরণ

এখানে একটি ERC-20 টোকেনের উদাহরণ দেওয়া হলো, যা এক কন্ট্রাক্টে টোকেন তৈরি এবং ব্যবহারের জন্য মৌলিক ফাংশনগুলি ধারণ করে:

pragma solidity ^0.8.0;

contract MyToken {
    string public name = "MyToken";
    string public symbol = "MTK";
    uint8 public decimals = 18;
    uint public totalSupply;

    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;

    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);

    constructor(uint _initialSupply) {
        totalSupply = _initialSupply * 10 ** uint(decimals);
        balanceOf[msg.sender] = totalSupply;
    }

    function transfer(address _to, uint _value) public returns (bool success) {
        require(_to != address(0), "Invalid address");
        require(balanceOf[msg.sender] >= _value, "Insufficient balance");

        balanceOf[msg.sender] -= _value;
        balanceOf[_to] += _value;

        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    function approve(address _spender, uint _value) public returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function transferFrom(address _from, address _to, uint _value) public returns (bool success) {
        require(_from != address(0), "Invalid address");
        require(_to != address(0), "Invalid address");
        require(balanceOf[_from] >= _value, "Insufficient balance");
        require(allowance[_from][msg.sender] >= _value, "Allowance exceeded");

        balanceOf[_from] -= _value;
        balanceOf[_to] += _value;
        allowance[_from][msg.sender] -= _value;

        emit Transfer(_from, _to, _value);
        return true;
    }
}

ব্যাখ্যা:

  • name, symbol, decimals: এই ফাংশনগুলো টোকেনের নাম, প্রতীক এবং দশমিক স্থান সংখ্যা নির্ধারণ করে।
  • totalSupply: এটি টোকেনের মোট সরবরাহ প্রদর্শন করে।
  • transfer: এটি টোকেন স্থানান্তরের জন্য ব্যবহৃত হয়।
  • approve: এটি স্পেন্ডারের কাছে টোকেন খরচ করার অনুমতি দেয়।
  • transferFrom: এটি একজন স্পেন্ডারের মাধ্যমে টোকেন স্থানান্তরের জন্য ব্যবহৃত হয়।
  • Transfer এবং Approval ইভেন্ট দুটি ব্লকচেইনে ট্রানজেকশন লগ হিসেবে সংরক্ষিত হয়।

সারাংশ

ERC-20 স্ট্যান্ডার্ড হলো একটি Ethereum ব্লকচেইন টোকেন স্ট্যান্ডার্ড যা ডিজিটাল অ্যাসেট বা টোকেন তৈরির জন্য একটি সাধারণ নিয়মাবলি এবং ফাংশন প্রদান করে। এটি টোকেনের ট্রান্সফার, ব্যালেন্স এবং অনুমতি প্রদানসহ বিভিন্ন কার্যক্রম সহজে এবং কার্যকরভাবে করতে সহায়তা করে। ERC-20 স্ট্যান্ডার্ডের মাধ্যমে টোকেনগুলির মধ্যে সহজে ট্রেড এবং এক্সচেঞ্জ করা সম্ভব হয়, এবং এটি ক্রিপ্টোকারেন্সি এবং অন্যান্য ডিজিটাল অ্যাসেটের জন্য একটি জনপ্রিয় ও widely adopted স্ট্যান্ডার্ড।

Content added By
Promotion

Are you sure to start over?

Loading...