AI & ML; Python Programmer And Interested In Decentralized World
روز ۸/۱۰۰ - رمزگشایی از جادوی اتر و وی در سالیدیتی: توانمندسازی توسعه اتریوم
به دنیای شگفتانگیز اتریوم و سالیدیتی خوش آمدید! در این قسمت از سری #100DaysOfSolidity، ما به سفری جذاب برای رمزگشایی از رازهای اتر(Ether) و وی(Wei) میرویم، واحدهای ارزشمند و اسرارآمیز در اکوسیستم اتریوم. اتریوم با قابلیتهای قرارداد هوشمند خود، دنیای برنامههای غیرمتمرکز (dApp) را دگرگون کرده و به توسعهدهندگان قدرت میدهد تا راهحلهای نوآورانه مبتنی بر بلاک چین را خلق کنند.
برای درک کامل پتانسیل اتریوم، فهم ظرافتهای اتریوم و وی، واحدهای پول دیجیتال این پلتفرم، ضروری است. در این مقاله، به سفری اکتشافی میرویم و به رمز و رازهای نهفته در ورای این واحدهای جذاب پی میبریم.
مفهوم اتر و وی
اتر، با نماد ETH، بهعنوان ارز دیجیتال اصلی بلاکچین اتریوم شناخته میشود. همانطور که بیتکوین نیروی محرک بلاکچین بیتکوین است، اتر نیز اساس عملکرد شبکه اتریوم را تامین میکند. اتر کاربردهای متنوعی دارد، از پرداخت کارمزد تراکنشها و پاداش به استخراجکنندگان گرفته تا استفاده بهعنوان واحد تبادل در برنامههای غیرمتمرکز (dApp). اهمیت اتر در اکوسیستم اتریوم ایجاب میکند که توسعهدهندگان و کاربران بهطور یکسان، ماهیت و کارکرد آن را درک کنند.
وی (Wei)، کوچکترین واحد غیرقابل تقسیم اتر است، همانند ذرات درخشانی از غبار جادویی. همانطور که سنت نمایانگر بخشهای کوچکی از دلار است، وی نیز نشان دهنده بخشهای بسیار ریزی از ارزش اتر است. در واقع، یک واحد اتر، معادل با 10 به توان 18 واحد وی است، که بیانگر وسعت دنیای اتریوم و امکان انجام تراکنشهای بسیار کوچک در آن است. برای کار با این واحدها در زبان برنامهنویسی تخصصی اتریوم به نام سالیدیتی، درک دقیق نحوهی مدیریت آنها ضروری است.
جادوی سالیدیتی و واحدهای اتر
سالیدیتی، زبان جادوییِ قراردادهای هوشمند اتریوم، به توسعهدهندگان توانایی خلق برنامههای غیرمتمرکز پیچیده و شگفتانگیز را میبخشد. در تار و پود Solidity، توسعهدهندگان گنجینهای از ابزارها و کتابخانهها را برای تعامل بیوقفه با اتر و وی در اختیار دارند. بیایید با کاوش در جادوهای کدنویسی اتریوم، سفری جادویی را آغاز کنیم و جنبههای عملی کار با این واحدها را رمزگشایی نماییم.
بهکارگیری جادوی اتر و وی
pragma solidity ^0.8.17;
contract EtherUnits {
uint public oneWei = 1 wei; // Conjuring a variable with 1 Wei
bool public isOneWei = 1 wei == 1; // Probing if 1 Wei holds the power of 1
uint public oneEther = 1 ether; // Summoning a variable with 1 Ether
bool public isOneEther = 1 ether == 1e18; // Unveiling if 1 Ether channels the energy of 10¹⁸ Wei
}
در این کد Solidity، یک قرارداد به نام EtherUnits
تعریف شده است که دو تابع oneWei
و isOneWei
را ارائه میدهد. تابع oneWei
یک متغیر از نوع uint256
را با مقدار 1 Wei (معادل 10^18 اتریوم) ایجاد میکند. تابع isOneWei
بررسی میکند که آیا مقدار یک متغیر از نوع uint256
برابر با 1 Wei باشد یا خیر.
علاوه بر این، دو تابع دیگر به نام oneEther
و isOneEther
در قرارداد EtherUnits
تعریف شدهاند. تابع oneEther
یک متغیر از نوع uint256
را با مقدار 1 Ether (معادل 10^18 Wei) ایجاد میکند. تابع isOneEther
بررسی میکند که آیا مقدار یک متغیر از نوع uint256
برابر با 1 Ether باشد یا خیر.
تبدیل واحدهای اتر و وی
pragma solidity ^0.8.17;
contract UnitConversion {
function convertWeiToEther(uint weiAmount) public pure returns (uint)
{
return weiAmount / 1 ether; // Transmuting Wei into Ether
}
function convertEtherToWei(uint etherAmount) public pure returns (uint) {
return etherAmount * 1 ether; // Transmuting Ether into Wei
}
}
در این قرارداد هوشمند، ما کانترکتی به نام UnitConversion
را معرفی میکنیم که امکان تبدیل بین واحدهای Wei و Ether را فراهم میکند. تابع convertWeiToEther
مقدار Wei را به عنوان ورودی دریافت کرده و معادل آن را در واحد Ether برمیگرداند. به طور مشابه، تابع convertEtherToWei
مقدار Ether را به عنوان ورودی دریافت کرده و آن را به Wei تبدیل میکند. این توابع در پیمایش دنیای شگفتانگیز قراردادهای هوشمند بسیار قدرتمند و کاربردی هستند.
جادوی نهفته در آموزش
درک رمز و رازهای اتر و وی، گنجینهای از دانش و بینش را به ما ارزانی میدارد که توسعهدهندگان و علاقهمندان به بلاک چین را به یک اندازه توانمند میسازد. بیایید مزایای اسرارآمیز این دانش را بررسی کنیم:
- تضمین دقت محاسبات: با درک رابطه بین اتر و وی، خود را قادر به انجام محاسبات دقیق در حین انجام تراکنشها، بررسی موجودی و سایر عملیات رمزنگاری در برنامههای مبتنی بر اتریوم میکنیم.
- تسلط بر هنر گس: گس، واحد سنجش انتزاعی تلاش محاسباتی مورد نیاز برای اجرای عملیات در شبکه اتریوم است. با استفاده کارآمد از وی، واحد فرعی گس، میتوانیم هزینههای گس را بهینهسازی کرده و راندمان کلی قراردادهای هوشمند خود را ارتقا دهیم.
- قدرت جادویی خرد تراکنشها: ماهیت ذرهبینی وی به ما امکان میدهد تا تار و پود تراکنشهای خرد را در dAppها ببافیم و سناریوهای جذاب مانند خدمات پرداخت به ازای استفاده و پرداختهای خرد را فعال کنیم. این امکانات شگفتانگیز نوآوری را تقویت میکنند و به ترویج پذیرش گسترده اتریوم در حوزههای مختلف کمک میکنند.
- حصول اطمینان از همگرایی یکپارچه قراردادها: هنگام تعامل با سایر قراردادهای هوشمند، درک واحد value مورد استفاده توسط قراردادهای خارجی بسیار مهم میشود. تسلط بر واحدهای اتر و وی امکان ادغام یکپارچه و انتقال دقیق ارزش بین این قراردادها را فراهم میکند.
نتیجهگیری
تبریک! شما با موفقیت این سفر پرمغز و آموزنده را در دنیای رمز ارزها و اتریوم به پایان رساندید.
با اتکا به دانش عمیقی که از زبان برنامهنویسی سالیدیتی و مفاهیم اتریوم به دست آوردهاید، اکنون قادر به ساخت برنامههای غیرمتمرکز قدرتمند، مقیاسپذیر و جذاب هستید.
دنیای امور مالی غیرمتمرکز، توکنهای غیرقابلمعاوضه و راهحلهای مبتنی بر بلاکچین مشتاقانه منتظر خلاقیت و ابتکار شما هستند.
🔸 این مقاله،از مقالات ترجمه شده از سالیدیتی آکادمی است برای خواندن مقاله اصلی میتوانید به لینک زیر مراجعه کنید:
🔸 شما میتوانید برای خواندن ادامه مقالات ترجمه شده این آکادمی به سالیدیتی آکادمی مراجعه کنید.
مطلبی دیگر از این انتشارات
روز ۱۱/۱۰۰ - #100DaysOfSolidity تسلط بر حلقه های For و While در Solidity
مطلبی دیگر از این انتشارات
روز 6/100 - درک immutability در سالیدیتی: ساخت قراردادهای هوشمند قابل اعتماد
مطلبی دیگر از این انتشارات
روز ۷/۱۰۰ - بررسی خواندن و نوشتن State variable در سالیدیتی