Hardhat-deploy: لا يعمل "النشر الثابت" مع "تغطية الصلابة"

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

لإعادة إنتاج:

  1. استنساخ https://github.com/wighawag/template-ethereum-contracts
  2. yarn
  3. yarn coverage

ويجب أن تحصل على هذا الخطأ:

image

التعليق الأكثر فائدة

GeekBerry إذا نظرت إلى الرمز wighawag المشار إليه ، فستفهم: https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.

قمت بالاختراق في node_modules/solidity-coverage/plugins/resources/nomiclabs.utils.js وقمت بتغيير السطر 136 إلى

env.network = Object.assign({
    name: networkName,
    config: networkConfig,
    provider: provider,
    isHardhatEVM: isHardhatEVM,
}, env.network);

ثم قم بتشغيل التغطية بنجاح.

أعتقد أن مؤلف تغطية الصلابة قد يصلح هذه المشكلة الإصدار التالي.

ال 14 كومينتر

+1

wighawag هل هي مشكلة من جانبي؟ أم أنها مشكلة في النشر الثابت؟

نفس الشيء بالنسبة لي ، الجري:
├─ @ nomiclabs / [email protected]
├─ @ nomiclabs / [email protected]
├─ [email protected]
├─ [email protected]
├─ صلابة - [email protected]

+1

يبدو أنه تم تقديم هذا في 0.8.x . استخدام 0.7.11 يعمل بالنسبة لي.

شكرا لكم جميعا على الإبلاغ.

آسف على الرد المتأخر ، أنا أسافر حاليًا مع العائلة وليس لدي الكثير من الوقت على الكمبيوتر المحمول الخاص بي.

لقد ألقيت نظرة اليوم والمشكلة هي أن تغطية الصلابة تنشئ كائن شبكة جديدًا هنا: https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.js # L136 -L141 يتجاوز أي تعديلات تم إجراؤها بواسطة المكونات الإضافية الأخرى.

واجه توافق نشر hardhat / Solidity-Cover مشكلة مماثلة في الماضي للسبب نفسه (راجع https://github.com/sc-forks/solidity-coverage/issues/624) وأدى النشر الثابت إلى حل بديل لها في ذلك الوقت ، ولكن الإصدار الأحدث للنشر الثابت يعتمد على القدرة على إضافة حقل إلى كائن الشبكة ، وبالتالي فهو يعتمد أيضًا على الوصول إلى كائن الشبكة في وقت استيراد المكون الإضافي ، وبالتالي يجب أن يكون الإصلاح في رأيي في تغطية الصلابة. بدلاً من إنشاء كائن جديد ، يمكن لـ Solidity-Cover ببساطة تعديل hre.network مع الاحتفاظ بأي إضافة أخرى من المكونات الإضافية الأخرى إليه.

استبدال هذه الخط https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.js#L136 -L141

لهذه:

env.network.name = networkName;
env.network.config = networkConfig;
env.network.provider = provider;
env.network.isHardhatEVM = isHardhatEVM;

يجب القيام به

ما رأيك cgewecke ؟

ولكن ما هو env ؟ كيف يمكنني تكوينه؟

wighawag شكرًا على الوقت الذي استغرقته في التحقيق !!

آمل أن يتمكن cgewecke من تعديل تغطية الصلابة قريبًا ...

env.network.name = networkName;
env.network.config = networkConfig;
env.network.provider = provider;
env.network.isHardhatEVM = isHardhatEVM;

يجب القيام به

تم اختباره وهو يعمل.

env.network.name = networkName;
env.network.config = networkConfig;
env.network.provider = provider;
env.network.isHardhatEVM = isHardhatEVM;

يجب القيام به

تم اختباره وهو يعمل.

em ~ ، ولكن ما هو env ؟ process.env أو require('hardhat').network.isHardhatEVM ؟

GeekBerry إذا نظرت إلى الرمز wighawag المشار إليه ، فستفهم: https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.

GeekBerry إذا نظرت إلى الرمز wighawag المشار إليه ، فستفهم: https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.

قمت بالاختراق في node_modules/solidity-coverage/plugins/resources/nomiclabs.utils.js وقمت بتغيير السطر 136 إلى

env.network = Object.assign({
    name: networkName,
    config: networkConfig,
    provider: provider,
    isHardhatEVM: isHardhatEVM,
}, env.network);

ثم قم بتشغيل التغطية بنجاح.

أعتقد أن مؤلف تغطية الصلابة قد يصلح هذه المشكلة الإصدار التالي.

+1

مرحبًا بالجميع ، المشكلة من ناحية تغطية الصلابة ، سأغلق المشكلة لأن النشر الثابت لا يمكنه فعل الكثير.
في القالب الخاص بي ، أقوم بتصحيح تغطية الصلابة بـ patch-package وعملها ، راجع: https://github.com/wighawag/template-ethereum-contracts/blob/main/patches/solidity-coverage٪2B0 .7.16.patch

يوجد هذا العلاقات العامة التي تصلحه في تغطية الصلابة: https://github.com/sc-forks/solidity-coverage/pull/647

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