متامسک یکی از محبوب‌ ترین کیف پول‌های ارز دیجیتال است که به کاربران این امکان را می‌دهد تا به راحتی به شبکه‌های بلاکچین مانند اتریوم متصل شوند. در این مقاله، به بررسی نحوه اتصال متامسک به قرارداد هوشمند نوشته شده با سالیدیتی می‌پردازیم. این راهنما به شما کمک خواهد کرد تا بتوانید از قابلیت‌های قراردادهای هوشمند خود به راحتی استفاده کنید.

مرحله 1: نصب متامسک

ابتدا باید افزونه متامسک را روی مرورگر خود نصب کنید.

  1. به وب‌سایت Metamask بروید.
  2. افزونه متامسک را برای مرورگر خود دانلود و نصب کنید.
  3. پس از نصب، یک کیف پول جدید بسازید یا کیف پول موجود خود را بازیابی کنید.

مرحله 2: ساخت قرارداد هوشمند با سالیدیتی

برای این منظور، ابتدا باید یک قرارداد هوشمند ساده بنویسید. در اینجا یک مثال از یک قرارداد ساده داریم:

// SPDX-License-Identifier: MIT
pragma solidity ^.8.;

contract SimpleStorage {
    uint256 number;

    function set(uint256 _number) public {
        number = _number;
    }

    function get() public view returns (uint256) {
        return number;
    }
}

این قرارداد را می‌توانید در محیطی مانند Remix IDE کامپایل و منتشر کنید.

آموزش سالیدیتی

مرحله 3: اتصال متامسک به شبکه

برای این که متامسک بتواند به قرارداد هوشمند شما متصل شود، باید شبکه مناسبی را انتخاب کنید. برای این کار:

  1. بر روی آیکون متامسک در مرورگر خود کلیک کنید.
  2. شبکه مورد نظر خود (مثلاً Ropsten یا Mainnet) را انتخاب کنید.
  3. در صورت نیاز، مقداری اتر برای کار کردن با شبکه به متامسک اضافه کنید.

مرحله 4: استفاده از Web3.js برای اتصال به قرارداد

حالا می‌خواهیم از Web3.js برای اتصال به قرارداد هوشمند استفاده کنیم. ابتدا Web3.js را به پروژه خود اضافه کنید:

<script src="https://cdn.jsdelivr.net/npm/web3/dist/web3.min.js"></script>

حالا بخشی از کد JavaScript شما می‌تواند به شکل زیر باشد:

// بررسی اینکه آیا متامسک موجود است
if (typeof window.ethereum !== 'undefined') {
    // ایجاد نمونه Web3
    const web3 = new Web3(window.ethereum);
    
    // درخواست اتصال به متامسک
    window.ethereum.request({ method: 'eth_requestAccounts' }).then(() => {
        const contractAddress = 'آدرس_قرارداد_شما';
        const contractABI = [/* ABI قرارداد شما */];
        const contract = new web3.eth.Contract(contractABI, contractAddress);

        // فراخوانی تابع قرارداد
        contract.methods.get().call().then(result => {
            console.log('عدد ذخیره شده:', result);
        });
    });
}

نتیجه‌ گیری

با دنبال کردن مراحل فوق، شما می‌توانید به راحتی اتصال متامسک به قرارداد هوشمند را انجام دهید. این اتصال اجازه می‌دهد تا با استفاده از رابط کاربری متامسک به حداکثر کارایی و امنیت در تعامل با قراردادهای خود برسید.