افزونه پارسی دیت را نصب کنید Tuesday, 29 October , 2024
4

چگونه می توان قرارداد هوشمند را در EtraScan تایید کرد؟

  • کد خبر : 18837
چگونه می توان قرارداد هوشمند را در EtraScan تایید کرد؟

یکی از زیبایی های نسل جدید اینترنت که وب 3 یا نسل سوم وب نام دارد این است که هرکسی می تواند با قراردادهای هوشمند پیاده سازی شده در بلاک چین کار کند. قراردادهای هوشمند برنامه‌های رایانه‌ای هستند که روی بلاک چین اجرا می‌شوند و کد منبع آنها برای همه قابل مشاهده و تأیید است. […]

یکی از زیبایی های نسل جدید اینترنت که وب 3 یا نسل سوم وب نام دارد این است که هرکسی می تواند با قراردادهای هوشمند پیاده سازی شده در بلاک چین کار کند. قراردادهای هوشمند برنامه‌های رایانه‌ای هستند که روی بلاک چین اجرا می‌شوند و کد منبع آنها برای همه قابل مشاهده و تأیید است. این بدان معناست که هر کسی می تواند بدون رابط وب با آنها تعامل داشته باشد. این کار با اجرای یک کلاینت بلاک چین و انجام تراکنش ها از طریق رابط خط فرمان (CLI) انجام می شود. در این مقاله از Blockchain Homeland، چگونه تایید قرارداد هوشمند در سایت Etherscan ما به شما آموزش خواهیم داد.

آموزش تایید قرارداد هوشمند در Etherscan

منبع: wiki.rugdoc.io

سایت Etherscan یک بلوک کاوشگر برای شبکه های بلاک چین مانند اتریوم، Polygon، Arbiterum، Optimism و غیره است و در واقع EtherScan یک واسطه بین برنامه های وب یا موبایل و یک CLI برای تعامل با قراردادهای هوشمند است. ما فقط می توانیم با قراردادهای هوشمند تأیید شده در EtherScan تعامل داشته باشیم. در این آموزش نحوه تایید و کار با قراردادهای هوشمند در اتر اسکن را خواهید آموخت.

500 میلیون رایگان Baby Dodge
فقط با ثبت نام در Bitland Exchange 500 میلیون جایزه سگ بچه دریافت کنید!

ثبت نام

تایید تک فایل Solidity

برای شروع فرآیند تایید، ابتدا باید قرارداد هوشمند را در سایت پیاده سازی کنید Remix IDE برو یک سند یا فایل جدید “Counter.sol” ایجاد کنید. سپس کد زیر را در آن قرار دهید:

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

contract Counter {
    uint256 internal counter;
    function increment() external {
        unchecked {
            ++counter;
        }
    }

    function getCurrent() external view returns(uint256) {
        return counter;
    }
}

قبل از اجرای قرارداد باید به 2 مورد توجه کنید: نسخه کامپایلر Solidity که برای تدوین این قرارداد استفاده شده و لایسنس قرارداد که در بالای فایل به صورت “SPDX-License-Identifier” مشخص شده است. .

در فایل کد مشخص کرده ایم که قرارداد با کامپایلرهای نسخه 0.8.0 تا 0.9.0 قابل کامپایل است که شامل نسخه های 0.8.0، 0.8.1، 0.8.2 تا … است.

به صفحه Solidity Compiler بروید و نسخه کامپایلر مورد نظر (نسخه 0.8) را انتخاب کنید. سپس بر روی “Compile Counter.sol” کلیک کنید. ما از نسخه 0.8.7 به عنوان مثال استفاده کرده ایم.

از کامپایلر Remix برای قرارداد استفاده کنید
منبع: blog.chain.link

پس از تکمیل کامپایل، به صفحه “استقرار و اجرای تراکنش ها” بروید. از قسمت “محیط” گزینه “Injected Provider – Metamask” را انتخاب کنید. با انتخاب این گزینه پیامی مبنی بر اتصال کیف پول متامسک به وب سایت Remix IDE نمایش داده می شود. پس از اتصال کیف پول، شبکه مورد نظر را برای اجرای قرارداد انتخاب کنید.

در این مقاله قرارداد را در شبکه Rinkeby اجرا می کنیم در نتیجه باید گزینه “Rinkeby Test Network” را در داخل کیف پول انتخاب کنیم. اکنون برای اجرای قرارداد به مقداری اتر آزمایشی Rinkeby نیاز داریم. شما می توانید این اترهای رایگان را از اینجا دریافت کنید لینک سریع چین و با اتصال کیف پول خود به دست آورید. مطمئن شوید که شبکه انتخاب شده در سمت راست و بالا صفحه نمایش Ethereum Rinkeby است.

به Injected-Provider تغییر دهید
منبع: blog.chain.link

در نهایت بر روی گزینه نارنجی “Deploy” کلیک کرده و تراکنش را از متامسک امضا کنید. شما باید حدود 15 ثانیه صبر کنید تا تراکنش تایید شود. پس از تایید، می توانید از طریق رابط کاربری Remix IDE با قرارداد هوشمند خود کار کنید. اما هدف ما این است که قرارداد برای همه قابل استفاده باشد.

