یکی از زیبایی های نسل جدید اینترنت که وب 3 یا نسل سوم وب نام دارد این است که هرکسی می تواند با قراردادهای هوشمند پیاده سازی شده در بلاک چین کار کند. قراردادهای هوشمند برنامههای رایانهای هستند که روی بلاک چین اجرا میشوند و کد منبع آنها برای همه قابل مشاهده و تأیید است. این بدان معناست که هر کسی می تواند بدون رابط وب با آنها تعامل داشته باشد. این کار با اجرای یک کلاینت بلاک چین و انجام تراکنش ها از طریق رابط خط فرمان (CLI) انجام می شود. در این مقاله از Blockchain Homeland، چگونه تایید قرارداد هوشمند در سایت Etherscan ما به شما آموزش خواهیم داد.
آموزش تایید قرارداد هوشمند در Etherscan
سایت Etherscan یک بلوک کاوشگر برای شبکه های بلاک چین مانند اتریوم، Polygon، Arbiterum، Optimism و غیره است و در واقع EtherScan یک واسطه بین برنامه های وب یا موبایل و یک CLI برای تعامل با قراردادهای هوشمند است. ما فقط می توانیم با قراردادهای هوشمند تأیید شده در EtherScan تعامل داشته باشیم. در این آموزش نحوه تایید و کار با قراردادهای هوشمند در اتر اسکن را خواهید آموخت.
تایید تک فایل 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 به عنوان مثال استفاده کرده ایم.
پس از تکمیل کامپایل، به صفحه “استقرار و اجرای تراکنش ها” بروید. از قسمت “محیط” گزینه “Injected Provider – Metamask” را انتخاب کنید. با انتخاب این گزینه پیامی مبنی بر اتصال کیف پول متامسک به وب سایت Remix IDE نمایش داده می شود. پس از اتصال کیف پول، شبکه مورد نظر را برای اجرای قرارداد انتخاب کنید.
در این مقاله قرارداد را در شبکه Rinkeby اجرا می کنیم در نتیجه باید گزینه “Rinkeby Test Network” را در داخل کیف پول انتخاب کنیم. اکنون برای اجرای قرارداد به مقداری اتر آزمایشی Rinkeby نیاز داریم. شما می توانید این اترهای رایگان را از اینجا دریافت کنید لینک سریع چین و با اتصال کیف پول خود به دست آورید. مطمئن شوید که شبکه انتخاب شده در سمت راست و بالا صفحه نمایش Ethereum Rinkeby است.
در نهایت بر روی گزینه نارنجی “Deploy” کلیک کرده و تراکنش را از متامسک امضا کنید. شما باید حدود 15 ثانیه صبر کنید تا تراکنش تایید شود. پس از تایید، می توانید از طریق رابط کاربری Remix IDE با قرارداد هوشمند خود کار کنید. اما هدف ما این است که قرارداد برای همه قابل استفاده باشد.
اگر قرارداد خود را در اتر اسکن پیدا کنیم (با رهگیری هش آخرین تراکنش یا با وارد کردن آدرس قرارداد در کادر جستجوی اسکن اتر)، با کلیک بر روی تب Contract، مشاهده می کنیم که فقط بایت کد قرارداد قابل مشاهده است. به ما. . این بدان معناست که برای استفاده از این قرارداد هوشمند با اتر اسکن اکسپلورر، باید آن را “تأیید” کنیم.
برای شروع فرآیند تایید قرارداد، روی متن آبی رنگ “تأیید و انتشار” که حاوی لینک است کلیک کنید. صفحه زیر باز خواهد شد:
در فیلد ورودی اول (در صورت عدم تکمیل خودکار)، آدرس قرارداد خود را وارد کنید. “Solidity (Single File)” را از منوی “Compiler Type” انتخاب کنید. اکنون منوی “نسخه کامپایلر” ظاهر می شود. در اینجا باید همان نسخه کامپایلری را انتخاب کنیم که قبل از پیاده سازی برای کامپایل قرارداد هوشمند استفاده می کردیم (در مثال مقاله از نسخه 0.8.7 استفاده شده است). حال، از منوی «نوع مجوز منبع باز»، مجوز فایل Solidity را که به عنوان «SPDX-License-Identifier» مشخص شده است، انتخاب کنید. مجوز پرونده ما MIT است. حالا روی Continue کلیک کنید و به صفحه بعد بروید.
کد منبع قرارداد را در کادر قرار داده و پس از حل کپچا، روی گزینه آبی رنگ “تأیید و انتشار” کلیک کنید. اکنون باید یک تیک سبز رنگ در تب Contract ظاهر شود. این بدان معناست که قرارداد شما تأیید شده است و اکنون می توانید با آن تعامل داشته باشید.
اگر بر روی گزینه “خواندن قرارداد” کلیک کنید، می توانید از تابع “getCurrent” استفاده کنید و مقدار فعلی متغیر count را مشاهده کنید که به طور پیش فرض صفر است.
با کلیک بر روی “Write Contract” می توانید کیف پول خود را به Etherscan متصل کرده و با عملکرد “افزایش” کار کنید. پیامی برای امضای تراکنش در Metamask به شما نشان داده می شود (توجه داشته باشید که شبکه کیف پول باید Rinkeby باشد). پس از ثبت موفقیت آمیز تراکنش در یک بلوک، اگر به قسمت «خواندن قرارداد» بروید و دوباره تابع «خواندن قرارداد» را اجرا کنید، می بینید که مقدار «مشتری» به 1 تغییر کرده است.
با استفاده از افزونه 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» را بزنید.
این دستور یک فایل جدید با نام “PriceFeedConsumer_flat.sol” ایجاد می کند و همه واردات را با کد منبع قراردادها، رابط ها و پایگاه های داده وارد شده جایگزین می کند.
توجه داشته باشید که افزونه “Flattener” به طور خودکار در Remix IDE فعال می شود. راه دوم برای صاف کردن قرارداد این است که این افزونه را به صورت دستی فعال کنید. به قسمت “Extensions” در سمت چپ پایین صفحه (بالای گزینه “Settings”) بروید و روی گزینه سبز رنگ “Activate” در کنار پسوند “Flattener” کلیک کنید تا فعال شود.
اکنون به برگه پلاگین 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 رفته و ثبت نام کنید. در تنظیمات حساب خود، بخش «کلیدهای API» را پیدا کنید. با استفاده از Free Plan یک کلید API ایجاد کنید.
به Remix IDE برگردید و روی تب “Etherscan – Contract Verification” کلیک کنید. کلید API خود را در آنجا قرار دهید و روی “ذخیره کلید API” کلیک کنید.
قراردادی را که می خواهید تأیید کنید انتخاب کنید و آدرس قرارداد را وارد کنید. بر روی “تأیید قرارداد” کلیک کنید. تمام، قرارداد شما در EtherScan تایید شده است.
نتیجه
EtherScan یک بلوک کاوشگر است که به کاربران اجازه می دهد با قراردادهای هوشمند تعامل داشته باشند و کار کنند. اما برای استفاده از قراردادهای هوشمند در این سایت، باید قراردادها تایید شوند. در این مقاله چگونه تأیید قرارداد هوشمند در اسکن اتر استفاده از سایت Remix IDE و با چندین روش مختلف را به شما آموزش داده ایم. امیدواریم این آموزش برای شما مفید بوده باشد. لطفا نظرات و نظرات خود را در رابطه با این مقاله آموزشی با ما در میان بگذارید.
خبر فوق به نقل از رسانه اسمارتک نیوز در وبسایت اسمارتک نوشته شده است در تاریخ 2023-04-22 15:02:00