مینی پروژه تبادل توکن در سالیدیتی

مینی پروژه تبادل توکن در سالیدیتی

این پروژه چالش برانگیز است.

باور کنید یا نه، شما حالا دانش مقدماتی کافی برای ساخت یک قرارداد هوشمند بسیار ساده برای تبادل توکن را دارید! مأموریت شما این است:

دو قرارداد ERC20 بسازید: یکی به نام RareCoin و دیگری SkillsCoin (می‌توانید نام ها را به دلخواه تغییر دهید). هر کسی باید بتواند SkillsCoin را مینت کند، اما تنها راه به دست آوردن RareCoin این است که SkillsCoin را به قرارداد RareCoin ارسال کند. بنابراین باید محدودیت مینت فقط توسط مالک را از SkillsCoin حذف کنید.

روند انجام کار:

  • mint() کردن SkillsCoin برای خودتان
  • از SkillsCoin.approve(address rareCoinAddress, uint256 yourBalanceOfSkillsCoin) استفاده کنید تا RareCoin بتواند کوین‌ها را از شما بگیرد.
  • RareCoin.trade() را فراخوانی کنید؛ این باعث می‌شود RareCoin، تابع SkillsCoin.transferFrom(address you, address RareCoin, uint256 yourBalanceOfSkillsCoin) را اجرا کند.
    یادتان باشد که RareCoin می‌تواند آدرس خودش را با address(this) بداند.
  • RareCoin.balanceOf(address you) باید مقدار کوینی را که ابتدا از SkillsCoin مینت کرده بودید، بازگرداند.

یادتان باشد که توکن های ERC20 (یعنی قراردادها) می‌توانند مالک توکن های ERC20 دیگر باشند. بنابراین وقتی RareCoin.trade() را فراخوانی می‌کنید، این تابع باید SkillsCoin.transferFrom را صدا بزند و SkillsCoin شما را به خودش (یعنی address(this)) منتقل کند.

اگر آدرس SkillsCoin را ذخیره کرده باشید، چیزی شبیه این خواهد بود:

این قراردادها را در Remix مستقر (Deploy) کرده و تست کنید که درست کار می‌کنند.

اگر در Solidity تازه‌کار هستید، چند روز برای این پروژه کنار بگذارید. بسیاری از برنامه نویس ها در ابتدا با این موضوع که موجودی ها (balances) در قراردادهای هوشمند ذخیره می‌شوند نه در کیف پول ها، سردرگم می‌شوند؛ پس ممکن است کمی طول بکشد تا به این موضوع عادت کنید. همچنین باور کنید که از فراخوانی بین قراردادها (Cross Contract Calls) سردرگم خواهید شد.

5/5 - (1 امتیاز)

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.

پکیج جامع و پروژه محور ASP.NET MVC + طراحی فروشگاه اینترنتی فروش فایل
  • انتشار: ۱۴ اردیبهشت ۱۴۰۴

دسته بندی موضوعات

آخرین محصولات فروشگاه

مشاهده همه

نظرات

بازخوردهای خود را برای ما ارسال کنید