Reproduire:
yarn
yarn coverage
Et vous devriez obtenir cette erreur :
+1
@wighawag Est-ce un problème de mon côté ? Ou est-ce un problème dans hardhat-deploy ?
idem pour moi, en cours d'exécution :
@nomiclabs/ hardhat- [email protected]
├─ @nomiclabs/ [email protected]
├─ [email protected]
├─ [email protected]
├─ solidité[email protected]
+1
Cela semble avoir été introduit dans 0.8.x
. L'utilisation de 0.7.11
fonctionne pour moi.
Merci à tous pour le signalement.
Désolé pour la réponse tardive, je voyage actuellement en famille et je n'ai pas beaucoup de temps sur mon ordinateur portable.
J'ai jeté un œil aujourd'hui et le problème est que solidity-coverage crée un nouvel objet réseau ici : https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.js #L136 -L141 annulant toutes les modifications apportées par d'autres plugins.
la compatibilité hardhat-deploy/solidity-coverage a eu un problème similaire dans le passé pour la même raison (voir https://github.com/sc-forks/solidity-coverage/issues/624) et hardhat-deploy a fait une solution de contournement pour cela à ce moment-là, mais la dernière version de hardhat-deploy repose sur la possibilité d'ajouter un champ à l'objet réseau, elle repose donc également sur l'accès à l'objet réseau au moment de l'importation du plug-in et donc le correctif devrait, à mon avis, être dans la solidité de la couverture. Au lieu de créer un nouvel objet, solidity-coverage pourrait simplement modifier le hre.network
existant en conservant tout autre ajout d'autres plugins.
Un remplacement de ces lignes https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.js#L136 -L141
À ceux-là:
env.network.name = networkName;
env.network.config = networkConfig;
env.network.provider = provider;
env.network.isHardhatEVM = isHardhatEVM;
Devrait le faire
Qu'en pensez-vous @cgewecke ?
mais qu'est-ce que le env
? comment pourrais-je le configurer?
@wighawag Merci pour le temps que vous avez pris pour enquêter !!
J'espère que @cgewecke pourra bientôt modifier la couverture de solidité...
env.network.name = networkName; env.network.config = networkConfig; env.network.provider = provider; env.network.isHardhatEVM = isHardhatEVM;
Devrait le faire
Testé et ça marche.
env.network.name = networkName; env.network.config = networkConfig; env.network.provider = provider; env.network.isHardhatEVM = isHardhatEVM;
Devrait le faire
Testé et ça marche.
em~, mais qu'est-ce que env
? process.env
ou require('hardhat').network.isHardhatEVM
?
@GeekBerry Si vous regardez le code wigawag pointé, vous comprendrez : https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.js#L136 -L141
@GeekBerry Si vous regardez le code wigawag pointé, vous comprendrez : https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.js#L136 -L141
Je pirate node_modules/solidity-coverage/plugins/resources/nomiclabs.utils.js
et change la ligne 136 en
env.network = Object.assign({
name: networkName,
config: networkConfig,
provider: provider,
isHardhatEVM: isHardhatEVM,
}, env.network);
puis exécutez la couverture avec succès.
Je suppose que l'auteur de la couverture de solidité pourrait résoudre ce problème dans la prochaine version.
+1
Salut à tous, le problème est du côté de la couverture de solidité, je vais clore le problème car hardhat-deploy ne peut pas faire grand-chose.
Dans mon modèle, je patche solidity-coverage avec patch-package
et le fais fonctionner, voir : https://github.com/wighawag/template-ethereum-contracts/blob/main/patches/solidity-coverage%2B0 .7.16.patch
Il y a ce PR qui le corrige dans solidity-coverage : https://github.com/sc-forks/solidity-coverage/pull/647
Commentaire le plus utile
Je pirate
node_modules/solidity-coverage/plugins/resources/nomiclabs.utils.js
et change la ligne 136 enpuis exécutez la couverture avec succès.
Je suppose que l'auteur de la couverture de solidité pourrait résoudre ce problème dans la prochaine version.