مشکل متصل نشدن web3و متامسک

سلام . یک کد رو میخوام اجرا کنم . این کد (GitHub - uziminhas/pharma_react_blockchain: Final project for Consensys Academy's 2018 Blockchain Developer Program.)
ولی ارو میده میگه web 3 یافت نشد. این ارور رو میاره :


چطور میشه ارور رو رفع کرد و کد رو ران کرد؟؟

1 پسندیده

توی توضیحات پروژه اشاره شده که باید افزونه‌ی MetaMask نصب باشه و شبکه Ropsten انتخاب بشه تا بشه به قرارداد توسعه داده شده روی شبکه‌ی آزمایشی وصل شد.

اتصال به Ropston برای بعد از لود شدن app هست. برای اینکه app اجرا بشه باید به گناش متصل باشه . تو فایل truffle.js هم مشخصات شبکه گناش واردشده. من مشکلم اینه کلا app اجرا نمیشه یعنی مرحله ی قبل از اینکه به Ropston وصل بشه

در وهله‌ی اول باید رابطی باشه که بتونه به مرورگر این امکان رو بده با بلاکچین ارتباط بگیره. این کار رو برای مثال MetaMask میتونه انجام بده. توی خطایی که داده هم همین رو توضیح داده. مرورگری که استفاده میکنید ظاهرا Edge هست و به طور پیش‌فرض این قابلیت رو نداره. نمیدونم افزونه‌ای که گفتم روش نصب میشه یا نه. اگر نه میشه برای مثال از مرورگر Chrome استفاده کرد. این صفحه طوری طراحی شده که اگر برنامه امکان ارتباط با شبکه رو نداشت، به جای اینکه خطا بده و متوقف بشه، این پیام رو به کاربر نمایش بده. (برای بررسی درست بودن این مرحله میشه از این سایت یا هر سایت web3 مشابه دیگه استفاده کرد)

در گام دوم، برنامه‌ای که توی مرورگر اجرا شده باید به قرارداد هوشمند متصل بشه. این قرارداد با توجه به کد - اگر اشتباه نکنم - قبلا توسط توسعه‌دهنده روی شبکه Ropsten با آدرس 0x80a02c6bf5575f22b24b8b4506f96be9e6cc3a69 قرار گرفته و بدون اینکه نیاز باشه ما قرارداد رو مجددا بسازیم (build کنیم) و روی شبکه قرارش بدیم (deploy کنیم)، وجود داره. فقط کافیه تنظیمات افزونه MetaMask رو روی شبکه Ropsten قرار بدیم تا بتونیم به قرارداد وصل بشیم و ازش استفاده کنیم.

یا اینکه به عنوان جایگزین گام دوم میتونیم از Ganache استفاده کنیم و قرارداد رو خودمون بسازیم و روی شبکه محلی (local) خودمون قرارش بدیم که در این حالت باید توی کدهای سمت کاربر (front) مشخص شده باشه که به آدرس قراردادی که توسعه دادیم متصل بشه. پس نیاز هست توی MetaMask مشخصات شبکه محلی (توی این مثال آدرس 127.0.0.1 و پورت 8545 با توجه به فایل truffle.js) مشخص شده باشه و حدس میزنم اینجای کد هم باید با آدرس قرارداد توسعه داده شده جایگزین بشه.

دقت کنید که در حالت کلی سمت کاربر (frontend، مرورگر) و سمت شبکه (backend، بلاکچین) مستقل از هم هستند و اگر کدنویسی به نوعی نبوده باشه که هر دو بخش پارامترهای ورودی خودشون رو از یک محل دریافت کنن، اگر خواستیم تغییری توی بخش‌های مشترکشون اعمال کنیم باید عینا توی هر دو بخش انجامش بدیم.

از کروم استفاده میکنم . و گناش . مراحلی که شما فرمودید رو هم انجام دادم ولی باز همین ارور رو داد. شما کد رو تست کردید؟

تست نکردم. اگه از کد مطمئن نیستید میتونید این کد من رو هم یه نگاهی بندازید. راهنمای ویدئویی فارسی هم برای راه‌اندازی داره.