Hardhat-deploy: طلب الميزة: السماح بعمليات النشر من mainnet على hardhat في وضع التفرع

تم إنشاؤها على ١٩ نوفمبر ٢٠٢٠  ·  10تعليقات  ·  مصدر: wighawag/hardhat-deploy

سيكون من الرائع أن تنتظر ethers.getContract ("Bar") عند تشغيله في وضع تفرع hardhat ، مما يتيح للنشر الثابت معرفة أن - يمكن أن تأخذ الشبكة الصلبة في الاعتبار أيضًا عمليات النشر / من أي شبكة تم تكوينها في forking

الرجوع إلى هذه المشكلة https://github.com/wighawag/hardhat-deploy-ethers/issues/6

enhancement

ال 10 كومينتر

تم تنفيذه في 0.7.0-beta.29
عبر hardhat node --fork ... --fork-deployments <networkName>

النسخ من محادثتنا كمرجع:

هل هي حصرية للشبكة التي تقوم بتمريرها باستخدام --Fork-النشرات؟ من الناحية المثالية بالنسبة لي ، سيفعل هذا:

  1. انظر إلى مجلد عمليات نشر الشوكة أولاً - إذا لم يكن العقد موجودًا
  2. انظر إلى مجلد عمليات نشر الشبكة ثانيًا

بهذه الطريقة يمكن أن تمزج الاختبارات بين مثيلات العقد المتشعبة من mainnet + السخرية منها والتي قد ترغب فقط في نشرها على شبكة hardhat

يعمل عن طريق نسخ عمليات النشر من السلسلة إلى localhost
لذلك يمكن أن يقرر نص النشر الخاص بك تجاوز النشر إذا رغبوا في ذلك

  1. آه طيب رائع. كيف تعرف الشبكة التي سيتم نسخ عمليات النشر منها؟ هل يقوم بتحليل forking.url ؟

  2. أنا أستخدم hardhat network in-memory forking وليس لدي مثيل hardhat node قيد التشغيل أثناء اختباراتي. هل يعمل هذا أيضًا مع الاختبارات التي تستخدم التقسيم على شبكة صلبة في الذاكرة؟

هكتار لا ، نقطة جيدة ، هذه ليست سوى معلمة لمهمة العقدة.
يجب أن أكون قادرًا على إضافته إلى مهمة الاختبار. إعادة الفتح

إعادة 1.: الوسيطة إلى param هو اسم الشبكة للنسخ منها

في الواقع gitpusha هل لديك مثال الريبو حول كيفية إعداد هذا لأن التفكير فيه قد يحتاج إلى بعض التغييرات حول كيفية التعامل مع الأشياء.
حاليًا مع شبكة الذاكرة ، لا توجد وسيلة للحصول على معلومات العقد المنشورة مسبقًا
قد أكون قادرًا على إضافة معلمة مماثلة ولكني بحاجة إلى التفكير أكثر

في الواقع ، يجب أن تكون قادرًا على استخدام تهيئة عمليات النشر الخارجية:

شيء مثل :

hardhat.config.js

module.exports = {
 ...
  external: {
    deployments: {
      hardhat: ['deployments/mainnet'],
    },
  },
}

في الواقع ، يجب أن تكون قادرًا على استخدام تكوين عمليات النشر الخارجية

سيكون ذلك حلو.

hardhat: ['deployments/mainnet']

هل تدرك الأداة أنه في hardhat في يجب أن ينظر إلى كل من deployments/mainnet وكذلك deployments/hardhat ؟ إذا كان الأمر كذلك ، فما هي عمليات النشر التي لها الأسبقية؟ أرغب في إعطاء الأسبقية لـ deployments/mainnet إذا كان هناك تداخلات بين العقود ، لأنني قمت بتكوينها بشكل صريح.

أيضًا ، هل سيتم وضع الدليل deployments/hardhat في الاعتبار افتراضيًا؟

هنا مثال الريبو .

لست متأكدًا من مدى فائدة هذه الميزة ، حيث يمكنك دائمًا استخدامها فقط

await hre.ethers.getContractAt(abi, address)

في forkmode بدلاً من ذلك للوصول إلى المثيلات المنشورة من شبكة معينة.

لذا فهو حقًا مجرد شيء جميل.

لقد جربت الاقتراح الذي نشرته أعلاه ويبدو أنه يعمل بشكل جيد.
عمليات النشر المحددة في الخارج لن تكون لها الأسبقية ولكن لا ينبغي أن تكون هذه مشكلة كعقدة وفقًا لعقد إعادة التعيين الافتراضي في عمليات النشر / hardhat وما لم تقم بفرض إعادة نشر عقد تم نشره بالفعل ، فستحصل على واحد من عمليات النشر / mainnet

سأغلق المشكلة ولكن إذا كانت لديك مشكلة فلا تتردد في إعادة فتحها

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

freebyte picture freebyte  ·  9تعليقات

smartcontracts picture smartcontracts  ·  20تعليقات

lcswillems picture lcswillems  ·  14تعليقات

gitpusha picture gitpusha  ·  6تعليقات

jaypaik picture jaypaik  ·  13تعليقات