Hardhat-deploy: `hardhat-deploy` ne fonctionne pas avec `solidity-coverage`

Créé le 22 juin 2021  ·  14Commentaires  ·  Source: wighawag/hardhat-deploy

Reproduire:

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

Et vous devriez obtenir cette erreur :

image

Commentaire le plus utile

@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.

Tous les 14 commentaires

+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

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

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

gitpusha picture gitpusha  ·  6Commentaires

lepidotteri picture lepidotteri  ·  5Commentaires

jsidorenko picture jsidorenko  ·  3Commentaires

freebyte picture freebyte  ·  9Commentaires

jaypaik picture jaypaik  ·  13Commentaires