دوره آشنایی با استاندارد ERC-20: ساخت توکنهای قابل تعویض همراه با فلشکارت آموزشی — ارائه روی فلش مموری
📚 کتاب آموزشی جامع
📚 اطلاعات کتاب
عنوان کتاب: کتاب آشنایی با استاندارد ERC-20: ساخت توکنهای قابل تعویض
موضوع کلی: برنامه نویسی
موضوع میانی: بلاکچین و قراردادهای هوشمند
📋 سرفصلهای کتاب (100 موضوع)
- 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) قراردادهای توکن
محتویات بسته آموزشی
🌐 سامانه آنلاین فلشکارت؛ مرور هدفمند و هوشمند
اکانت ارائهشده، دسترسی به نسخه تحت وب سامانه فلشکارت ویژه این دوره را فراهم میکند. این سامانه از الگوریتم زمانبندی مرور SM-2 استفاده میکند و بر اساس ارزیابی شما از میزان یادآوری هر کارت، زمان مرورهای بعدی را تنظیم میکند.
به این ترتیب، کارتهای دشوارتر میتوانند زودتر مرور شوند و برای تثبیت مطالب در حافظه، برنامه مرور متناسبتری داشته باشید.
مدتزمان معادل آموزشی بر اساس برآورد این دوره در گواهی درج میشود.
گواهی دوزبانه با استعلام آنلاین
پس از تکمیل فعالیتهای لازم و تأیید درخواست، گواهی پایان دوره به زبان فارسی و انگلیسی صادر میشود. گواهی دارای لینک اختصاصی و QR Code برای بررسی و استعلام آنلاین است.
این گواهی صرفاً بهعنوان گواهی اتمام دوره آموزشی صادر میشود و معادل مدرک دانشگاهی، آکادمیک یا مدرک رسمی مورد تأیید نهادهای دولتی نیست. صدور آن منوط به تکمیل شرایط دوره و تأیید نهایی درخواست است.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.