Hardhat-deploy: solicitud de función: permitir implementaciones desde mainnet en casco en modo bifurcación

Creado en 19 nov. 2020  ·  10Comentarios  ·  Fuente: wighawag/hardhat-deploy

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

enhancement

Todos 10 comentarios

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:

  1. Primero, busque en la carpeta de implementaciones de hork-deployments, si el contrato no está allí
  2. Busque en la carpeta de implementaciones de red en segundo lugar

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

  1. ah ok genial. ¿Cómo sabe de qué red copiar las implementaciones? ¿Analiza el forking.url ?

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

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

gitpusha picture gitpusha  ·  6Comentarios

jaypaik picture jaypaik  ·  13Comentarios

tennox picture tennox  ·  4Comentarios

lcswillems picture lcswillems  ·  14Comentarios

smartcontracts picture smartcontracts  ·  20Comentarios