Hardhat-deploy: solicitação de recurso: permite implantações de mainnet no capacete de segurança no modo de bifurcação

Criado em 19 nov. 2020  ·  10Comentários  ·  Fonte: wighawag/hardhat-deploy

Seria legal se await ethers.getContract ("Bar") quando executado no modo de bifurcação do hardhat deixasse o hardhat-deploy saber que --network hardhat também pode levar em consideração as implantações / de qualquer rede configurada no bifurcação

Referenciando este problema https://github.com/wighawag/hardhat-deploy-ethers/issues/6

enhancement

Todos 10 comentários

implementado em 0.7.0-beta.29
via hardhat node --fork ... --fork-deployments <networkName>

Copiando de nosso bate-papo para referência:

É exclusivo da rede pela qual você passa --fork-deployments? Idealmente para mim, faria isso:

  1. Olhe para a pasta —fork-deployments deployments primeiro - se o contrato não estiver lá
  2. Olhe para - pasta de implantações de rede em segundo

Desta forma, os testes podem misturar instâncias de contrato bifurcado de mainnet + mocked que você só pode querer implantar na rede de hardhat

ele funciona copiando as implantações da cadeia em localhost
então, seu script de implantação pode decidir substituir a implantação, se desejar

  1. ah ok legal. como ele sabe de qual rede copiar as implantações? Ele analisa forking.url ?

  2. Estou usando hardhat network bifurcação na memória e não tenho uma instância de hardhat node execução durante meus testes. Isso também funciona para testes usando bifurcação na rede de hardhat na memória?

ha não, bom ponto, este é apenas um parâmetro para a tarefa do nó.
Devo ser capaz de adicioná-lo à tarefa de teste. reabrindo

re 1.: o argumento para o parâmetro é o nome da rede a partir da qual copiar

Na verdade, @gitpusha , você tem um exemplo de repo sobre como isso é configurado, porque pensar nisso pode precisar de algumas mudanças em como as coisas são tratadas.
atualmente com a rede em memória, não há facilidade para ter informações de contrato pré-implantadas
Posso adicionar um parâmetro semelhante, mas preciso pensar mais

na verdade, você deve ser capaz de usar a configuração de implantações externas:

algo como :

hardhat.config.js

module.exports = {
 ...
  external: {
    deployments: {
      hardhat: ['deployments/mainnet'],
    },
  },
}

na verdade, você deve ser capaz de usar a configuração de implantações externas

Isso seria fofo.

hardhat: ['deployments/mainnet']

A ferramenta entende que em hardhat in deve então olhar tanto para deployments/mainnet quanto para deployments/hardhat ? Em caso afirmativo, quais implantações têm precedência? Eu gostaria que deployments/mainnet tivesse precedência se houver sobreposições entre os contratos, uma vez que configurei explicitamente.

Além disso, o diretório deployments/hardhat será considerado por padrão?

Aqui está um exemplo de repo .

Não tenho certeza de como esse recurso é útil, já que você pode apenas usar

await hre.ethers.getContractAt(abi, address)

em forkmode vez de acessar instâncias implantadas de uma rede específica.

Portanto, é realmente bom ter.

Tentei a sugestão que postei acima e parece funcionar bem.
As implantações especificadas em externo não terão precedência, mas isso não deve ser um problema, pois o nó por padrão redefinir o contrato em implantações / capacete e, a menos que você force a reimplantação do contrato já implantado, você obterá o de implantações / mainnet

Vou encerrar o problema, mas se você tiver problemas, sinta-se à vontade para reabrir

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

jsidorenko picture jsidorenko  ·  3Comentários

jaypaik picture jaypaik  ·  13Comentários

freebyte picture freebyte  ·  9Comentários

gitpusha picture gitpusha  ·  6Comentários

tennox picture tennox  ·  4Comentários