در جلسه ششم در زمینه ابزارهای برنامه نویسی قرارداد هوشمند صحبت میکنیم.
در شروع قرارداد fundMe را بررسی میکنیم و با مفهوم اوراکل ها آشنا میشیم. و قیمت اتریوم را با استفاده از chainlink دریافت میکنیم تا در قرارداد استفاده کنیم. در محیط ریمیکس روی تست نت دپلوی میکنیم و تراکنش ارسال میکنیم.
سپس در بخش بعد قرارداد را در محیط VsCode با استفاده از Hardhat در بلاکچین لوکال دپلوی میکنیم. و بعد با ثبت نام در Alchemy و استفاده از RPC-URL و API key که در اختیارمون میذاره روی تست نت هم قرارداد را دپلوی میکنیم. با hardhat deploy package هم آشنا میشیم.
با مفهوم mock آشنا میشیم و یاد میگیریم چطور از mock های Chainlink استفاده کنیم.
یاد میگیریم چطور با استفاده از هاردهت بلاکچین فعلی رو تشخیص بدیم و در مرحلهی دپلوی با توجه به بلاکچین فعلی در کد دپلوی رفتار متفاوتی تعریف کنیم.
در بخش بعد قرارداد را در تست نت از طریق کد Verify میکنیم.
نگاهی به Custom Task در هاردهت میندازیم و در آخر با Hardhat Console آشنا میشیم.
كاش ادامه آموزش با ابزار ريميكس بود كه براي همه در دسترس است. البته درك ميكنم كه خيلي ابزار حرفه اي نيست ولي پس از تسلط نسبي بر مفاهيم مي شد ابزارهاي كارآمدي مثل هاردهت و… را به كار برد. سوالي كه پيش مياد اين است كه آيا پروژه نهايي رو ميشه با ريميكس نوشت يا خير؟
وقتتون بخیر … من میخواستم با ویندوز یه شبکه خصوصی ران کنم که با این ارور مواجه شدم …باید چکارکنم Fatal: Failed to register the Ethereum service: ethash is only supported as a historical component of already merged networks . پس از مرج باید نود consensis رو هم ران کرد که کار کنه یا نه ؟؟؟
سلام و درود.وقت بخیر
در جلسه ی 6 ساعت 01:03:45 ؛استاد فایلی به نام fund.js رو از پروژه ی اصلی (دانلود شده از گیت هاب) کپی کردن(لازم به ذکره فایل fund.js که برای من اومده یکم متفاوته و توضیحات رو که با // اومدن نداره) و در پوشه ی مشابه برنامه ای که قراره دیپلوی بشه قرار دادن.بعد یه قسمتش رو سلکت کردن و با چیزی که مشخص نیست از کجا کپی کرده بودن جایگزین کردن.
اون چیزی که جایگزین کردید از کجا اومد؟ما هم دسترسی داریم یا باید دستی تایپش کنیم؟
اصلا چرا تغییر کرد؟
سلام و عرض ادب خدمت اساتید گرامی خدا قوت💙
ما نهایتا ملزم به استفاده از هاردهت هستیم ولی سوالم اینه که برای استفاده از هاردهت به چه میزان و در چه سطحی باید JS رو یادبگیریم و درش عمیق بشیم؟ رودمپ پیشنهادی ای دارید؟
پیشاپیش ممنونم از پاسخگویی تون.
پ.ن: همین الان دارم به صورت موازی js رو یاد میگیرم اما چون میخوام تا ددلاین پروژه بتونم پروژه رو تحویل بدم، نه میتونم تو این مدت کم js رو فول بشم نه اطلاعاتم از js اونقدریه که بتونم فایل های js. پروژه رو بخونم و متوجهاش بشم
سلام وقت شما هم بخیر.
فک میکردم گفتم که تغییر دادم اونو.
کد دپلوی اون فایل رو تو توضیحات گذاشتم و فقط به ساده ترین شکل نوشتم دپلوی رو فک کنم کلا هم چهار خط بود برا همین شیر نکردم.
سلام ممنونم
ملزم که شاید نه لزوما
اگه با زبان دیگه ای راحت هستین میتونین چک کنین ببینین ابزاری داره یا نه. فقط یادگیری طرز استفاده ش با خودتون میشه.
لزومی نداره خیلی حرفه ای جاوااسکریپت بلد باشین. درگیر جزییات غیر ضروری نشین.
کدی که میبینین و متوجه نمیشین رو دستور به دستور چک کنین تا مثلا کل یه فایل تست یا دپلوی رو درک کنین.
هرجا لازمه کاری انجام بدین و نمیدونین به چه شکل هست باز جستجو کنین و راه حل رو پیدا کنین. کم کم راحت خواهید شد با کد.
همین که متوجه کد بشین و بتونین در جهت استفاده خودتون تغییرات لازم رو بدین حداقل برای انجام پروژه فک کنم کافیه.
گفتید که تغییر دادید.
ولی اصلا چرا تغییر کرد و چه اتفاقی توی قبلی افتاده بود؟چرا همون رو نمیشد دیپلوی کرد؟
“0x694AA1769357215DE4FAC081bf1f309aDC325306” این دقیقا چیه؟ازکجا و چطوری بدست اوردیدش؟
با مطالبی که تا الان یاد گرفته بودیم؛باید خودمون میتونستیم تشخیص بدیم که اینجا این کد بایدجایگزین بشه؟
نیاز بود این کار رو هم با شما مرحله به مرحله انجام بدیم؟
با روندی که میخواستم آموزش بدم تطبیق نداشت.
به این دلیل که اون کدی که تو خود فایله, داره از هاردهت دپلوی پکیج استفاده میکنه.
و لازمه قبلش این خط رو هم اضافه کنین که کار کنه:
await deployments.fixture("all");
من میخواستم نشون بدم بدون اینکه بخواین پکیج دپلوی رو نصب کنین چطور میتونین یک قرارداد رو دپلوی کنین.
هرچند تو این مورد خاص بدون ماک رو لوکال کار نمیکنه ولی رو تست نت اوکی بود.
اون آدرس هم آدرس priceFeed رو تست نته, بصورت هاردکد که پارامتر ورودی سازنده قراردادمونه.