Hardhat-deploy: `hardhat-deploy` tidak berfungsi dengan `solidity-coverage`

Dibuat pada 22 Jun 2021  ·  14Komentar  ·  Sumber: wighawag/hardhat-deploy

Untuk mereproduksi:

  1. Klon https://github.com/wighawag/template-ethereum-contracts
  2. yarn
  3. yarn coverage

Dan Anda harus mendapatkan kesalahan ini:

image

Komentar yang paling membantu

@GeekBerry Jika Anda melihat kode yang ditunjuk wighwag, Anda akan mengerti: https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.js#L136 -L141

Saya meretas node_modules/solidity-coverage/plugins/resources/nomiclabs.utils.js dan mengubah baris 136 menjadi

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

kemudian jalankan cakupan berhasil.

Saya kira penulis cakupan soliditas mungkin memperbaiki masalah ini versi berikutnya.

Semua 14 komentar

+1

@wighawag Apakah ini masalah di pihak saya? Atau apakah ini masalah dalam hardhat-deploy?

sama untuk saya, menjalankan:
@nomiclabs/ [email protected]
@nomiclabs/ [email protected]
[email protected]
[email protected]
[email protected]

+1

Ini sepertinya telah diperkenalkan di 0.8.x . Menggunakan 0.7.11 bekerja untuk saya.

Terima kasih semua untuk pelaporan.

Maaf untuk jawaban yang terlambat, saya sedang bepergian dengan keluarga dan tidak punya banyak waktu di laptop saya.

Saya telah melihatnya hari ini dan masalahnya adalah solidity-coverage membuat objek jaringan baru di sini: https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.js #L136 -L141 mengesampingkan modifikasi apa pun yang dibuat oleh plugin lain.

kompatibilitas hardhat-deploy/solidity-coverage memiliki masalah serupa di masa lalu karena alasan yang sama (lihat https://github.com/sc-forks/solidity-coverage/issues/624) dan hardhat-deploy membuat solusi untuk itu pada saat itu tetapi versi hardhat-deploy terbaru bergantung pada kemampuan untuk menambahkan bidang ke objek jaringan, dengan demikian juga bergantung pada mengakses objek jaringan pada waktu impor plugin dan karenanya perbaikannya menurut saya harus dalam cakupan soliditas. Alih-alih membuat objek baru, solidity-coverage dapat dengan mudah memodifikasi hre.network ada dengan menyimpan tambahan lain dari plugin lain ke dalamnya.

Pengganti baris ini https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.js#L136 -L141

Kepada ini:

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

Harus melakukannya

Bagaimana menurutmu @cgewecke ?

tapi apa itu env ? bagaimana saya bisa mengonfigurasinya?

@wighawag Terima kasih atas waktu yang Anda

Semoga @cgewecke bisa segera memodifikasi

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

Harus melakukannya

Diuji dan berfungsi.

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

Harus melakukannya

Diuji dan berfungsi.

em~, tapi apa itu env ? process.env atau require('hardhat').network.isHardhatEVM ?

@GeekBerry Jika Anda melihat kode yang ditunjuk wighwag, Anda akan mengerti: https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.js#L136 -L141

Saya meretas node_modules/solidity-coverage/plugins/resources/nomiclabs.utils.js dan mengubah baris 136 menjadi

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

kemudian jalankan cakupan berhasil.

Saya kira penulis cakupan soliditas mungkin memperbaiki masalah ini versi berikutnya.

+1

Hai semua, masalahnya ada di sisi cakupan soliditas, saya akan menutup masalah ini karena hardhat-deploy tidak bisa berbuat banyak.
Di template saya, saya menambal solidity-coverage dengan patch-package dan membuatnya berfungsi, lihat: https://github.com/wighawag/template-ethereum-contracts/blob/main/patches/solidity-coverage%2B0 .7.16.patch

Ada PR ini yang memperbaikinya di solidity-coverage: https://github.com/sc-forks/solidity-coverage/pull/647

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

smartcontracts picture smartcontracts  ·  20Komentar

jsidorenko picture jsidorenko  ·  3Komentar

gitpusha picture gitpusha  ·  6Komentar

freebyte picture freebyte  ·  9Komentar

jaypaik picture jaypaik  ·  13Komentar