اپلیکیشن اندرویدی فلشکارت آموزشی آشنایی با استاندارد ERC-20: ساخت توکنهای قابل تعویض
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره آشنایی با استاندارد ERC-20: ساخت توکنهای قابل تعویض
موضوع کلی: برنامه نویسی
موضوع میانی: بلاکچین و قراردادهای هوشمند
📋 سرفصلهای دوره
- 1. مقدمهای بر بلاکچین: چرا توکنها اهمیت دارند؟
- 2. مفاهیم اصلی بلاکچین: دفتر کل توزیع شده و عدم تمرکز
- 3. رمزنگاری و هشینگ در بلاکچین
- 4. اجماع و انواع مکانیسمهای آن
- 5. کاربردهای بلاکچین فراتر از ارز دیجیتال
- 6. آشنایی با اتریوم: پلتفرم قرارداد هوشمند
- 7. اتریوم ۱.۰ (PoW) در مقابل اتریوم ۲.۰ (PoS)
- 8. مفهوم حسابها در اتریوم: EOA و Contract Accounts
- 9. اتر (ETH) و گس (Gas) چیست؟
- 10. ماشین مجازی اتریوم (EVM)
- 11. تراکنشها در اتریوم
- 12. بلاکها و ساختار بلاکچین اتریوم
- 13. کیف پولهای اتریوم و مدیریت کلید خصوصی
- 14. شبکههای اتریوم: Mainnet, Testnets (Sepolia, Goerli, etc.)
- 15. مرورگرهای بلاکچین (Block Explorers) مانند Etherscan
- 16. قراردادهای هوشمند: منطق برنامه پذیر روی بلاکچین
- 17. معماری و چرخه حیات قراردادهای هوشمند
- 18. زبان برنامه نویسی سالیدیتی (Solidity)
- 19. انواع دادهها در سالیدیتی
- 20. توابع و تغییردهندهها (Modifiers) در سالیدیتی
- 21. رویدادها (Events) در قراردادهای هوشمند
- 22. ساختار کلی یک قرارداد سالیدیتی
- 23. آشنایی با کامپایلر سالیدیتی
- 24. ذخیره سازی دادهها در قراردادهای هوشمند (Storage, Memory, Calldata)
- 25. ارث بری و کتابخانهها در سالیدیتی
- 26. توکنهای بلاکچینی: مفاهیم اساسی
- 27. توکنهای قابل تعویض (Fungible) در مقابل غیرقابل تعویض (Non-Fungible)
- 28. کاربردهای توکنهای قابل تعویض: ارزها، سهام، امتیازات
- 29. ارزشگذاری و توکنومیکس (Tokenomics) پایه
- 30. انواع استاندارد توکنها در اتریوم
- 31. تاریخچه و هدف استاندارد ERC-20
- 32. تعریف ERC-20: رابط برنامه نویسی توکنهای قابل تعویض
- 33. حداقل توابع مورد نیاز ERC-20
- 34. تابع `name()` و `symbol()` برای شناسایی توکن
- 35. تابع `decimals()` برای دقت توکن
- 36. تابع `totalSupply()` برای موجودی کل
- 37. تابع `balanceOf(address account)` برای موجودی یک آدرس
- 38. تابع `transfer(address recipient, uint256 amount)` برای انتقال مستقیم
- 39. تابع `approve(address spender, uint256 amount)` برای مجوز خرج
- 40. تابع `allowance(address owner, address spender)` برای بررسی مجوز
- 41. تابع `transferFrom(address sender, address recipient, uint256 amount)` برای انتقال با مجوز
- 42. رویداد `Transfer(address from, address to, uint256 value)`
- 43. رویداد `Approval(address owner, address spender, uint256 value)`
- 44. اهمیت و لزوم پیادهسازی دقیق رویدادها
- 45. بررسی یک نمونه قرارداد ERC-20 استاندارد
- 46. آمادهسازی محیط توسعه سالیدیتی (Remix IDE)
- 47. ایجاد اولین پروژه سالیدیتی
- 48. تعریف متغیرهای حالت (State Variables) برای ERC-20
- 49. ساختار `mapping` برای نگهداری موجودیها (`balances`)
- 50. ساختار `mapping` برای نگهداری مجوزها (`allowances`)
- 51. پیادهسازی سازنده (Constructor) و تخصیص موجودی اولیه
- 52. پیادهسازی تابع `totalSupply`
- 53. پیادهسازی تابع `balanceOf`
- 54. پیادهسازی تابع `transfer` با بررسی شرایط
- 55. پیادهسازی تابع `approve` و صدور رویداد `Approval`
- 56. پیادهسازی تابع `allowance`
- 57. پیادهسازی تابع `transferFrom` با بررسی مجوز
- 58. مدیریت خطاها و بازگردانی تراکنشها (`require`, `revert`)
- 59. بهینهسازی گس در قراردادهای ERC-20
- 60. آشنایی با OpenZeppelin Contracts برای ERC-20
- 61. معرفی ابزارهای توسعه بلاکچین (Hardhat, Truffle, Foundry)
- 62. نصب Node.js و npm
- 63. راهاندازی پروژه Hardhat
- 64. پیکربندی Hardhat برای شبکههای مختلف
- 65. معرفی VS Code و افزونههای مفید برای Solidity
- 66. طراحی یک توکن سفارشی با ERC-20
- 67. استفاده از کتابخانه OpenZeppelin برای پیادهسازی ERC-20
- 68. گام به گام: ایجاد فایل قرارداد `MyToken.sol`
- 69. پیادهسازی ERC-20 با استفاده از `ERC20.sol` از OpenZeppelin
- 70. افزودن منطق سفارشی به قرارداد ERC-20 (مثلا Mintable)
- 71. قابلیت Pause (توقف) در قراردادهای توکن
- 72. قابلیت Burn (سوزاندن) توکنها
- 73. قابلیت Blacklist (لیست سیاه) برای آدرسها
- 74. مدیریت نقشها (Role-based access control) در قرارداد
- 75. اضافه کردن قابلیتهای مدیریتی (Admin functions)
- 76. اهمیت تستنویسی در قراردادهای هوشمند
- 77. فریمورکهای تست: Waffle, Chai, Mocha
- 78. نوشتن تست برای تابع `totalSupply`
- 79. نوشتن تست برای تابع `balanceOf`
- 80. نوشتن تست برای تابع `transfer` (حالت موفق و ناموفق)
- 81. نوشتن تست برای تابع `approve`
- 82. نوشتن تست برای تابع `allowance`
- 83. نوشتن تست برای تابع `transferFrom` (حالت موفق و ناموفق)
- 84. تست رویدادهای `Transfer` و `Approval`
- 85. تست سناریوهای مرزی و شرایط خطا
- 86. کامپایل قرارداد ERC-20 با Hardhat
- 87. اسکریپتنویسی برای استقرار قرارداد
- 88. استقرار توکن روی شبکه تست (Testnet)
- 89. تأیید (Verification) قرارداد در Etherscan
- 90. تعامل با قرارداد مستقر شده از طریق Etherscan
- 91. تعامل با قرارداد از طریق اسکریپت Hardhat (ethers.js)
- 92. استفاده از Web3.js برای تعامل با قرارداد
- 93. اتصال به کیف پول (MetaMask) از طریق DApp
- 94. ساخت یک رابط کاربری ساده برای توکن ERC-20
- 95. استقرار قرارداد روی شبکه اصلی (Mainnet) و ملاحظات آن
- 96. تهدیدات امنیتی رایج در قراردادهای هوشمند (Reentrancy, Integer Overflow/Underflow)
- 97. آسیبپذیریهای خاص ERC-20 (Approval race condition)
- 98. استفاده از حسابرسیهای امنیتی (Audits)
- 99. طراحی قراردادهای هوشمند امن و مقاوم
- 100. اصول ارتقاء پذیری (Upgradeability) قراردادهای توکن
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.