Saya perhatikan bahwa plugin ini, meskipun menawarkan dukungan asli untuk kontrak yang sesuai dengan Standar Diamond, tampaknya tidak memungkinkan penerapan dan pengaturan manual Diamond dan Facet-nya. Lebih tepatnya, dengan kode berikut: https://github.com/ARM-Finance/kingmaker/blob/1e7bb406e99108e8a87076d6fcc33d13be59df58/protocol/deploy/governance/02_kingmaker_governance_facet.ts#L16 -L56 Saya akan mendapatkan kesalahan berikut:
Namun, jika saya menggunakan pendekatan yang didukung untuk menyebarkan Berlian dengan Faucet maka plugin dapat berinteraksi dengan benar dengan mereka dengan read() / execute() (mis. https://github.com/ARM-Finance/kingmaker/blob/1e7bb406e99108e8a87076d6fcc33d13be59df58 /protocol/deploy/01B_kingmaker_cowl.ts#L19). Bisakah Anda menunjukkan perilaku ini dalam kode Anda?
Alasan pendekatan saya adalah keinginan untuk tidak terikat untuk melacak aspek yang ada dan tidak dipaksa untuk menggunakan kembali Diamond baru dengan aspek yang berbeda, dilihat dari kode Diamantaire dan API plugin (mis.
await diamond.deploy('ADiamondContract', {
from: deployer,
owner: diamondAdmin,
facets: ['Facet1', 'Facet2', 'Facet3'],
});
await diamond.deploy('ADiamondContract', {
from: diamondAdmin, // this need to be the diamondAdmin for upgrade
owner: diamondAdmin,
facets: ['NewFacet', 'Facet2', 'Facet3'],
});
Hai @lepidotteri perhatikan bahwa pengerjaan Diamond masih dalam versi beta dan saya tidak punya waktu untuk mengurusnya sejak beberapa waktu. Sepertinya saya tidak akan memiliki sumber daya untuk melihatnya segera. Saya berencana untuk menghapusnya dari dokumentasi untuk menghindari kebingungan.
Mengenai masalah Anda, implementasi Diamond mana yang Anda gunakan?
Hai @lepidotteri perhatikan bahwa pengerjaan Diamond masih dalam versi beta dan saya tidak punya waktu untuk mengurusnya sejak beberapa waktu. Sepertinya saya tidak akan memiliki sumber daya untuk melihatnya segera. Saya berencana untuk menghapusnya dari dokumentasi untuk menghindari kebingungan.
Hai, terima kasih atas klarifikasinya, plugin Anda terlalu berharga untuk tidak dapat diandalkan, jadi jika Anda setuju, saya akan melanjutkan dan membayarnya untuk organisasi kami sendiri, dengan satu-satunya tujuan untuk memperbarui dan meningkatkan dukungan Diamond Standard saat ini
Mengenai masalah Anda, implementasi Diamond mana yang Anda gunakan?
Saya menggunakan yang ke-3 di sini: https://github.com/mudgen/diamond-3. Namun, perhatikan bahwa implementasi itu sendiri bukanlah masalahnya, melainkan masalahnya terletak pada cara plugin Anda berinteraksi dengan Berlian "kustom" yang tidak dapat berinteraksi dengan benar (mis. https://github.com/ARM -Finance/kingmaker/blob/59dac1fb94f6aa3cb84dc4d84a536c9acedfe9ea/protocol/deploy/governance/02_kingmaker_governance_facet.ts#L32 execute() gagal di sini karena, saya curiga, plugin menggunakan vanilla ethers.js untuk mencari 'diamondCut metode Facet ini ', melawan "kebiasaan" Diamond ABI).
Juga, terima kasih telah kembali kepada saya dengan sangat cepat, sangat dihargai
Jadi begitulah cara Anda menghindari eters.js memunculkan masalah saat melakukan pemeriksaan pada ABI? https://github.com/wighawag/hardhat-deploy/blob/a842674b5a5a47ad2ee5b91c2fae1d3e1840e9b6/src/helpers.ts#L48 -L56
@lepidotteri ya, jadi tidak yakin mengapa itu tidak berhasil dalam kasus Anda, karena seperti yang Anda lihat, termasuk diamondCutFact di ABI
Anda akan melihatnya di file deployments/<network name>/Crown.json
Soal forking, alangkah baiknya jika membuat PR. Saya akan dengan senang hati meninjaunya dengan tujuan disertakan kembali.
Terima kasih
hardhat-deploy terbaru telah mengubah dukungan berlian. buka kembali jika ada masalah
Komentar yang paling membantu
hardhat-deploy terbaru telah mengubah dukungan berlian. buka kembali jika ada masalah