Untuk mereproduksi:
yarn
yarn coverage
Dan Anda harus mendapatkan kesalahan ini:
+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
@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
Komentar yang paling membantu
Saya meretas
node_modules/solidity-coverage/plugins/resources/nomiclabs.utils.js
dan mengubah baris 136 menjadikemudian jalankan cakupan berhasil.
Saya kira penulis cakupan soliditas mungkin memperbaiki masalah ini versi berikutnya.