اگر قرارداد خود را در اتر اسکن پیدا کنیم (با رهگیری هش آخرین تراکنش یا با وارد کردن آدرس قرارداد در کادر جستجوی اسکن اتر)، با کلیک بر روی تب Contract، مشاهده می کنیم که فقط بایت کد قرارداد قابل مشاهده است. به ما. . این بدان معناست که برای استفاده از این قرارداد هوشمند با اتر اسکن اکسپلورر، باید آن را “تأیید” کنیم.

تأیید قرارداد هوشمند در اسکن اتر
منبع: blog.chain.link

برای شروع فرآیند تایید قرارداد، روی متن آبی رنگ “تأیید و انتشار” که حاوی لینک است کلیک کنید. صفحه زیر باز خواهد شد:

تایید کد منبع قرارداد
منبع: blog.chain.link

در فیلد ورودی اول (در صورت عدم تکمیل خودکار)، آدرس قرارداد خود را وارد کنید. “Solidity (Single File)” را از منوی “Compiler Type” انتخاب کنید. اکنون منوی “نسخه کامپایلر” ظاهر می شود. در اینجا باید همان نسخه کامپایلری را انتخاب کنیم که قبل از پیاده سازی برای کامپایل قرارداد هوشمند استفاده می کردیم (در مثال مقاله از نسخه 0.8.7 استفاده شده است). حال، از منوی «نوع مجوز منبع باز»، مجوز فایل Solidity را که به عنوان «SPDX-License-Identifier» مشخص شده است، انتخاب کنید. مجوز پرونده ما MIT است. حالا روی Continue کلیک کنید و به صفحه بعد بروید.

کد استحکام قرارداد را وارد کنید
منبع: blog.chain.link

کد منبع قرارداد را در کادر قرار داده و پس از حل کپچا، روی گزینه آبی رنگ “تأیید و انتشار” کلیک کنید. اکنون باید یک تیک سبز رنگ در تب Contract ظاهر شود. این بدان معناست که قرارداد شما تأیید شده است و اکنون می توانید با آن تعامل داشته باشید.

کد منبع تایید شده قرارداد
منبع: blog.chain.link

اگر بر روی گزینه “خواندن قرارداد” کلیک کنید، می توانید از تابع “getCurrent” استفاده کنید و مقدار فعلی متغیر count را مشاهده کنید که به طور پیش فرض صفر است.

تابع getCurrent را اجرا کنید
منبع: blog.chain.link

با کلیک بر روی “Write Contract” می توانید کیف پول خود را به Etherscan متصل کرده و با عملکرد “افزایش” کار کنید. پیامی برای امضای تراکنش در Metamask به شما نشان داده می شود (توجه داشته باشید که شبکه کیف پول باید Rinkeby باشد). پس از ثبت موفقیت آمیز تراکنش در یک بلوک، اگر به قسمت «خواندن قرارداد» بروید و دوباره تابع «خواندن قرارداد» را اجرا کنید، می بینید که مقدار «مشتری» به 1 تغییر کرده است.

تابع افزایش را بنویسید
منبع: blog.chain.link

با استفاده از افزونه Flattener چندین فایل solidity را تأیید کنید

تا اینجا چگونه تأیید قرارداد هوشمند در اسکن اتر ما یاد گرفتیم مثالی که نشان دادیم در مورد یک فایل solidity بود. اما این همیشه صدق نمیکند. در واقع، قرارداد هوشمند شما احتمالاً از سایر قراردادها، رابط ها و پایگاه های داده استفاده می کند.

به عنوان مثال، قرارداد مصرف کننده قیمت خوراک زنجیره ای را در نظر بگیرید. یک فایل Solidity جدید ایجاد کنید و نام آن را “PriceFeedConsumer.sol” بگذارید. کد زیر را در آن قرار دهید:

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.7;
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";

contract PriceConsumerV3 {
    AggregatorV3Interface internal priceFeed;
    /**
     * Network: Rinkeby
     * Aggregator: ETH/USD
     * Address: 0x8A753747A1Fa494EC906cE90E9f37563A8AF630e
     */

    constructor() {
        priceFeed = 
AggregatorV3Interface(0x8A753747A1Fa494EC906cE90E9f37563A8AF630e);
    }

    /**
     * Returns the latest price
     */

    function getLatestPrice() public view returns (int) {
        (
            /*uint80 roundID*/,
            int price,
            /*uint startedAt*/,
            /*uint timeStamp*/,
            /*uint80 answeredInRound*/

        ) = priceFeed.latestRoundData();
        return price;
    }
}

معنی خط “وارد کردن “@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol”؛” این به این دلیل است که ما رابط solidity را از یک فایل دیگر اضافه کرده ایم. رابط ها قراردادهای هوشمند نیستند. آنها برای فهرست کردن روش های مشابه بدون اجرای بدنه اصلی تابع استفاده می شوند. رابط ها با کلمه کلیدی “interface” مشخص می شوند. رابط ها یا توسط قراردادهای هوشمند استفاده می شوند و روش های ذکر شده را پیاده سازی می کنند یا برای پیاده سازی روش های قراردادهای دیگر برای اجرای توابع فهرست شده استفاده می شوند. در مثال بالا، از دومین کاربرد اینترفیس ها استفاده کردیم، یعنی از تابع “latestRoundData” در قرارداد جمع کننده لینک زنجیره ای استفاده کردیم.

