نوروز مبارک

🔥 جشنواره نوروزی آموزش با ۷۰٪ تخفیف ویژه! 🎉
با آغاز سال نو، فرصتی استثنایی برای یادگیری فراهم شده است! 🌸
🚀 چرا نباید این فرصت را از دست داد؟
✅ دورههای متنوع و کاربردی
✅ تدریس توسط اساتید مجرب
✅ یادگیری در هر زمان و هر مکان
📌 همین حالا از این تخفیف فوقالعاده بهرهمند شوید! فرصت محدود است!
- مدرس دوره : بهادر قدم خیر ( رزومه )
- تعداد ویدیوها : 54 ویدیو
- مدت زمان دوره : 9:1:00
- سطح دوره : پیشرفته
- وضعیت دوره : به اتمام رسیده
- تاریخ آخرین بروزرسانی : 1402/04/21

آموزش پیشرفته برنامه نویسی سالیدیتی
توضیحات دوره:
اگه میخواین تبدیل به یه برنامه نویس سالیدیتی بشین،
و یا حتی میخواین از دنیای web2 وارد فضای جذاب و آینده دار web3 بشید، حتماً حتماً باید این دوره رو مشاهده کنین!
این دوره ادامه دوره مقدماتی برنامه نویسی سالیدیتی هستش و مباحث از سطح متوسط به بالا توی سالیدیتی رو در اینجا آموزش دادیم.
مباحثی که تو این دوره مطرح شدند از جمله مسائل بسیار مهم توی حوزه برنامه نویسی سالیدیتی هستن و با یادگیری اونها سطح شما توی برنامه نویسی سالیدیتی خیلی بالاتر خواهد رفت.
به عنوان یه برنامه نویس سالیدیتی حتماً حتماً باید مفاهیم و نکاتی که در طول این دوره مطرح میکنیم رو یاد بگیرین و تمرین کنین.
در نهایت تو بخش های پایانی دوره چندتا قرارداد هوشمند مختلف رو پیاده سازی کرده ایم که حسابی به درک و یادگیریتون توی مباحث کاربردی برنامه نویسی سالیدیتی براتون مفیدن.
ضمناً این رو هم یواشکی بهتون بگم: مفاهیم این دوره رو خوب یاد بگیرین که بر اساسشون قراره بعداً چیزای خفن تری یاد بگیریم 😉
تو دوره منتظرتونم 😊
سرفصل های دوره :
Type conversion |
نحوه حذف یک عنصر از آرایه |
Iterable mapping |
شروع مباحث ارث بری |
Single inheritance |
Override و virtual |
Multilevel inheritance |
Hierarchical inheritance |
Multiple inheritance |
Polymorphism |
ارث بری constructorها |
Fallback & receive |
Interface |
فراخوانی سایر اسمارت کانترکت ها |
Library |
شروع کار با کتابخانه پرکاربرد OpenZeppelin |
کانترکت owner |
ایجاد سطوح دسترسی در اسمارت کانترکت |
ABI |
متغیرهای سراسری رمزنگاری در سالیدیتی |
از بین بردن(حذف) اسمارت کانترکت |
مفاهیم بنیادی functionها |
New in contracts |
Call |
delegateCall |
پیاده سازی قرارداد هوشمند ToDo list |
پیاده سازی قرارداد هوشمند انتخابات |
پیاده سازی قرارداد هوشمند پیمانکاری(مثلاً ارتباط بین کارفرما و فریلنسر) |
نحوه ساخت یک توکن استاندارد ERC20 |
نحوه ساخت یک NFT |
پیش نیاز های دوره :
فهرستـــ ویدیوها
مدت زمان دوره 9:1:00با مشاهده آنلاین جلسات در سایت ، هزینه اینترنت شما به صورت نیم بها محاسبه خواهد شد.
Type conversion - numbers - بخش اول
در این قسمت، نحوه تبدیل انواع داده ای از نوع عدد را یاد خواهیم گرفت.
Type conversion - numbers - بخش دوم
در این قسمت، ادامه نحوه تبدیل انواع داده ای(اعداد) را یاد خواهیم گرفت.
Type conversion - bytesN- بخش اول
در این قسمت، نحوه تبدیل انواع داده ای(بایت از نوع value type یا به عبارتی fixed-bytes array) را یاد خواهیم گرفت.
Type conversion - bytesN- بخش دوم
در این قسمت، نحوه تبدیل انواع داده ای(بایت از نوع value type یا به عبارتی fixed-bytes array) را به اعداد و بالعکس یاد خواهیم گرفت.
Type conversion - bytesN- بخش سوم
در این قسمت، نحوه تبدیل انواع داده ای(بایت از نوع value type یا به عبارتی fixed-bytes array) را به bytes(dynamically-size byte array) و بالعکس یاد خواهیم گرفت.
Type conversion - bytes-(dynamically-bytes array)
در این قسمت، نحوه تبدیل انواع داده ای(بایت از نوع value type یا به عبارتی fixed-bytes array) را به bytes(dynamically-size byte array) و بالعکس یاد خواهیم گرفت.
نحوه حذف المان آرایه
در این جلسه، نحوه حذف کردن یک عنصر از آرایه را در سالیدیتی یاد خواهیم گرفت.
ساختار حافظه در سالیدیتی - value types
از این قسمت، مفاهیم بسیار مهمی در خصوص ساختار حافظه در سالیدیتی را شروع کرده و یاد میگیریم. در جلسه پیش رو، با storage layout در متغیرهای از نوع value آشنا میشویم.
ساختار حافظه در سالیدیتی - fixed-array
در این جلسه، با storage layout در نوع متغیر fixed-array آشنا میشویم.
ساختار حافظه در سالیدیتی - dynamic-array
در این جلسه، با storage layout در متغیرهای dynamic-array که از reference type ها هستند آشنا میشویم.
اصلاحیه بخش ساختار حافظه در سالیدیتی - dynamic-array
این جلسه، یک اصلاحیه کوچک برای جلسه پیش میباشد.
ساختار حافظه در سالیدیتی - String
در این جلسه، با storage layout در متغیرهای string که از reference type ها هستند آشنا میشویم.
بخش 2 - ساختار حافظه در سالیدیتی - string
در این جلسه، با ادامه storage layout در متغیرهای string که از reference type ها هستند آشنا میشویم.
ساختار حافظه در سالیدیتی - Mapping
در این جلسه با ساختار حافظه در نوع متغیر Mapping آشنا میشویم و میفهمیم که هر مقدار در mapping در کدام خانه حافظه قرار میگیرد.
انواع ارث بری در سالیدیتی
در این جلسه، با انواع ارث بری در سالیدیتی آشنا خواهیم شد. پیشنهاد میکنم ابتدا این قسمت را ببینید و بعد قسمت قبلی آموزش را مشاهده کنید.
ارث بری چند سطحی
در این جلسه، ارث بری چند سطحی یا Multilevel inheritance را یاد خواهیم گرفت.
virtual و override در ارث بری
در این جلسه، به بررسی override و virtual در ارث بری در قراردادهای هوشمند سالیدیتی میپردازیم.
ارث بری چندگانه
در این جلسه، ارث بری چندگانه یا multiple inheritance را در سالیدیتی یاد خواهیم گرفت.
مقداردهی به constructor در ارث بری
در این جلسه نحوه مقداردهی به constructor ها را در ارث بری سالیدیتی یاد خواهیم گرفت.
override کردن متغیرها
در این جلسه، تحوه override کردن state variable ها را در ارث بری سالیدیتی یاد خواهیم گرفت.
interface در سالیدیتی
در این جلسه، نحوه ارتباط بین اسمارت کانترکت های سالیدیتی را با استفاده از interface یاد خواهیم گرفت.
استفاده از کتابخانه ownable
در این جلسه، با کتابخانه ownable از OpenZeppelin آشنا خواهیم شد.
آشنایی با متغیرهای رمزنگاری سالیدیتی
در این جلسه با متغیرهای رمزنگاری سالیدیتی آشنا خواهیم شد.
قرارداد هوشمند انتخابات - بخش اول
در این جلسه شروع به نوشتن یک قرارداد هوشمند برای برگزاری انتخابات(یا رای گیری) خواهیم کرد.
قرارداد هوشمند انتخابات - بخش دوم
در این جلسه به ادامه نوشتن یک قرارداد هوشمند برای برگزاری انتخابات(یا رای گیری) خواهیم پرداخت.
نوشتن قرارداد هوشمند انتخابات - بخش سوم
در این جلسه به ادامه نوشتن یک قرارداد هوشمند برای برگزاری انتخابات(یا رای گیری) خواهیم پرداخت. جلسه پایانی نوشتن کدها میباشد. در جلسه بعدی به بررسی اجرای کانترکت ساخته شده خواهیم پرداخت.
نوشتن قرارداد هوشمند انتخابات - بخش چهارم
در این جلسه به بررسی روش اول برای تبدیل string به bytes32 و سپس دیپلوی کردن قرارداد خواهیم پرداخت.
نوشتن قرارداد هوشمند انتخابات - بخش پنجم
در این جلسه به بررسی روش دوم برای تبدیل string به bytes32 و سپس دیپلوی کردن قرارداد خواهیم پرداخت.
اجرای قرارداد هوشمند انتخابات
در این جلسه قرارداد را دیپلوی کرده و کارکرد آن را یاد خواهیم گرفت.
قرارداد هوشمند توکن استاندارد ERC20 - بخش اول
در این بخش، به بررسی قرارداد هوشمند توکن استاندارد ERC20 خواهیم پرداخت.
نظرات کاربران در رابطه با این دوره
mahanmhmdy345
ارسال شده در 1403/10/05مطالب بسیار مهم و کاربردی پوشش داده شده و نحوه تدریس بسیار قابل فهم بود. باتشکر از آقای قدم خیر
hossein51
ارسال شده در 1402/06/14با عرض سلام و خسته نباشید .
می خواستم بدانم سرفصلهای ذیل که در آموزش سالیدیتی پیشرفته مطرح شده دقیقا در کدام پروژه ها کاربرد دارد . و آیابرای کد نویسی توکن با استاندارد ERC20 دانستن آنها الزامی است . 1 – conversion ها 2 – ساختار حافظه در سالیدیتی 3 – encode , decode در abi 4 – روشهای بدست آوردن امضای توابع
و سوال دیگر اینکه آیا با نوشتن کانترکتی با متد interface می توان به کانترکت توکنهای دیپلوی شده روی مثلا مین نت بایننس اسمارت چین متصل شد و روی آنها تغییراتی اعمال کرد یعنی مثلا توتال ساپلای آنرا تغییر داد یا مقداری از توکنهای آنرا به آدرس دلخواه ارسال کرد یا آنر هک کرد . در کل منظور از ارتباط با اسمارت کانترکت دیگر چه اسمارت کانترکتهایی می باشد .
بهادر قدم خیر (مدرس)
ارسال شده در 1402/06/21سلام خدمت شما
کاربرد مواردی که عنوان کردیم در جاهای مختلف هستش. بستگی داره به کاری که بخواد انجام بشه.
اما توی تمام پروژه هایی که قراردادهای هوشمند دارند قابل استفاده هستش و داره استفاده هم میشه.
برای نوشتن توکن استاندارد ERC20 ضرورتی نداره همه موارد رو بلد باشین، اما هر چقدر که قرار باشه اون توکن پیشرفته تر باشه و قابلیت های بیشتری داشته باشه، طبیعتاً نیاز پیدا میکنین به یک سری از مواردی که مطرح کردیم توی دوره.
conversion ها که برای تبدیلات استفاده میشه و طبیعیه که بگیم هروقت خواستین یک تایپ رو به تایپ دیگه تبدیل کنین باید ازش استفاده کنین.
ساختار حافظه، درک این رو میده بهتون که داره چه اتفاقی میفته توی کانترکت، و همینطور وقتی میخواین عملیات خوندن یا نوشتن رو انجام بدین باید چیکار کنین.
encode و decode هم در زمانی که بخواین بهینه سازی کانترکت رو انجام بدین خیلی به کارتون میاد. و البته یک سری کارهای پیشرفته تر که یه اشاره هایی رو توی دوره کردیم تا اونجا که یادمه.
بحث امضای توابع هم برای زمانی که کدهای کانترکتی رو که بخوایم باهاش ارتباط برقرار کنیم رو در اختیار نداشته باشیم، مفیده و میتونیم باهاش ارتباط مورد نظرمون رو برقرار کنیم.
در خصوص سوال بعدیتون:
بله میشه متصل شد به کدهایی که مثلاً روی شبکه اسمارت چین بایننس هستش و تغییرات رو هم میشه اعمال کرد، اما بحث تغییرات، بحث هک نیست. تغییراتی که میشه اعمال کرد در چارچوب مجوزهای شما خواهد بود. ینی مثلاً اگر مجوز تغییر رو داشته باشید قابل انجام هستش، اما اگر مجوز تغییر نداشته باشین طبیعتاً نمیتونین.
و در نهایت، منظور از ارتباط با اسمارت کانترکت دیگه، هر اسمارت کانترکتی هستش که بخواین.
امیدوارم جواب سوالاتتون رو گرفته باشین.
بازم موردی بود در خدمتتون هستم.
ilmaz
ارسال شده در 1402/04/02با سلام و احترام
آیا در این دوره کار با NFT ها کامل کاور میشه؟
باتشکر
بهادر قدم خیر (مدرس)
ارسال شده در 1402/04/02سلام خدمت شما دوست عزیز
نمیدونم منظورتون از کاور کردن کامل کار با NFTها چه مواردی هستش، اما در خصوص کاری که توی این دوره در خصوص NFT انجام میشه به این صورت هستش:
تو این دوره، با سالیدیتی و موارد مورد نیاز برای ساخت NFT، عملیات ساخت nft رو انجام میدیم.
امیدوارم براتون مفید باشه دوره ها
با احترام
بهادر قدم خیر
ارسال شده در 1402/01/17سلام خدمت شما جناب سهامی جو عزیز
مرسی از اینکه لطف کردین و سوال رو بصورت عمومی مطرح فرمودین
چون میدونم قطعاً این دغدغه و سوال خیلی از دوستانی هستش که میخوان وارد مسیر برنامه نویسی حوزه بلاکچین بشن.
اول از همه آب پاکی رو بخوام بریزم رو دست دوستان، باید بگم هیچ الزامی به داشتن دانش برنامه نویسی قبلی نیست. اما اگر دانش برنامه نویسی قبلی داشته باشین(مخصوصاً روی جاوا اسکریپت) خیلی خیلی بهتون تو مسیر پیشرفت کمک میکنه توی این حوزه و با سرعت بالاتری میتونین توش پیشرفت کنین.
با توجه به اینکه شاخه خیلی گستره ای هستش حوزه بلاکچین، موارد مختلفی رو در بر میگیره، از جمله قراردادهای هوشمند که توی دوره های پیش رو راجع بهشون داریم صحبت میکنیم. از جمله مبانی برنامه نویسی، و خیلی مباحث دیگه.
اونقدر دنیای وب3 گسترده اس که واقعاً نمیشه براش انتهایی رو در حال حاضر متصور باشیم.
بیشتر پیاده سازی هایی که توی نرم افزارهای این حوزه داره صورت میگیره با جاوااسکریپت(و کتابخونه هاش مخصوصاً ری اکت هستش در حال حاضر) و همینطور مقداری هم پایتون کم کم داره میاد جلو توش. اما بقیه زبان ها اونقدر پر استفاده نیستن توی این حوزه(اگر چه که میشه ازشون تو این حوزه استفاده کرد)
شما کلاً 2 پایه کلی دارین اینجا: بک اند - فرانت اند
با توجه به اینکه بخواین چیکار کنین یا تمایل و علاقه تون چی باشه مسیرتون تا حدی متفاوت میتونه باشه.
اما به عنوان یک مسئله مهم باید این رو عرض کنم که شما سالیدیتی رو مثل بک اند باید در نظر بگیرین. ینی با وجود سالیدیتی، الزامی به استفاده از سایر بک اند ها برای برنامه تون نیست(هرچند که میتونین بک اند جداگونه ای هم برای خودتون ایجاد و استفاده کنین در کنار سالیدیتی)
در نهایت برای اینکه خیلی طولانی و خسته کننده نشن حرفام، تشکر کنم از پیشنهادی که دادین، در خصوص پیشنهادتون از توضیح نقشه راه تا رسوندن دانش های آموخته شده به درآمد، حتماً نهایت سعیم رو میکنم که علیرغم فشرده بودن کارها و کمبود وقت، محتوای مهمی و پر اطلاعاتی رو آماده کنم و در اختیار شما و سایر دوستان قرار بدم که چشم اندازتون خیلی بهتر بشه در این رابطه.
سپاس فراوان از همراهیتون
امیرزبیر سهامی جو
ارسال شده در 1402/01/17سلام استاد عزیز
من این سوال را دوباره در در عمومی این سوال رو میفرستم
ولی هنوز جوابی از شما به این سوال داده نشده
ممنونم از دوره ای برگذار کردین
برای شروع دوره با یه تحقق بیشتر سایت ها اشاره به این دارن که داشتن دانش برنامه نویسی و بلد بودن اونها پیش نیاز وارد شدن به برنامه نویسی بلک چین هست
مثلاً یادگیری،جاوا اسکریپت ،بوت استرپ و ......
یا گاهی در رابطه با انواع حوزه های برنامه نویسی بلاک چین صحبت کردن
فارغ از این که من واقعا صحت گفته سایت های دیگه رو نمیدونم
اگر امکان داره،ممنون میشم یه توضیحی مانند نقشه راه یادگیری تا رساندن دانش های آموخته شده به درآمد زایی در فایل دوره اضافه بشه تا بتونیم با چشم اندازه بهتری اقدام به یادگیری کنیم.
مخصوصاً حوزه های مختلف برنامه نویسی ،مثلا مثل وب۲ ،حوزه های فرانت اند،و بک اند داره و کلا به چه صورت هست.
امیرزبیر سهامی جو
ارسال شده در 1402/01/15سلام استاد عزیز ممنون از پاسخ تون همانطور که فرمودین در عمومی این سوال رو میفرستم
ممنونم از دوره ای برگذار کردین
برای شروع دوره با یه تحقق بیشتر سایت ها اشاره به این دارن که داشتن دانش برنامه نویسی و بلد بودن اونها پیش نیاز وارد شدن به برنامه نویسی بلک چین هست
مثلاً یادگیری،جاوا اسکریپت ،بوت استرپ و ......
یا گاهی در رابطه با انواع حوزه های برنامه نویسی بلاک چین صحبت کردن
فارغ از این که من واقعا صحت گفته سایت های دیگه رو نمیدونم
اگر امکان داره،ممنون میشم یه توضیحی مانند نقشه راه یادگیری تا رساندن دانش های آموخته شده به درآمد زایی در فایل دوره اضافه بشه تا بتونیم با چشم اندازه بهتری اقدام به یادگیری کنیم.
مخصوصاً حوزه های مختلف برنامه نویسی ،مثلا مثل وب۲ ،حوزه های فرانت اند،و بک اند داره و کلا به چه صورت هست.