Hardhat-deploy: permintaan fitur: izinkan penerapan dari mainnet di hardhat dalam mode forking

Dibuat pada 19 Nov 2020  ·  10Komentar  ·  Sumber: wighawag/hardhat-deploy

Akan keren jika menunggu eters.getContract("Bar") ketika dijalankan dalam mode hardhat forking akan membuat hardhat-deploy tahu bahwa --network hardhat sebenarnya juga dapat mempertimbangkan penerapan/ dari jaringan apa pun yang dikonfigurasi dalam forking

Merujuk masalah ini https://github.com/wighawag/hardhat-deploy-ethers/issues/6

enhancement

Semua 10 komentar

diimplementasikan di 0.7.0-beta.29
melalui hardhat node --fork ... --fork-deployments <networkName>

Menyalin dari obrolan kami untuk referensi:

Apakah ini eksklusif untuk jaringan yang Anda lewati --fork-deployments ? Idealnya bagi saya itu akan melakukan ini:

  1. Lihat folder —fork-deployments deployments terlebih dahulu - jika kontrak tidak ada di sana
  2. Lihat ke — folder penyebaran jaringan kedua

Dengan cara ini pengujian dapat menggabungkan instance kontrak bercabang dari mainnet + yang diejek yang mungkin hanya ingin Anda terapkan ke jaringan hardhat

ia bekerja dengan menyalin penerapan dari rantai ke localhost
jadi skrip penerapan Anda dapat memutuskan untuk mengganti penerapan jika diinginkan

  1. ah oke keren. bagaimana cara mengetahui dari jaringan mana untuk menyalin penyebaran? Apakah itu mengurai forking.url ?

  2. Saya menggunakan hardhat network dalam memori forking dan saya tidak memiliki instance hardhat node berjalan selama pengujian saya. Apakah ini juga berfungsi untuk pengujian menggunakan forking pada jaringan hardhat dalam memori?

ha tidak, poin bagus, ini hanya param untuk tugas simpul.
Saya harus dapat menambahkannya ke tugas pengujian. pembukaan kembali

re 1. : argumen ke param adalah nama jaringan yang akan disalin

Sebenarnya @gitpusha apakah Anda memiliki contoh repo tentang bagaimana ini diatur karena memikirkannya mungkin perlu beberapa perubahan tentang cara menanganinya.
saat ini dengan jaringan memori, tidak ada fasilitas untuk memiliki info kontrak yang telah digunakan sebelumnya
Saya mungkin dapat menambahkan param serupa tetapi perlu berpikir lebih banyak

sebenarnya Anda harus dapat menggunakan konfigurasi penyebaran eksternal:

sesuatu seperti :

hardhat.config.js

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

sebenarnya Anda harus dapat menggunakan konfigurasi penyebaran eksternal

Itu akan manis.

hardhat: ['deployments/mainnet']

Apakah alat memahami bahwa pada hardhat in maka harus melihat keduanya ke deployments/mainnet serta deployments/hardhat ? Jika demikian, penerapan mana yang didahulukan? Saya ingin deployments/mainnet didahulukan jika ada tumpang tindih antar kontrak, karena saya mengonfigurasinya secara eksplisit.

Juga, apakah direktori deployments/hardhat akan diperhitungkan secara default ?

Berikut ini adalah contoh repo .

Saya tidak yakin seberapa berguna fitur ini, karena Anda selalu dapat menggunakan

await hre.ethers.getContractAt(abi, address)

di forkmode sebagai gantinya untuk mengakses instance yang diterapkan dari jaringan tertentu.

Jadi itu benar-benar hanya bagus untuk dimiliki.

Saya mencoba saran yang saya posting di atas dan tampaknya berfungsi dengan baik.
Deployment yang ditentukan di eksternal tidak akan didahulukan tetapi itu seharusnya tidak menjadi masalah karena node secara default mengatur ulang kontrak di deployment/hardhat dan jadi kecuali jika Anda memaksa pemindahan kontrak yang sudah dikerahkan, Anda akan mendapatkannya dari deployment/mainnet

Saya akan menutup masalah tetapi jika Anda memiliki masalah jangan ragu untuk membuka kembali

Apakah halaman ini membantu?
0 / 5 - 0 peringkat