فصل اول: بلاکچین، قراردادهای هوشمند و اِتِریُم
1-1. بلاکچین چیست؟
1-2. قراردادهای هوشمند
1-3. مفهوم اتریم
1-4. مسألهها
فصل دوم: مقدمات زبان سالیدیتی
2-1. سالیدیتی چیست؟
2-2. سالیدیتی یک زبان سطح بالا است
2-3. سالیدیتی یک زبان کامپایلری است
2-4. سایر ویژگیهای زبان سالیدیتی
2-5. مفهوم انواع دادهها
2-6. انواع دادهها در سالیدیتی
2-7. انواع دادهی مقداری
2-8. نوع دادهی بایت
2-9. انواع دادهی مرجع
2-10. مفهوم متغیرها
2-11. اعلان ثابت
2-12. عملگرها
2-13. کلمات کلیدی در سالیدیتی
2-14. لیترالها
2-15. مسألهها
فصل سوم: ایجاد و اجرای قراردادهای هوشمند
3-1. ساختار قرارداد در سالیدیتی
3-2. شناسهی مجوز SPDX
3-3. دستور pragma
3-4. معرفی قرارداد با کلمهی کلیدی contract
3-5. متغیرهای حالت
3-6. تابع در قرارداد هوشمند
3-7. رویدادها
3-8. سازندهها
3-9. نمونهای از قرارداد هوشمند در سالیدیتی
3-10. محیطهای توسعهی قراردادهای هوشمند
3-11. محیط توسعهی رِمیکس (Remix)
3-12. کار عملی با رِمیکس
3-13. مسألهها
فصل چهارم: توابع و کنترلهای دسترسی در قراردادهای هوشمند
4-1. چرا از توابع استفاده میکنیم؟
4-2. جنبههای مختلف یک تابع
4-3. چگونه تابع بنویسیم؟
4-4. حوزهی تابع
4-5. تغییر حالت قراردادها با توابع
4-6. انواع متغیرها در سالیدیتی
4-7. مکان دادهها در سالیدیتی
4-8. تابع سازنده در سالیدیتی
4-9. اشکالزدایی برنامه با چاپ اطلاعات در کنسول
4-10. مسألهها
فصل پنجم: ساختارهای کنترلی
5-1. ساختارهای تصمیمگیری
5-2. ساختارهای تکرار
5-3. مسألهها
فصل ششم: سازماندهی دادهها با آرایهها
6-1. آرایه چیست؟
6-2. انواع آرایهها در سالیدیتی
6-3. آرایههای با طول ثابت (آرایههای ایستا)
6-4. آرایههای با طول متغیر (پویا)
6-5. آرایههای دوبُعدی
6-6. آرایهای از بایتها
6-7. مسألهها
فصل هفتم: انواع دادهی ساختمان، شمارشی و نگاشتها
7-1. ساختمانها
7-2. آرایهای از ساختمانها
7-3. نوع شمارشی
7-4. نگاشتها
7-5. مسألهها
فصل هشتم: وراثت قراردادها
8-1. وراثت قراردادها
8-2. انواع وراثت قراردادها در سالیدیتی
8-3. مفهوم نمونهسازی از قرارداد
8-4. وراثت چندگانه
8-5. توابع مجازی و بازنویسی آنها در وراثت
8-6. چندریختی تابعی در سالیدیتی
8-7. چندریختی قرارداد در سالیدیتی
8-8. قراردادهای انتزاعی
8-9. واسطها
8-10. تفاوت واسطها و قراردادهای هوشمند
8-11. ساختار کلی واسطها و امتیاز آنها
8-12. مسألهها
فصل نهم: اداره کردن خطاها، رویدادها و کارنامهی تراکنش
9-1. اداره کردن خطا
9-2. انواع خطا در سالیدیتی
9-3. تکنیکهای اداره کردن خطا در سالیدیتی
9-4. مفهوم رویدادها
9-5. مسألهها
فصل دهم: تعدیلکنندهها و توابع fallback() و receive()
10-1. تعدیلکنندهها
10-2. تعدیلکننده با پارامتر
10-3. توابع fallback() و receive()
10-4. مسألهها
فصل یازدهم: کتابخانهها و روشهای بهینهسازی گَس
11-1. کتابخانه چیست؟
11-2. ساختار کتابخانه
11-3. استفاده از کتابخانه
11-4. کاربرد دستور using…for برای کتابخانه
11-5. مزایای استفاده از کتابخانهها
11-6. بهترین روشها برای استفاده از کتابخانه
11-7. مفهوم گَس و واحدهای اندازهگیری هزینه
11-8. روشهای بهینهسازی گَس
فصل دوازدهم: امنیت در قراردادهای هوشمند - تهدیدها و راهکارها
12-1. حملهی بازدخول
12-2. حفاظت در مقابل حملهی بازدخول با nonReentrant
12-3. سرریز و پاریز مقادیر صحیح
12-4. آسیبپذیریهای محدودیت گَس
12-5. مقادیر برگشتیِ بررسینشده
12-6. آسیبپذیریهای کنترل دسترسی
12-7. بهترین روشها برای نوشتن قراردادهای هوشمند اَمن
فصل سیزدهم: اپلیکیشنهای نامتمرکز
13-1. فواید اپلیکیشنهای نامتمرکز
13-2. اپلیکیشن نامتمرکز چگونه کار میکند؟
13-3. معرفی چند اپلیکیشن نامتمرکز
13-4. نوشتن اپلیکیشن نامتمرکز در سالیدیتی
فصل چهاردهم: استقرار قراردادهای هوشمند در محیطهای واقعی
14-1. تفاوت محیطهای توسعه، تستنت و شبکهی اصلی
14-2. استقرار قرارداد در سِپولیا
14-3. افزودن شبکهی سِپولیا به متامسک
14-4. دریافت اتریم آزمایشی از سِپولیا
14-5. ارتباط رِمیکس و متامسک
14-6. استقرار قرارداد در محیطهای واقعی
14-7. معرفی شبکهی واقعی Linea
واژهنامه انگلیسی به فارسی
منابع و مآخذ