اکنون قرارداد را با Solidity Compiler نسخه 0.8.7 اجرا کنید. مجوز همان MIT است که در خط اول قرارداد هوشمند دیده می شود.

پس از اجرا، به اکسپلورر فایل Remix IDE بروید. «PriceFeedConsumer.sol» را پیدا کنید و روی آن کلیک راست کنید، سپس «Flatten» را بزنید.

انتخاب را در ریمیکس صاف کنید
منبع: blog.chain.link

این دستور یک فایل جدید با نام “PriceFeedConsumer_flat.sol” ایجاد می کند و همه واردات را با کد منبع قراردادها، رابط ها و پایگاه های داده وارد شده جایگزین می کند.

افزونه Flattener را فعال کنید
منبع: blog.chain.link

توجه داشته باشید که افزونه “Flattener” به طور خودکار در Remix IDE فعال می شود. راه دوم برای صاف کردن قرارداد این است که این افزونه را به صورت دستی فعال کنید. به قسمت “Extensions” در سمت چپ پایین صفحه (بالای گزینه “Settings”) بروید و روی گزینه سبز رنگ “Activate” در کنار پسوند “Flattener” کلیک کنید تا فعال شود.

افزونه Flattener را فعال کنید
منبع: blog.chain.link

اکنون به برگه پلاگین Flattener بروید و روی “Flatten PriceFeedConsumer.sol” کلیک کنید. این یک فایل جدید ایجاد نمی کند. در عوض، کد منبع مسطح شده را در کلیپ بورد کپی می کند تا بتوانید آن را در صفحه تایید Etherscan قرار دهید. می توانید هر یک از این دو روش صاف کردن را به دلخواه انجام دهید.

اکنون به صفحه تایید Etherscan رفته و همانطور که در قسمت قبل گفته شد گزینه های زیر را انتخاب کنید:

  • نوع کامپایلر: استحکام (تک فایل)
  • نسخه کامپایلر: v0.8.7+commit.e28d00a7
  • نوع مجوز منبع باز: مجوز MIT (MIT)

در نهایت بر روی “ادامه” کلیک کنید.

در صفحه بعد، بسته به روشی که برای صاف کردن استفاده کردید، محتوای کپی شده را از فایل “PriceFeedConsumer_flat.sol” یا از کلیپ بورد در کادری که روی آن نوشته شده است “کد قرارداد Solidity را در زیر وارد کنید” قرار دهید. در نهایت، کپچا را حل کنید و بر روی “Verify and Publish” کلیک کنید.

تایید چندین فایل solidity با استفاده از افزونه Etherscan

روش دیگر برای تأیید قراردادهایی که حاوی چندین فایل solidity هستند، استفاده از افزونه «Etherscan – Contract Verification» در سایت Remix IDE است.

ما از همان قرارداد “PriceFeedConsumer.sol” که در بخش قبل نوشتیم استفاده خواهیم کرد. قرارداد را دوباره اجرا کنید. سپس از تب Extensions افزونه “Etherscan – Contract Verification” را فعال کنید.

افزونه Etherscan را فعال کنید
منبع: blog.chain.link

حالا به سایت Etherscan رفته و ثبت نام کنید. در تنظیمات حساب خود، بخش «کلیدهای API» را پیدا کنید. با استفاده از Free Plan یک کلید API ایجاد کنید.

به Remix IDE برگردید و روی تب “Etherscan – Contract Verification” کلیک کنید. کلید API خود را در آنجا قرار دهید و روی “ذخیره کلید API” کلیک کنید.

کلید API را ذخیره کنید
منبع: blog.chain.link

قراردادی را که می خواهید تأیید کنید انتخاب کنید و آدرس قرارداد را وارد کنید. بر روی “تأیید قرارداد” کلیک کنید. تمام، قرارداد شما در EtherScan تایید شده است.

تایید قرارداد با استفاده از افزونه Etherscan
منبع: blog.chain.link

نتیجه

EtherScan یک بلوک کاوشگر است که به کاربران اجازه می دهد با قراردادهای هوشمند تعامل داشته باشند و کار کنند. اما برای استفاده از قراردادهای هوشمند در این سایت، باید قراردادها تایید شوند. در این مقاله چگونه تأیید قرارداد هوشمند در اسکن اتر استفاده از سایت Remix IDE و با چندین روش مختلف را به شما آموزش داده ایم. امیدواریم این آموزش برای شما مفید بوده باشد. لطفا نظرات و نظرات خود را در رابطه با این مقاله آموزشی با ما در میان بگذارید.

خبر فوق به نقل از رسانه اسمارتک نیوز در وبسایت اسمارتک نوشته شده است در تاریخ 2023-04-22 15:02:00

لینک کوتاه : https://iran360news.com/?p=18837

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : 0
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.