لدي مشكلة في توصيل القطع الأثرية الخارجية.
في Project AI ، يوجد مجلدات deploy
و artifacts
حيث أحتفظ بجميع ملفات النشر ذات الغطاء الصلب والتحف التي تم إنشاؤها بعد النشر الأول.
في المشروع ب ، أعيد استخدام هذه الأشياء عن طريق وضع ذلك في تهيئة hardhat:
external: {
contracts: [
{
artifacts: '/contracts/artifacts',
deploy: '/contracts/deploy',
},
],
},
الآن أقوم بتشغيل npx hardhat deploy
من المشروع B وأرى أنه تم نشر جميع العقود بنجاح.
ولكن عندما أحاول التفاعل مع أي من العقود المنشورة التي أراها في وحدة التحكم: Contract call: <UnrecognizedContract>
.
ينطبق الشيء نفسه إذا قمت بتشغيل عقدة hardhat بشكل منفصل أولاً ونشر العقود بعد ذلك. لكل عملية نشر ، أرى في السجلات <UnrecognizedContract>
.
ما هي الطريقة الصحيحة لتوصيل مشروع hardhat الخارجي ، حتى تتمكن العقدة الصلبة من فهم العقود التي تم نشرها؟
هذا غير مدعوم حاليًا وقد يعتمد هذا على تنسيق القطع الأثرية أيضًا.
أود أن أجعل ذلك ممكنًا في معظم الحالات من خلال استخدام https://github.com/nomiclabs/hardhat/blob/8118d0e3649ed87b247ef02830feb6aad5a78682/packages/hardhat-core/src/internal/hardhat-network/provider/modules/hardhat.ts # L37
إذا كان ذلك مفيدًا ، فقد لاحظت نفس المشكلة عندما تبدأ ببساطة عقدة hardhat في مشروع واحد وتنشر العقود في آخر.
لست متأكدًا مما إذا كان من الممكن توصيل "القطع الأثرية" أو نتائج التجميع يدويًا بـ hardhat ، بحيث يمكن أن تبدأ العقدة في التعرف على العقود.
هناك مشكلة يمكن أن تساعد: https://github.com/nomiclabs/hardhat/issues/1040
التعليق الأكثر فائدة
إذا كان ذلك مفيدًا ، فقد لاحظت نفس المشكلة عندما تبدأ ببساطة عقدة hardhat في مشروع واحد وتنشر العقود في آخر.
لست متأكدًا مما إذا كان من الممكن توصيل "القطع الأثرية" أو نتائج التجميع يدويًا بـ hardhat ، بحيث يمكن أن تبدأ العقدة في التعرف على العقود.