Hardhat-deploy: الماس لا يعمل على النحو المنشود عند نشر الأوجه يدويًا

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

لقد لاحظت أن هذا المكون الإضافي ، بينما يقدم دعمًا أصليًا للعقود المتوافقة مع معيار Diamond ، لا يبدو أنه يسمح بالنشر اليدوي وإعداد Diamond و Facets. بتعبير أدق ، مع الكود التالي: https://github.com/ARM-Finance/kingmaker/blob/1e7bb406e99108e8a87076d6fcc33d13be59df58/protocol/deploy/governance/02_kingmaker_governance_facet.ts#L16 -L56 سأحصل على الخطأ التالي:
image

ومع ذلك ، إذا استخدمت الأسلوب المدعوم لنشر Diamonds مع Faucets ، فسيكون المكون الإضافي قادرًا على التفاعل معهم بشكل صحيح باستخدام read () / execute () (على سبيل المثال https://github.com/ARM-Finance/kingmaker/blob/1e7bb406e99108e8a87076d6fcc33d13be59df58 /protocol/deploy/01B_kingmaker_cowl.ts#L19). هل يمكنك الإشارة إلى هذا السلوك في التعليمات البرمجية الخاصة بك؟

الأساس المنطقي لنهجي هو الرغبة في عدم الالتزام بتتبع الجوانب الحالية وعدم الاضطرار إلى إعادة نشر ماسي جديد على ما يبدو بجوانب مختلفة ، بناءً على كود Diamantaire وواجهة برمجة التطبيقات (على سبيل المثال)

await diamond.deploy('ADiamondContract', {
    from: deployer,
    owner: diamondAdmin,
    facets: ['Facet1', 'Facet2', 'Facet3'],
  });

 await diamond.deploy('ADiamondContract', {
    from: diamondAdmin, // this need to be the diamondAdmin for upgrade
    owner: diamondAdmin,
    facets: ['NewFacet', 'Facet2', 'Facet3'],
 });

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

أحدث استخدام للغطاء الصلب قد جدد الدعم الماسي. أعد فتح إذا كان هناك أي مشكلة

ال 5 كومينتر

مرحبًا lepidotteri لاحظ أن العمل على Diamond لا يزال في مرحلة تجريبية ولم يكن لدي وقت للاعتناء به منذ بعض الوقت. من غير المحتمل أن يكون لدي موارد للنظر فيها قريبًا. أخطط لإزالته من الوثائق في الوقت الحالي لتجنب الالتباس.

فيما يتعلق بمشكلتك ، ما هو تطبيق Diamond الذي تستخدمه؟

مرحبًا lepidotteri لاحظ أن العمل على Diamond لا يزال في مرحلة تجريبية ولم يكن لدي وقت للاعتناء به منذ بعض الوقت. من غير المحتمل أن يكون لدي موارد للنظر فيها قريبًا. أخطط لإزالته من الوثائق في الوقت الحالي لتجنب الالتباس.

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

فيما يتعلق بمشكلتك ، ما هو تطبيق Diamond الذي تستخدمه؟

أنا أستخدم الثالث هنا: https://github.com/mudgen/diamond-3. ومع ذلك ، لاحظ أن التنفيذ نفسه ليس هو المشكلة ، بل من المفترض أن تكمن المشكلة في الطريقة التي يتفاعل بها المكون الإضافي الخاص بك مع الماس "المخصص" الذي لا يمكن التفاعل معه بشكل صحيح (على سبيل المثال https://github.com/ARM -Finance / kingmaker / blob / 59dac1fb94f6aa3cb84dc4d84a536c9acedfe9ea / protocol / publish / Governance / 02_kingmaker_governance_facet.ts # L32 execute () فشل هنا لأن المكوّن الإضافي يستخدم vanilla ethers.js للبحث في طريقة Facet في حالة Facet في طريقة Facet. '، مقابل "مخصص" Diamond ABI).

أيضًا ، شكرًا لك على عودتك إلي بسرعة ، أقدر لك ذلك كثيرًا

إذن هذه هي الطريقة التي تتجنب بها إثارة ethers.js للمشكلات عند إجراء فحوصات على ABIs؟ https://github.com/wighawag/hardhat-deploy/blob/a842674b5a5a47ad2ee5b91c2fae1d3e1840e9b6/src/helpers.ts#L48 -L56

lepidotteri نعم ، لذا لست متأكدًا من سبب عدم نجاحها في حالتك ، لأنه كما تراها يتضمن DiamondCutFact في ABI

يجب أن تراه في ملف deployments/<network name>/Crown.json

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

أحدث استخدام للغطاء الصلب قد جدد الدعم الماسي. أعد فتح إذا كان هناك أي مشكلة

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