Sería genial si aguardar ethers.getContract ("Bar") cuando se ejecuta en el modo de bifurcación de casco le permitiría a hardhat-deploy saber que --network hardhat en realidad también puede tener en cuenta las implementaciones / de cualquier red que esté configurada en bifurcación
Haciendo referencia a este problema https://github.com/wighawag/hardhat-deploy-ethers/issues/6
implementado en 0.7.0-beta.29
a través de hardhat node --fork ... --fork-deployments <networkName>
Copiando de nuestro chat como referencia:
¿Es exclusivo de la red que pasa con --fork-deployments? Idealmente para mí, haría esto:
De esta manera, las pruebas pueden mezclar instancias de contratos bifurcados de mainnet + simuladas que quizás solo desee implementar en la red de casco.
funciona copiando las implementaciones de la cadena en localhost
entonces su secuencia de comandos de implementación puede decidir anular la implementación si lo desea
ah ok genial. ¿Cómo sabe de qué red copiar las implementaciones? ¿Analiza el forking.url
?
Estoy usando la bifurcación en memoria hardhat network
y no tengo una instancia de hardhat node
ejecutándose durante mis pruebas. ¿Esto también funciona para las pruebas que utilizan la bifurcación en una red de casco en memoria?
ja no, buen punto, esto es solo un parámetro para la tarea del nodo.
Debería poder agregarlo a la tarea de prueba. reapertura
re 1.: el argumento del parámetro es el nombre de la red desde la que copiar
En realidad, @gitpusha , ¿tiene un ejemplo de repositorio sobre cómo se configura esto porque pensar en ello podría necesitar algunos cambios sobre cómo se manejan las cosas?
Actualmente con la red en memoria, no existe la posibilidad de tener información de contrato pre-implementada
Podría agregar un parámetro similar, pero necesito pensar más
en realidad, debería poder usar la configuración de implementaciones externas:
algo como :
hardhat.config.js
module.exports = {
...
external: {
deployments: {
hardhat: ['deployments/mainnet'],
},
},
}
en realidad, debería poder usar la configuración de implementaciones externas
Eso sería dulce.
hardhat: ['deployments/mainnet']
¿Entiende la herramienta que en hardhat
in debería buscar tanto en deployments/mainnet
como en deployments/hardhat
? Si es así, ¿qué implementaciones tienen prioridad? Me gustaría que deployments/mainnet
tuvieran prioridad si hay superposiciones entre contratos, ya que lo configuré explícitamente.
Además, ¿se tendrá en cuenta el directorio deployments/hardhat
de forma predeterminada?
Aquí hay un repositorio de ejemplo.
Sin embargo, no estoy seguro de cuán útil sea esta función, ya que siempre puede usar
await hre.ethers.getContractAt(abi, address)
en forkmode
lugar para acceder a instancias implementadas desde una red específica.
Así que es realmente bueno tenerlo.
Probé la sugerencia que publiqué arriba y parece funcionar bien.
Las implementaciones especificadas en externo no tendrán prioridad, pero eso no debería ser un problema ya que el nodo por defecto restablece el contrato en implementaciones / casco y, por lo tanto, a menos que fuerce la redistribución del contrato ya implementado, obtendrá el de implementaciones / mainnet
Cerraré el problema, pero si tiene algún problema, no dude en volver a abrir